Microsoft “Atlas” – Features vs Size and Performance
I attended the Microsoft presentation of “Atlas“, Microsoft AJAX Library and ASP.NET 2.0 AJAX Extensions, hosted by .Net BC this past Wednesday.
Something that had me intrigued was when Shaun Walker of DotNetNuke fame showed how easily it was to integrate “Atlas” into DNN. I’m wondering if the simplicity of the changes is due to the .Net Framework itself or if the DNN developers had pre-wired some hooks for “Atlas.”
While the rest of the presentation was pretty much the same top-level information I’ve heard in previous previews of “Atlas,” there are a few points about “Atlas” I would like to touch upon.
Cross Platform Compatibility
I have been keeping an eye out on “Atlas” ever since it was announced last year but haven’t really taken a close look at it due to its maturity. The “Atlas” Microsoft AJAX Control Tookit, up until recently, hasn’t been very cross-browser friendly. Colour me impressed by the September 14th release though. All the controls seem to work just fine with FireFox and I’ll have to test everything with Safari and Opera the first chance I get.
File Size
The release version of the entire Microsoft AJAX Library is going to weigh in at around 350Kb. The core library alone is around 100Kb. That’s REALLY, REALLY big download the first time an user hits your page. Hopefully they have the browser’s file caching turned on.
XML Script
This both interests and concerns me at the same time. “Atlas” XML Script a new declarative script format for defining script object instances, their property values, and how they wire up to each other.
What excites me about XML Script is a non-JavaScript developer can now code up client-side functionality using simple to comprehend, XML-based markup. I can see tools being developed to format and debug XML Script client-side code because being XML, it can easily be parsed and styled.
The concern is XML Script IS STILL client-side code. It is interpreted by the “Atlas” JavaScript library within the browser runtime. So let me get this right:
- You take a hit loading the large “Atlas” JavaScript library.
- You take a hit parsing the XML Script.
- Then you finally execute whatever the XML Script you coded.
Why MS didn’t give you an option to compile the XML Script into JavaScript on the server-side in .Net, or even at authoring time in Visual Studio, is beyond me.
Deploying “Atlas” in the Real World
“Atlas” has an incredible set of features that will make developing client-side code simpler but it does so by giving up performance and file size. I think Atlas will have a great home in intranet style applications where the client platform is standardized and bandwidth considerations aren’t usually as much of an issue as in public-facing web apps.