In the first session - "Lessons from the trenches - Engineering great AJAX experiences" - Scott Isaacs, architect on the Windows Live Frameworks, started from the AJAX development pattern and highlighted how such a simple pattern is a good solution for improving form interactions and for building rich experiences. As an example for pointing out the difference of User Experience when requesting a change in the page Scott used the Google homepage and Windows Live. Where Google does a full page reload, Windows Live only refreshes the part requested to reload. The typical flow starts with an asynchronously request data from the server, process the result and update the page.
However it's clear that we need more than just a good pattern to extend the reach of your web application. You can extend the reach of the app by integrating it with the rest of the web. This can be achieved by using mash-ups. Mash-ups are web applications that consumes ("remixes") content and experience from different sources and aggregates them to create a new application. This is basically the starting point for rethinking the web: building a application that only consists of mash-ups. In this case a mash-up has become an architectural pattern, leveraging the current investments and - additionally - providing default and customizable experiences.
All of the above describes exactly the approach when architecting Windows Live. So are the Windows Live menu, the search box, Live mail, etc. all different gadgets based on the AJAX pattern. At the core all components are gadgets. This also means that in the future third-party developers can extend other web experiences (Eg: MSN Spaces), host Windows Live Gadgets on their own site and even extend Windows with Gadgets via the Sidebar in Windows Vista.
In the second part of the presentation Scott went through a number of lessons the Windows Live team learned. He discussed:
Client-Side Page Composition
Modern Development Patterns
Proxying, Cachinh and Scalability
Themeing and consistent Experience
how do we work around the limitations of our host environment (the browser)?
So for building web applications using AJAX-style technologies it all starts with putting "Engineering" into your client, flesh out the intended scenarios and application flow, and avoid (or minimize) breaking the Web Model. More of this architectural guidance and development experiences coming from Microsoft and more particular the Windows Live architects can be expected in the coming months. All the lessons they learned will also be gathered in the documentation of Atlas.
The latest Atlas CTP can be downloaded at http://atlas.asp.net.
The second session on Atlas discussed how to design a better User Experience With AJAX And ATLAS. Starting from UX design guidelines like:
Rick Spencer explained and showed how all of the above requirements were taken into account when building Windows Live. Brad Abrams - Mr. Framework Design Guidelines - implemented all of these principles in a simple web site (demo). For developing the web site he used Visual Web Developer 2005 Express Edition and the March CTP of Atlas. I appreciated this session a lot because it very well showed the power and productivity one can achieve using ASP.NET 2.0 and Atlas for developing AJAX-style applications.
As you can see all sessions touched on the fact that the user experience is one of the key requirements for developing a successful application. The overall UX of the end-user has become the critical factor for measuring the success of an application, no matter you're talking about windows or web-based apps. Joe Stegman did a good job explaining why and how a great UX can be achieved on a web browser platform by using Windows Presentation Foundation Everywhere ("WPF/E"). WPF/E is a cross-platform subset of WPF and is all focused around interactive content. With WPF/E it is possible to mix UI, text and media using the XAML declarative programming model. Additionally WPF/E will run on the following web platforms:
and in the browsers: