Ajax technology accesses server-side power using callbacks without reloading the browser page. Easily create Rich Internet Applications without writing JavaScript!

PowerWEB LiveControls for ASP.NET is a suite of 21 Web Controls that raise server-side ASP.NET events using callback technology (the page is not rendered). They function like many standard Microsoft controls (in fact, some are derived from Microsoft Web Controls) and execute server-side logic just like any other ASP.NET control. Using what has been coined as "Ajax Technology", LiveControls dynamically updates client-side objects by generating JavaScript that executes client-side. Intrinsic Microsoft elements and many 3rd party controls are supported. Another key feature of LiveControls is their extended event interface. Because LiveControls creates a more Windows-like user experience, additional events have been added that approach the functionality of Windows Forms controls (mouse, key and click events are now practical). LiveControls enables a completely different approach to Rich Internet Application design.

While web technology has continued to advance for both developers and the users of web applications, certain fundamental limitations still exist. Data that is posted from a browser to the server still requires a page refresh to display new information. This refresh, with associated communication and rendering delays, continues to be a factor that limits the effectiveness of sophisticated Web applications.

Developers use several techniques to mitigate the effects of a page refresh, but all have limitations. JavaScript, Java applets and Flash are examples of technology that augment the synchronous request/response model, but numerous trade-offs must be considered (browser compatibility, developer expertise, available development time, security policy, etc.). Callback technology is another approach that solves this problem by bypassing the traditional “POST”, thereby eliminating the refresh. This technology is supported by the latest IE and Netscape browsers, but still requires substantial JavaScript coding for connection management and DHTML element manipulation.

Technical Solution
One of the most useful work-arounds for the postback (page refresh) problem is often referred to as “Client Callbacks”. This technology involves the client connecting to the server using an XmlHttpRequest object that is natively available in modern browsers. Whereas typical usage of callbacks involves advanced knowledge of callback technology and extensive JavaScript development, PowerWEB LiveControls for ASP.NET fully exploits the Rapid Application Development capabilities of ASP.NET through the use of ASP.NET controls.

Technical Innovation
By leveraging the design-time benefits of drag-and-drop controls, the automatic wiring of events, the ability to manipulate client-side elements from their server-side object representation, and most importantly, requiring no JavaScript, Ajax callback technology is now easily available to ASP.NET developers. PowerWEB LiveControls for ASP.NET enable developers to simply replace a standard Microsoft control with its LiveControl counterpart (ex: replacing a Button control with a LiveButton control) and the application is instantly Ajax enabled. The LiveButton will raise the Click event just like a regular button, execute the code, and return, but the page is not re-rendered for display on the client. Because this technology is so fast, many LiveControls also include extra Windows-like mouse, key, and click events. Finally, new controls such as LiveTimer for server polling and a LiveCallback for custom callback creation are also included.

Usage Scenarios
LiveControls can be used in a wide variety of applications that require a quick "round trip" to the server without the delay and refresh that is normal for a post. Financial market applications can now present instant news and rate changes without refreshing the page. Sports applications can update statistics and scores without user interaction or screen flicker. Slideshow applications can be server driven with changing images. Polling application can show real-time poll results rather than a snapshot of results. Inventory control and commerce applications can benefit by having screens that reflect quantity or pricing changes without refreshing the page, and customers can benefit from a shopping cart that always shows the latest prices and inventory based on user choices. Other types of applications include web-based CRM systems that change screens without a refresh or displays new information as it changes at the server. The potential uses of this technology are inspiring!

Competing Technologies
Smart Navigation. Microsoft included this technology in .NET version 1. A traditional POST is used to capture a new page in an invisible IFrame, then IE attempts to intelligently update form elements without refreshing the entire page. This feature has a bad reputation, requires the use of IE, and still has the server render the entire page.

Client Callback Manager. Microsoft included this technology in .NET version 2, adding a mechanism for implementing early Ajax-like ideas. Although interesting from a technology point of view, the developer still has to write the JavaScript necessary to make this low-level transport mechanism work.

Microsoft recently announced it new ASP.NET AJAX v1.0 (beta). This Microsoft initiative adds Ajax JavaScript plumbing to the ASP.NET environment along with a host of client-side development tools. The included UpdatePanel server control is the only feature that approaches the functionality of LiveControls. It is used to update a partial page in an asynchronous manner using wholesale HTML replacement (instead of the remote scripting technique used by LiveControls). UpdatePanel and LiveWrapper (from LiveControls) have similar functions, but Microsoft is not adding Ajax features to other stock server controls (as Dart has done with LiveControls).

The single most significant product limitation is interoperability with 3rd party controls. Most of Microsoft's Web Controls are very simple, and LiveControls easily creates the JavaScript to update them on the client. For more complex controls, we've created the LiveWrapper control that is used to isolate controls that generate JavaScript as well as HTML. Some controls such as Intersoft Grid and FarPoint Spread, however, use non-standard techniques that require special handling. When interoperability with such controls become a problem for our customers, we plan to extend LiveWrapper to address specific interoperability problems.

Feature LiveControls XmlHttpRequest .NET v2.0
Support for callback technology Easy as dragging and dropping a control on a WebForm Complex JavaScript coding Manipulation of client-side JavaScript and server-side classes with event wiring
Licensing $499 Developer License Free Free
Support for Cascading Style Sheets Can be set as a property on every major object None None
JavaScript code requirement None except when creating custom callbacks using LiveCallback control Substantial Increases as complexity of requirements grows
ViewState support Completely supported between callbacks None None
Code-behind support Native ASP.NET Web Controls None Requires manual implementation in code-behind
Client-side object manipulation Automatic by using server-side model Requires writing JavaScript handlers Requires writing JavaScript handlers
JavaScript Knowledge None required Expert Experienced
Blocking capability Support for blocking and non-blocking Non-blocking only Non-blocking only
Custom callback capability LiveCallback wires up server-side functions Users write all JavaScript JavaScript and code-behind wiring required for any callback functionality
Browser compatibility Compatible with IE 5.0 +, IE 5 Mac, Mozilla 1.3+, Mozilla 1.3+ Mac, Galeon, Konqueror and Opera 5+ Must know the proper object and technique for every browser Limited to versions of IE and Netscape that support XMLHttpRequest
Windows-like look and feel Built-in with mouse, click, and key events None None
Design ASP.NET Web Controls Manual use of the XMLHttpRequest object Combination of .NET classes and JavaScript
Visual Studio Integration Naturally integrates as an ASP.NET Web Control None .NET classes
Bandwidth Saving Features Ability to control server-side persistence None None
Samples Ships with seven ASP.NET C#, VB.NET samples Varies MSDN
Documentation Comprehensive help integrated with the Visual Studio IDE using the Help 2.0 engine with full dynamic help and tutorials. Varies MSDN