4/2/2006 Update: I posted more great Atlas information + demos/samples (including pointers to a cool video I did) here.
4/2/2006 Update: You can also find a roadmap for new ASP.NET/Atlas releases we are doing in April here.
I had the chance to present a new talk I created about Atlas (our new ASP.NET Ajax framework) to a few thousand people at the Dutch Microsoft DevDays conference last week. Based on the feedback I’ve received it was a big hit, with a lot of people telling me that they left with a really good understanding of what we are doing, and how surprisingly easy it was to use (several people left my talk on the first day, downloaded and installed it, and successfully built their first data-driven Ajax application that night).
Click here if you want to download and walkthrough the slides + demos for my talk.
About "Server-Centric" and "Client Centric" Ajax Applications
I split the presentation into two parts. The first part focused on how to build what I call “server centric” Ajax applications – meaning the application and navigation code for the Ajax application still primarily resides on the server (in the case of ASP.NET using VB or C#), and Ajax is used to communicate between the client and server and transfer incremental updates of HTML UI. The new ASP.NET <atlas:updatepanel> control and other associated Atlas server-side controls make building applications really easy with this approach, and doesn’t require developers to master client-side JavaScript (in fact – you can actually get away without using it at all if you want). It is really easy for any ASP.NET developer to add nice Ajax support to their existing web applications using this approach (for example: you can typically Ajax enable an existing data-driven page using the ASP.NET DataList + GridView controls in less than 5 minutes).
The second part of my talk then focused on what I call “client centric” Ajax applications – meaning that much of the application and navigation logic runs using JavaScript on the client (which then calls back to the server to retrieve and update data). This enables even more immersive applications to be built using Atlas (for example: Mashups, Live.com Gadgets, Windows side-bar components, etc). Atlas provides a rich JavaScript library framework to make building these types of experiences much cleaner and easier. It include a rich networking stack to allow exchanging .NET data-types between browsers and servers, a rich JavaScript library that provides a base class library of useful non-UI components and patterns (for example: the ability to do inheritance in JavaScript, timer classes, string-builder classes, the network classes, etc), and a JavaScript control library framework that enables developers to componentize and encapsulate JavaScript-built behavioral controls to HTML UI (for example: Atlas ships with a client-side ListView control that you can attach to standard HTML <div> elements to provide client-side databinding support against data that you dynamically retrieve from a server).
The Atlas client-side JavaScript library is very powerful and feature-rich. One really nice thing about it for people who don’t want to write a lot of JavaScript is that it can also be used to build ASP.NET controls to enable much richer server controls that encapsulate this behavior for you, and integrate nicely within existing ASP.NET pages. We are going to be putting out a Atlas control toolkit + library containing a number of sample controls that show how to-do this in the next few weeks, and hope to spur control developers to start producing a lot of great Atlas-enabled server controls that anyone can use. Our plan is to make it trivial for anyone to build great ASP.NET web applications that take rich and full advantage of Ajax.
Using the Samples in the Talk
The samples from my talk are best used with Visual Web Developer Express (which is free) or Visual Studio 2005. Just download this .zip file and open the web-site at the sub-directory root and you are good to go (note: you don’t need to install Atlas – since the project already includes a copy of it).
I didn’t require the use of a database with these samples – instead I focused on building very small specific samples that clearly illustrated individual technical points. For a more complete, data-driven, application scenario with Atlas you can check out my Task-List Sample Application & Blog Post that I built using the December CTP drop.
O’Reilly’s Atlas Book
O’Reilly Press also recently published the first Atlas book online.
It is part of their “rough cuts” series – which is a concept I find really appealing. Basically with the rough-cuts series you can pay $17.99 to buy and download a .PDF subscription version of the Atlas book, which will then be updated as the technology changes and the book evolves (they’ll send you an email when updates occur and then you can download the new update). For $38.99 you can buy both the online subscription version as well as get sent the final printed book once it ships in the future when the book is done and the technology stops moving. This provides a nice way to stay up-to-date with bleeding edge technology, but also not have to worry about your bookshelf becoming obsolete a few months from now.
I bought and read the Atlas Rough-Cuts book on the plane ride back to Seattle. I found it a good book that helped a lot in learning the basics of the Atlas client-side control framework and base class library (the documentation for both of which is still very scarce). The current version of the book doesn’t cover the server-centric model yet or the <atlas:updatepanel> control (although this is the easiest part of Atlas to learn – and my samples + slides above should cover most of the basics). But if you are looking to start understanding the client-centric approach I’d recommend buying a copy and checking it out – it is a fast read that helps provide easy exposure to the technology. You can learn more about it and order/download it here.
Hope this helps,
Scott
P.S. We’ll be releasing a lot more information + samples + document about Atlas at the MIX conference in a week’s time. Stay tuned for then.
P.P.S. Peter posts some nice pictures and notes from the DevDays event - including one of me looking like I am pleading <g>. You can check them out here.