See my response in
this thread to get some more clarification on some differences.
I will try and elaborate a little more here...
Asynchronous Javascript And XML is what AJAX stands for. This is all it is, therefore you will see many different approaches to what people call AJAX.
ASP.NET 2.0 has had something called client callbacks slated for release for some time now (before the AJAX craze).
It enables a the client browser to invoke an event handler on the server as if a postback actually occurs. (My document goes into this, for it is really a cool idea the MS came up with to make both the browser that supports callbacks and one that does not be handled in the same manner). Due to the way it was designed allowing controls like a tree to support populate on demand becomes quite elegant (again, see the doc I published for more detail).
This is a bit different than what most AJAX libraries are geared towards. I view them more as webservice calls. They typically call into a function that is not embedded within a page (definitely would not be considered an event).
Though many people think that AJAX is something new, actually it is quite old (as my sidebar in the document mentions). Probably the first true AJAX (HTTPRequest + XML) was released by Microsoft as an IE specific component (
WebService Behavior). RDS, Remote Scripting, and JSRS are much older, none of them used XML inherently.
One may wonder why most "AJAX" implementations out there actually don't use XML as their transport. I believe this is due to the fact that not all browsers support XML parsing inherently. This is where the ClientAPI implementation differs. It determies if the browser has both an XML parser and HTTPRequest object available. If it doesn't it uses the wrapper classes for its xmlparsing and httprequests. The xml parser is quite primitive, but it works. The xmlhttp request wrapper object is much better since it is based off of the design behind JSRS.
Hope this information proves helpful.