Outstanding Features of the AJAX Control Framework

  • Control-Level AJAX Methods
This feature is the equivalent of Page Methods in ASP.NET AJAX. But unlike with Page Methods, AJAX Control Methods are defined within a Control's class, and are not designated only to the code-behind class of the current Page. These methods do not have to be static; they can be private, public, or protected. Having this capacity is very important in preserving componentization of your web applications.

  • Ability to Retrieve the Rendered HTML of any Control From Client-Side Code
Simply tell your custom AJAX enabled controls to "update" themselves, and have stale HTML automatically replaced with fresh HTML returned from the server. Also, if any of your Control-Level AJAX Methods change the appearance of your Control, you can tell the AJAX Control Framework to re-render it and update the HTML in your browser for you automatically. You can even retrieve the HTML of a Control that isn't currently referenced anywhere on your page by providing the AJAX Control Framework the name of its Type. Pulling in dynamic content from other parts of your web application can now be accomplished with a single line of JavaScript.

  • Maintain Custom State of a Control on the Client-Side
Every instance of an AJAX enabled control has the ability to send back and forth to the server a special collection of objects (best described as a State Bag). This collection can be populated on both the client and server-side, providing a means to send back and forth extra "contextual" state data that may assist in the asynchronous rendering or method invocation of a control.

  • Automatic JSON Serialization/Deserialization
All objects passed to and from the server via the AJAX Control Framework's Callback Strategy are serialized/deserialized in JSON format for lightweight data transfer. Not only that, you can swap out my code for JSON serialization with your own.

  • Emission of Template based and Customizable Proxy Scripts
Whenever an AJAX enabled control is referenced on a page, JavaScript is generated and rendered to the browser. This JavaScript forms a small object representation of the control on the client-side that gives your code access to any server-side Control-Level AJAX methods you've defined and the ability to request from the server the control's raw HTML. Most importantly, the object maintains the Control's ClientID property, so that the server can operate on the specific instance of the control. All of these scripts are generated from templates, so modifying and extending (which may involve you adding your own custom Properties or Methods to be maintained on the client-side) the emitted proxy objects is a breeze.

  • Provides a Highly Efficient Client-Server Communication Protocol Based on the ASP.NET Callback Mechanism
The Callback Strategy augments, improves and in many places completely strips away the inefficient components and unnecessary events of the default Page and Callback Life-cycles, creating a protocol tailored to the processing and rendering of specific instances of Controls on a Page. Just like with the JSON serialization feature, you don't have to accept my implementation and can quite easily swap it out with your own.

  • Persistence/Inflation of the ViewState, ControlState, and PostBack Data of individual instances of Controls, "in scope" of the current Page
Inside of AJAX methods you can interact with nested WebControls and their values just as you would if the method were an event handler invoked by a normal PostBack. No need to pass the value of your text fields as parameters to your AJAX methods since their values are automatically available to you through their server-side references. The Session and Cache collections are also accessible through the conventional means.

  • Client-Side Components are tiny and Play Nice With Other JavaScript Frameworks Like jQuery.
All of the client-side components were developed using native JavaScript syntax so there are not inherit conflicts or incompatibilities with 3rd party JavaScript libraries. Also, no action is required on your part to get the scripts to render to the page. Simply adding an AJAX enabled control to your markup or to the Controls collection of a Page or User Control will cause the AJAX Control Framework internal scripts to be loaded.

  • A Powerful UpdateRegion Control and ScriptManager are Available Out-Of-The-Box To Take Alot of The Heavy AJAX Development Out Of Your Hands
The UpdateRegion is the equivalent of ASP.NET UpdatePanel, allowing you to wrap any server-side controls for automatic conversion of your PostBack eventing to asynchronous, AJAX driven eventing. (Update Region) Also available is the ScriptManager component that provides both declarative and programmatic management of all your script references, ensuring they all load together (either at the bottom of the <body> or the bottom of the <head>) and that no duplicate scripts get rendered. (Script Manager)

  • Easy Installation
Truthfully, there is no installation, beyond dropping the AjaxControlFramework.dll file into the /bin folder. That means no modification of the web.config to get it to work.

Last edited May 2, 2010 at 3:59 PM by peanutbutterlou, version 22


No comments yet.