Atlas
I'm preparing for a presentation on Microsoft's AJAX implementation - ATLAS at the Denver Visual Studio Users Group next Monday night on June 26th, 2006. I thought I'd take a little time to focus on talking about AJAX in general and Atlas to help anyone interested.
The primary resource for Atlas is the www.asp.net web site - there's a tab for Atlas there. I'll cover some other resources in subsequent posts.
If you want a brief history on what Atlas is from my perspective, basically everyone has been very focused over the last couple of years in making the web experience better - the web is instantly accessible to everyone, yet the usability of applications on the web leaves a lot to be desired. Software designers are very interested in making a better web experience for the user. The static interaction of browsers to date make this a large hurdle to overcome. Http requests go out from the browser, active code on the server side, and then are returned statically to the browser. Any persistent information has to be architected. "Postbacks" are what happens when an application needs to gather data from the user, return it to the server, and process it in some fashion in order to provide features to the user. "Postbacks" takes time from a user perspective, and are an annoying part of web applications that don't exist in desktop applications. "Postbacks" because they freeze up the browser while happening involve a lot of the user sitting around waiting on the application to do something. The culmination of annoyance if you do any online shopping is the "Place Order" button - which takes forever to process, and users now are kind of used to it. I sometimes use the term "suckage adaptation" to describe tolerance we build up to things not working like they should.
AJAX in general, and Atlas as one of Microsoft's efforts on this front, are an attempt to end the "clunkiness" of web applications in removing the need for "postbacks", or round trips to the server where the user waits for it to process every step of the way. The idea is to process some of the server roundtrips asynchronously without hanging up the browser and the user interaction for returns. This is a lot nicer. Some of the premier web applications of interest on this front over the last year are Microsoft's Virtual Earth site and Google Maps. See how nice it is to interact with the web without having to sit around waiting for server response?
In general terms AJAX stands for Asynchronous Javascript and XML, and was more of a marketing term coined for recent "slick" development efforts on the web front. The asynchronous part you can understand from a users perspective as I described, and the javascript and XML portion really involve the guts of how that goes about - there is a XMLHttpRequest object that was first designed into IE but now has migrated over to being available in Apple Safari, Mozilla-based, and Opera browsers. XMLHttpRequest allows interaction between javascript and the server without requiring a postback. Basically it's your transport for making AJAX happen.
Naturally, there are slight differences in how that happens with different types of browsers. One of the things Atlas provides is a javascript library for providing a cross-browser "common" approach that sorts out all of those differences and makes them transparent to the developer. This to me was a huge advantage, as I'm really not the type of person that derives a great deal of value in debugging client-side javascript implementations in cross-browser environments for every little application I support.
In my opinion, AJAX and Atlas are just the beginning. Web 2.0 is upon us, and there is a push from many different fronts to make the web a better experience. I'd encourage all web / ASP.NET developers to look into these concepts as well as try out some Atlas in your code.
Your users will thank you.
The primary resource for Atlas is the www.asp.net web site - there's a tab for Atlas there. I'll cover some other resources in subsequent posts.
If you want a brief history on what Atlas is from my perspective, basically everyone has been very focused over the last couple of years in making the web experience better - the web is instantly accessible to everyone, yet the usability of applications on the web leaves a lot to be desired. Software designers are very interested in making a better web experience for the user. The static interaction of browsers to date make this a large hurdle to overcome. Http requests go out from the browser, active code on the server side, and then are returned statically to the browser. Any persistent information has to be architected. "Postbacks" are what happens when an application needs to gather data from the user, return it to the server, and process it in some fashion in order to provide features to the user. "Postbacks" takes time from a user perspective, and are an annoying part of web applications that don't exist in desktop applications. "Postbacks" because they freeze up the browser while happening involve a lot of the user sitting around waiting on the application to do something. The culmination of annoyance if you do any online shopping is the "Place Order" button - which takes forever to process, and users now are kind of used to it. I sometimes use the term "suckage adaptation" to describe tolerance we build up to things not working like they should.
AJAX in general, and Atlas as one of Microsoft's efforts on this front, are an attempt to end the "clunkiness" of web applications in removing the need for "postbacks", or round trips to the server where the user waits for it to process every step of the way. The idea is to process some of the server roundtrips asynchronously without hanging up the browser and the user interaction for returns. This is a lot nicer. Some of the premier web applications of interest on this front over the last year are Microsoft's Virtual Earth site and Google Maps. See how nice it is to interact with the web without having to sit around waiting for server response?
In general terms AJAX stands for Asynchronous Javascript and XML, and was more of a marketing term coined for recent "slick" development efforts on the web front. The asynchronous part you can understand from a users perspective as I described, and the javascript and XML portion really involve the guts of how that goes about - there is a XMLHttpRequest object that was first designed into IE but now has migrated over to being available in Apple Safari, Mozilla-based, and Opera browsers. XMLHttpRequest allows interaction between javascript and the server without requiring a postback. Basically it's your transport for making AJAX happen.
Naturally, there are slight differences in how that happens with different types of browsers. One of the things Atlas provides is a javascript library for providing a cross-browser "common" approach that sorts out all of those differences and makes them transparent to the developer. This to me was a huge advantage, as I'm really not the type of person that derives a great deal of value in debugging client-side javascript implementations in cross-browser environments for every little application I support.
In my opinion, AJAX and Atlas are just the beginning. Web 2.0 is upon us, and there is a push from many different fronts to make the web a better experience. I'd encourage all web / ASP.NET developers to look into these concepts as well as try out some Atlas in your code.
Your users will thank you.



Comments