The image “http://www.hecgo.com/media/pics/ASP.NET-AJAX.gif” cannot be displayed, because it contains errors.

Microsoft Ajax is Microsoft's free ASP.NET ajax/javascript extension library which is composed of Microsoft Ajax and the extension library, Ajax Control Toolkit. It came out sometime in 2005 - I don't remember exactly when, but it's not until recently that I actually used it extensively.

At first, I was excited about Microsoft Ajax's release; my once bland ASP.NET apps were going to become alive with ajax and javascript! However, after working with Microsoft Ajax for a while now, I'm mostly just frustrated and disappointed. It's dumbed down too much... to the point where a savvy developer will limited and restricted. Sorry Microsoft, wrapping my entire page in an <UpdatePanel> is far from efficient and Ajaxy, even if it does eliminate the "postback flicker."

Also irritating is the name of the Ajax Control Toolkit, which is about the biggest misnomer ever. Most of the controls in this library, albeit useful, have absolutely no Ajax functionality whatsoever. I'm going to make a stab in the dark here and guess that Microsoft's marketing department decided that this title would catch the attention of non-developer people who don't know anything about Ajax... other than that they want it in their application. Boo!

The Sadly Drag and Drop Mentality Re-visted

A while ago, I wrote an article in which I bag on Microsoft for making it possible for developers to drag-and-drop together a web app using ASP.NET and Visual Studio. Well, they tailored towards this style of development with the Microsoft Ajax library, too, and what they ended up creating is a framework that's really only fit for usage in very basic web apps or web apps in which flexibility and performance are entirely unimportant. Unfortunately for us, these are exactly the types of web apps that Average Joe ASP.NET developer seems to create. *Sigh*

Not enough Documentation!

My final grievance is with the documentation for Microsoft Ajax. There's no meaty API that details out all of the javascript behind the Ajax and Ajax Toolkit controls, and this is what I need to know 99% of the time. What I end up doing is painstakingly digging through Microsoft Ajax's complex javascript libraries by hand in firebug... or googling for a solution, hoping that someone else who speaks English has figured it out. Both, obviously, are less than optimal solutions.

Example: I've wanted to trigger the refresh of an <UpdatePanel> control from javascript. This seems like a fairly easy but important feature. You won't find any official documentation on how to do this. If you google for it, you'll find that it can be done using a few methods, all of which are basically hacks that circumvent/trick the normal Ajax framework's behavior. Fantastically not awesome!

I recently started using Ruby on Rails and the Prototype javascript library. The two frameworks are built closely together, similarly to ASP.NET and Microsoft Ajax. However, the documentation for Rails and Prototype is nothing short of awesome.

I'm hopeful that future releases of Microsoft Ajax, if there are any, will address some of these shortcomings that I've repeatedly run into. We shall see, I suppose.