Thursday, August 25th, 2005

Microsoft FireAnt: Ajax behind Hotmail

Category: Editorial

Omar Shahine from the MS Hotmail team has come out talking about the new architecture for hotmail.

Last summer we spent a lot of time at the white-board
evaluating a number of ways to deliver a new architecture for Hotmail.
We considered a number of things:

  1. Modification of the current C/C++ ISAPI architecture to support a hybrid ASP model.
  2. .NET rewrite for the DataLayer and BusinessLayer and XML/XSLT for the PresentationLayer
  3. Same as #2 but the Presentation layer would be JavaScript, XMLHTTP, and DHTML/CSS. This now has the fancy name, AJAX.

After much deliberating, we chose #3, and started running. For 4
weeks basically 1 PM, a developer and an intern built a prototype, and
then the real thing (in case you are in college I’d note how cool
it is that we put an intern on the most important technology we we’re
building). As more people started to move over to the FireAnt project,
we got more and more excited about what was happening. You see, writing
AJAX code can be a pain, and we didn’t want to spend our days and
nights writing a lot of JavaScript and debugging client side Script.
Instead we built an infrastructure that dynamically take server side
objects (classes and methods) and automatically generates client side
JavaScript stubs. The end result is that the client side object model
looked exactly like the server side object model. Information was
transported across the wire using XMLHTTP and the whole thing happened
Asynchronously.

We extended .NET Attributes to mark classes and methods as FireAnt
classes/methods and at build time the script is generated. If you think
of SOAP support in the .NET Framework, it’s basically similar. As a
developer you do not worry about generating SOAP messages, or building
a SOAP parser. All you do is mark your method as [WebMethod] and your
classes as [Serializable] and the .NET framework takes care of
proxying, class generation etc. That’s what we were shooting for.

This was a big deal for us as it allows us to be incredibly
productive.

Posted by Dion Almaer at 10:35 am
2 Comments

+++--
3.7 rating from 15 votes

2 Comments »

Comments feed

This architecture sounds very similar to the approach taken by DWR over in Java world. I wonder if the Microsoft team would consider releasing a DWR-type libary for the .NET world…

Comment by Kyle Adams — August 25, 2005

Kyle –

Isn’t this what Microsoft Atlas is going to be?

Cheers,

Dion

Comment by Dion — August 25, 2005

Leave a comment

You must be logged in to post a comment.