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.
Background
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).
Limitations
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 |