I’ve been away from the blog for a while because I’ve been immersing myself in Atlas, the code name for the forthcoming product from Microsoft that is, for lack of a better term, AJAX for ASP.NET.
AJAX is the hottest thing going in Web programming these days, and it’s no surprise that Microsoft is working hard to bring AJAX to the .NET platform. The Atlas programming model is an interesting one, and, of course, it changed between the first public release and the December release. There are actually two programming models: a client-side model which abstracts the browser DOM and can be leveraged programmatically or declaratively, and a server-side model which uses new ASP.NET controls to abstract the client-side model. While understanding the client-side model is key to understanding how Atlas works, it’s the server-side model that holds the most promise for simplifying the process of building rich, interactive Web applications.
I’m doing my first presentation on Atlas in London week after next, and I’ve been doing a lot of thinking about how best to introduce Atlas to the masses. How the story is presented is important, because if it isn’t done right, people will leave the room dazed and confused. (At first glance, Atlas can be VERY confusing!) I think I have the story structured in my mind now. At a high level, it goes like this:
1) Show how AJAX–especially the XML-HTTP part–works without Atlas.
2) Show what Atlas is and how one programs against it using the Atlas client-side OM.
3) Introduce Atlas XML script and show how it places a declarative wrapper around the client-side OM.
4) Show UpdatePanel and other server-side controls introduced in the December CTP and demonstrate how these controls abstract Atlas XML script. (The audience should breathe a collective sigh of relief at this point.)
I have lots of demos prepared to guide the audience through each phase of the presentation. I’ll let you know how it goes.
The most difficult aspect of working with Atlas today is that there’s precious little documentation available. You see Microsoft samples using <invokeMethod> to invoke methods, and you wonder what other methods can be invoked on that object. There are some good resources out there, including Nikhil Kothari’s blog, Wilco Bauwer’s Atlas blog, and Microsoft’s Atlas discussion forums. But the one tool that I’ve found absolutely indispensable is Wilco Bauwer’s Atlas class browser. In the absence of documentation on the client-side OM, the Atlas class browser is like an oasis in the middle of the desert. Don’t even try to program Atlas without it! (Unless, of course, you stick purely to the server side and could care less what allows all that cool magic to happen on the client.)