The Evolution of Client Side Data Binding in ASP.NET
Client side data binding, where we call a web service method via JavaScript and attach the resulting data to visual elements, is beginning to get a real foothold in this industry.
And its about to take a quantum leap forward in terms of everyday usability in ways that developers can easy understand and implement.
Right now, there are a few controls from the Ajax Toolkit that take advantage of this, and most of the controls and extenders have some sort on "dynamic" capability where a single parameter can be sent to a web service method and another string returned that will be directly placed inside a specified element on the client side. This is pretty nice, because it is convenient, but it means that we have to code html inside our web service output - not the kind of separation of data/logic and UI that we may have wanted.
There are also some 3rd party controls that take good advantage of their own proprietary client-side binding. An excellent example of this is the ComponentArt.Web.UI controls. Their Tree, Grid, and other controls in the suite have the capability to be put into "Web Service Mode" where you can specify a Web Service (it must be referenced as a Service in the ScriptManager) and a Method for selecting, updating, deleting, etc.
These methods have specific signatures with custom request/response objects, but in general they allow you to bind regular data objects to the UI controls with a little effort as binding a control using regular code-behind.
On top of that, they have developed a system of client-side templating that allows us to easily transform the output of the data calls to html markup.
I think ComponentArt broke new ground and this technology, and many other controls suites, like Telerik, have followed with their own implementations. Personally, I recommend using the ComponentArt controls because they performs beautifully and look fantastic.
What a great idea - why not build this into the base Asp.Net capabilities?
Bertrand Le Roy has blogged on this very capability, which is available in the preview of the ASP.NET 4. The first one show how client templates can be used to do client side bindings:
http://weblogs.asp.net/bleroy/archive/2008/07/30/using-client-templates-part-1.aspx
This next article show the “live bindings” capabilities which is WICKED, and shows how much benefit we'll get from seeing this put into the plumbing of ASP.NET Ajax itself, and not just a proprietary implementation from a 3rd party, however advanced it may be.
http://weblogs.asp.net/bleroy/archive/2008/09/02/using-client-templates-part-2-live-bindings.aspx
I believe this kind of technology will take us much further into the realm of rich client apps - where our client side code and can completely and efficiently control the bulk of the user interface without having to reload the main pages except for complete context shifts.
As well, I believe that the more client programming we can do, the better we will be able to support technologies like Silverlight and Flash that tend to have fairly long loading times, but if the page does not reload, can be better utilized for their advanced UI and media capabilities.
More later - joel