Archives / 2006 / March
  • Upcoming ASP.NET Releases in April

    I was chatting with someone at the MIX conference who mentioned he’d love to have an easy way to stay up to-date with all of the things Microsoft is coming out with in the ASP.NET space.  To help folks better track things I’ve decided to try and do a monthly “coming soon” post that outlines the list of things we are working on releasing from the team in the weeks ahead.


    The current list of ASP.NET related things planned in April includes:


    VS 2005 Web Application Project: As I mentioned in this earlier post, we are a few days away from shipping the feature-complete release candidate of the VS 2005 Web Application Project (see for more details if you haven’t heard of it).  This refresh supports auto-VS 2003 upgrades (just choose file->open project, select the VS 2003 project, and it will convert it to a WAP project for you), adds all missing features from the previous previews and a ton of new ones, and fixes all reported bugs.  We are looking to have it on the web for anyone to download early next week.  We'll then quickly turn around and fix any final bugs people find, and post the final drop on the web (this build will also be rolled into VS 2005 SP1). 


    Atlas Refresh: We shipped our first go-live release of Atlas last week at the MIX conference (you can find tutorials and learn all about it here).  We will be shipping the next refresh of it in April, which will provide bug fixes and more features.  Note that all releases of Atlas will have the go-live license going forward – so this new one obviously will too, and support production deployments.


    Atlas Control Pack: In addition to shipping the core Atlas framework and runtime, we are also going to soon release the first drop of a new Atlas Control Pack that leverages the Atlas framework to deliver a suite of cool re-usable UI controls to make common Ajax scenarios super easy (cascading dropdown lists, drag-panels, collapsible panels, etc, etc).  We’ll be posting more details on this project shortly.


    CSS Control Adapters: One common request we get from developers is for them to have the ability to better customize the markup generated by the built-in ASP.NET server controls.  ASP.NET 2.0 actually includes an extensibility mechanism called “control adapters” that allow just this (basically you can build a class that replaces the rendering semantics of a control, and simply register it in your web.config file to override a control’s built-in rendering – no code or object model changes required in your app).  Our plan is to ship a suite of CSS control adapters (with full source) in the next few weeks for a number of the built-in ASP.NET 2.0 controls (including the treeview and menu controls) that demonstrate how to use this mechanism to enable pure CSS based styling (for example: the menu will generate <ul><li></ul> elements and allow a developer apply a CSS stylesheet to customize the rendering).  This will be available in a few weeks.


    Data Tutorials: I started some popular ASP.NET 2.0 Data tutorials over Christmas that people really liked (you can read the two big ones I built here and here).  My original goal was to build a lot more of them – although unfortunately work got too busy for me to keep up.  The good news is that we are now working with Scott Mitchell (who is a much better author than me!) to create and publish a 38-part ASP.NET data tutorial series that covers all of the common data scenarios with ASP.NET 2.0, the ObjectDataSource control, and the data controls.  The first installment of these step-by-step tutorials will show up on and/or MSDN in a few weeks, and will be available in both VB and C# versions.


    “How Do I” Videos: We’ve had absolutely awesome feedback on the ASP.NET “How do I?” video series we published last month.  If you haven’t watched them yet, I’d recommend spending a few minutes checking them out here.  They really provide a great way to come up to speed on the new ASP.NET 2.0 features, and to watch in action how things work.  We are going to be working on producing many more of these in the months ahead, and hope to have the next set of installments start showing up regularly on the site in April.    


    RSS Tool-Kit Update: Dmitry beat me to this “coming soon” post and released an update to his great ASP.NET 2.0 RSS Toolkit this weekend.  If you haven’t checked it out yet, you definitely should.  I have some simple tutorials on using it here.


    Hope this helps in understanding our plans for April.  I think May is going to be an even more exciting month (but I promised the team I wouldn't let slip why yet <g>).




    - Scott


  • Pointers to Great ASP.NET Atlas Content

    June 21st Update: Here is a pointer to even more content. is the best place to visit to learn more and download the latest Atlas CTP Release (which now supports Go-Live deployments). 

    If you haven't had a chance to dive into Atlas yet, you might want to set aside 18 minutes to watch this "How do I" video on the Atlas home-page that walks through how to build a Todo Task List using Atlas from scratch (I type everything in from scratch - including creating the database, building a DAL layer using typed tableadapters, then creating a filtered, sortable, pagable, inline editable task list UI w/ Ajax updates).  It shows off the power of ASP.NET 2.0 and Atlas in building smooth, user-friendly, web experiences -- as well as how easy it is.

    I also have an intro to Atlas presentation w/ samples that I posted a few weeks ago here.  This provides a really easy way to master the core concepts of Atlas.

    Brad Abrams (who is the GPM for the team that builds ASP.NET and Atlas) recently published his slides+samples from his Atlas talk at the MIX06 conference, including his cool interactive Atlas Dice application. 

    You can download Brad's presentation + samples here.

    Nikhil (who is a key Atlas architect) also just posted the slides+demos from his MIX talk.  He built a cool online music library ("musicMix") that integrates RSS feeds from iTunes, SOAP services with MSN Search, REST services from Amazon, and the new Live Clipboard concept to share information across applications.  It is a really awesome sample. 

    You can download Nikhil's talk + sample here.

    Bertrand (who is a key Atlas dev) just posted a cool post about the accordian control he built to help Brad's Dice demo above.  You can read about it and download it here.

    Jonathan Hawkins (who is a key PM on the Atlas team) recently posted a great tutorial on building a map-mashup using Atlas. 

    You can read and download the code here.

    Shanku Niyogi (who runs the ASP.NET and Atlas teams) has just posted a cool sample showing how to use Atlas with PHP.  You can read about it and download it here.

    Scott Issacs (who is a Windows Live Architect) just posted his slides from MIX where he shared his "Lessons from the Trenches" talk where he talked about the real world Ajax developer experiences and lessons learned from building  You can read and download it here.

    Hopefully lots of fun stuff to check out and enjoy!


    P.S. Shanku is going to post his Atlas slides+demos shortly.  He will include a sample that shows how to use Atlas against a PHP backend -- which the MIX crowd really loved.

  • New Publish Feature with VS 2005 Web Application Projects

     May 8th Update: The final release of the VS 2005 Web Application Project is now live.  You can learn more about it here.

    We are finishing up the final week of work on the feature-complete build of the VS 2005 Web Application Project option.  This build has a ton of new features and functionality, and fixes all of the bugs reported with the last preview.  We are in the process of verifying the build with a number of private beta testers now, and will make it available for everyone to download early next week.

    One cool new feature that I’ve been playing around with tonight, and that I think people will really like, is the new “Publish” feature that this new build of VS 2005 Web Application Projects will enable.  This provides a really easy way to deploy a VS 2005 Web Application Project, and is much improved from the support in VS 2003.   

    To use it, all you now need to-do is choose the Build->Publish menu item to launch the publish dialog for the web project or solution you are working on:



    You now have the option of doing incremental file deployments for your web application – where only new and changed files in the project are updated on a server (so if you make a modification to a page, only its .aspx and the .dll in the \bin directory are copied).  It allows you to optionally omit deploying app_data directory files (so you can deploy a SQL Express database once, and not overwrite it on updates unless you want to).  It supports FTP, HTTP, and File-System based deployments (so you can point directly at your remote FTP server if you want).  And it supports copying and deploying files in the background asynchronously for large web solutions (so you don’t have to block on waiting for all the files to be copied).  You can optionally choose to monitor the deployment progress via the output window in VS:



    For even richer deployment customization, you can also obviously attach a VS Web Deployment Project and/or VS Web Setup Project (and even chain the three projects together, so that the output of one feeds the next one in the chain). 


    But for the most common scenarios, though, everything is now built-in to the VS 2005 Web Application Project type and allows super fast deployments and updates. 


    Hope this helps,




    P.S. One of the other cool feature additions in the new VS 2005 Web Application drop is better support for building a single web-application composed of multiple web projects (where each web project makes up part of the single site or application).  I’ll blog about this feature shortly and some of the cool new things you can do with it that you can’t in VS 2003.


    P.P.S. This new build also support auto-upgrading of VS 2003 web projects.  So if you have the VS 2005 Web Application Project installed, and doing an Open Project on a VS 2003 Web Application it can automatically convert it to a VS 2005 Web Application Project -- without you having to modify the project file at all (which is the current workaround with the February VS 2005 Web Application build).


  • Upcoming ASP.NET and IIS Deployment, Debugging and Operations Web-Casts

    There are some excellent web-casts scheduled over the next few weeks that you should consider watching and joining (registration and attendence is free).  Some of them are being held by senior engineers on, who will share tips and tricks about hosting one of the most heavily visited web-sites in the world.  You can learn more about the web-cast topics and register here.

  • Handling 1.5 Billion Page Views Per Day Using ASP.NET 2.0

    One of the highlights for me at the MIX conference earlier this week was being able to chat with customers about the success they’ve had with sites they’ve built on top of ASP.NET 2.0 and IIS 6.   

  was definitely the biggest highlight.  For those that aren’t familiar with, it is the fastest growing site on the Internet right now.  They have 65 million registered subscribers, and are registering 260,000 new users each day.  According to the Media Metrix report (an independent analyst firm) had more page views in February than all of the MSN and Google sites combined.  That is some serious load.


    They re-built and re-deployed their site on ASP.NET 2.0 shortly after we shipped last year.  Some of the pretty amazing statistics Aber and Allen (the MySpace CTP and VP of Engineering who were both in BillG’s keynote session) shared at MIX about the site:

    • is now processing 1.5 Billion page views per day
    • handles 2.3 million concurrent users during the day
    •’s average server CPU utilization went from 85% to 27% after moving (from another technology) to ASP.NET 2.0

    Those lucky enough to attend MIX (or watch the web-casts online) were also able to see Allen demo the new Ajax Profile Personalization engine that MySpace is building using Atlas (which you can learn more about here – including watching a video by me building a to-do task list app from scratch with it), as well as attend the awesome “Building Mega-sites” talk that MySpace gave together with folks from about real-world, super large-scale, development and deployment experiences.


    Other great real-world Atlas deployments by customers that were highlighted at the MIX event included,, and (you can click on the “showcase” tab on to read more about them and their experiences). 


    It is hearing stories like these that keeps me motivated and having fun. :-)


    - Scott


    P.S. In case you were wondering, the top-6 domains in terms of page-views in February according to Media Metrix were: 1) Yahoo, 2) MySpace, 3) MSN, 4) Ebay, 5) Google, and 6) Hotmail.


    P.P.S. 4 of the top 6 sites (MySpace, MSN, Ebay and Hotmail) run on IIS and Windows. J


  • Access to a page's head element using ASP.NET 2.0

    One of the small, but nice, feature additions in ASP.NET 2.0 is support for a <head runat="server"> tag that you can access via the page object's "Header" property.  This is added by default to a page when you create a new one with Visual Web Developer or VS 2005.  You can then programmatically access it like so:

  • Using .NET to Build Cool Games for XBox

    In case you missed the cool news from earlier this week, it will be possible to build games for the XBox using managed code (C# or VB) and a new .NET API for the XBox graphics engine. 

  • Atlas Presentation and Samples

    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, 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,




    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.