"Things like the script manager and the update control panel allow different parts of the page to perform partial rendering," said Brian Finnerty, director of marketing for InnerWorkings, a Windows programming consultancy. "With the update control panel, you can enable partial updates and can control where updates are rendered on the page."
As one example of this, Phanfare.com, a photo sharing application, is using ASP.NET AJAX to make it easier for users to make changes to their photo albums, which may consist of thousands of thumbnail images.
However, as an ASP.NET application, Phanfare had to be crafted carefully in order to get the maximum scalability.
As Jeff Prosise, co-founder of .NET consultancy Wintellect, put it, "Ajax is good at minimizing traffic over the wire. But ASP.NET pages can store the state in a hidden input field.
ASP.NET pages typically render out a large tag that is stored as a viewstate, he noted. ASP.NET transmits viewstate up to the server by default because the code on the server might need to make a change to one of the controls.
"In the traditional ASP.NET model, it is not the pages themselves that are stored in the viewstate -- it is the state of the pages," Prosise noted, adding that it is quite common to have 50 kilobytes stored in viewstate.
Prosise recommend replacing postback functions with callback in Ajax, which, if done right, can reduce the data going over the wire by three orders of magnitude.
"The key is getting rid of the viewstate and not having to round trip it. You don't need to send it up and down the wire every time," he said. "It is easy to replace those heavy postbacks with lightweight callbacks. It makes the whole thing more scalable because you are not processing as much data on the server as you were before."
Prosise continued: "In an ASP.NET AJAX application, a programmer can do away with the postback, and when the user clicks a button, the application just sends a lightweight Ajax callback to the server. This lets the application be more precise."
The amount of bandwidth a programmer can save depends on the nature of the callback. In one of the demos Wintellect performed for SearchVB.com, its developers were able to replace 50 to 100 kilobytes of viewstate data with a 10-byte callback.