Muzak Discourages Loitering Teen Thugs
The Atlas UpdatePanel is amazing. I've been enamored pretty much since I saw my first demo on it. This isn't like the demos you've seen on ASP.NET 1.0 dealing with DataConnections and DataAdapters. You know the ones: they'd drop a connection, an adapter and a dataset on the page, wire them all up and say, "Look how easy!". The problem there is that no one outside of a student facing a serious deadline would build their applications like that.
But the UpdatePanel not only makes a great demo, it is genuinely a better way to add AJAX to your applications. There is such little effort required to get a whole lot of benefit.
The idea behind the UpdatePanel is that you wrap it around existing pieces of your page, set it to trigger on certain events and....well, that's it. Atlas takes care of the details: loading the XMLHTTP object, setting up the asynchronous call, ensuring the readystate is set to 4, checking the status of the request, etc, etc. No changes to the code-behind required. No decorating your web services. No special Atlas versions of the ASP.NET controls.
In a previous post on the subject, I claimed it would be useful mostly for converting existing applications to use AJAX. I'm backtracking now. It is still great for that purpose. But I have no problem recommending it for new applications either. Two main reasons for using AJAX is to make your application more responsive (or, more importantly, making it APPEAR more responsive) and to reduce the network traffic that comes with regenerating an entire page which each postback. The UpdatePanel accomplishes both of these objectives. Yes, you have more control and can get greater bandwidth savings doing it yourself. But balance that with the cost of a developer's time to develop it (and for someone to maintain it).
Incidentally, I've also learned that it is the Atlas ScriptManager that ensures only the delta comes back from the server. Apparently, it overrides the Page's Render method. Why can't I think of these things?