I confess I may be confusing people though

I think I need to be explicit about this in my next AJAX session as I'm clearly confusing some folks. ASP.NET AJAX isn't (just) all about the XmlHttpRequest mechanism. It also has some other really nice capabilities. Take extender controls as an example. The framework for building extender controls allows you to (relatively) easily wrap up some client behaviors (defined in JavaScript) and properties, wrap them in an ASP.NET server control and "attach" those behaviors to another server control.

In other words I drag my new extender server control onto my aspx page, set some properties (including the TargetId of the control I want to enhance) and when my control is rendered, the necessary script is sent down to the client to hook up the event handlers, define the behavior, set the properties on the client side etc etc. That control doesn't necessarily communicate with the server. It doesn't necessarily use the XmlHttpRequest object. In fact most extenders I can think of don't need to do any server comms. (An exception to that would be the AutoComplete extender which calls back to the server to get the list of matches for the partial string you've typed in the target TextBox.)

ASP.NET AJAX simply offers you a nice framework for hooking all this up (and a nice framework for talking to the server if you need to). On top of all the goodness that is the UpdatePanel, UpdateProgress etc etc etc.

I'll try and make this clearer when I talk about ASP.NET AJAX in the future as it does all get a little confusing.

Technorati tags: ajax, asp.net ajax