random bits from Rich Ersek, Customer and Community Lead Program Manager for Microsoft's Web Platform & Tools team
I just released the CSS Properties Window add-in for Visual Studio 2005 on Sandbox, developed by Barry Tang and our team (including Scott Louvau, Alex Gavrilov and Ben Constable). This tool provides much-needed functionality in VS 2005, allowing you to view and edit stylesheets using a familiar property window interface in the design view. Give it a try!
Just in time for the launch of ASP.NET 2.0 today, we also launched an upgrade of the www.asp.net website. We've been testing the site on beta.asp.net over the past several months and also added several new features for the launch. Here are a few highlights of the changes:
A quick update on a version of the Atlas VSIs that work with Whidbey RTM/RC. As noted in the 'Get Atlas' section, the downloads currently only work with Beta 2 builds. While it's possible to get them to install on RC with a minor tweak, there's a good chance something in your app will stumble on one of the breaking changes between those versions.
We depend heavily on 'dogfood', i.e., self-testing to make sure that ASP.NET 2.0 is ready to ship to our customers. Starting before Beta 2, I've been working with several large internal customers committed to deploying and testing ASP.NET 2.0 for us. Along the way we're learning a lot about the kind of issues that customers will face. We've fixed many of those problems and will also be providing documentation on how to deploy applications in various challenging scenarios.
For example, the Microsoft.com Download Center has been one of our earliest internal customers and has been running on 2.0 since last June. What's the big deal about this? All of Microsoft's downloadable content is hosted by the Download Center site. If you separated Download Center from the microsoft.com domain, it would still be one of the largest sites on the web. Consider these recent stats:
~37 Million unique users
~325 Million Page Views
28.14% of all traffic on Microsoft.com
769,155 Unique pages
From a software engineering perspective, this is a tremendous asset for us because although we do extensive stress testing with numerous scenarios and application variations, we can't possibly create an identical environment in the lab. It also helps us focus on the complexities of supporting applications from a variety of development teams together on the same machine. In the case of Download Center, we had the challenge of upgrading this application to ASP.NET 2.0 while other applications on the site continued running on ASP.NET 1.1.
Here's a real world example of some things we learned during the Download Center deployment: While we've put a lot of work into ensuring an easy upgrade of 1.1 to 2.0 apps and coexistence of apps created with both versions on the same machine, an application's architecture and environmental factors can also affect deployment. ASP.NET 2.0 supports running 1.1 and 2.0 versions of the framework side-by-side on the same machine, using IIS Application Pools to isolate each framework instance. But what happens when your 1.1 and 2.0 apps both depend on a second application for part of their functionality and that application is supported by another group? This was the case with MNP, a UI layer developed internally by Microsoft.com that renders XML-based content and provides the 'chrome' - the common look and feel - across all Microsoft.com properties. The solution in this case was to create an ASP.NET 2.0 version of MNP specifically for Download Center and future Microsoft.com sites that would upgrade to ASP.NET 2.0 later.
However, we still needed to overcome a few things. First, the new version of MNP had to coexist on the same machine with the remaining apps that used the old version. Second, to maintain compatibility with MNP-dependent apps, we had to maintain the same class names across both versions. In early testing, we saw the following error:
Compiler Error Message: CS0433: The type 'Microsoft.MSCOM.MNP.TableOfContents.TableOfContentsPage' exists in both 'c:\WINDOWS\assembly\GAC\MNP.TableOfContents\188.8.131.52__a75671c2b10b8543\mnp.tableofcontents.dll' and 'c:\WINDOWS\assembly\GAC_MSIL\MNP.TableOfContents\184.108.40.206__a75671c2b10b8543\MNP.TableOfContents.dll'
In other words, the compiler needed help to distinguish between MNP version 2.0.8 and the new version 2.1.0, which both existed in the GAC. We used bindingRedirects in Web.Config to explictly reference the correct assembly:
And in the page directive, we also had to force the pages using the classes in that assembly to use the new version:
Inherits="Microsoft.MSCOM.MNP.Framework.Page, MNP.Framework, Version=220.127.116.11, Culture=neutral, PublicKeyToken=a75671c2b10b8543"
This fixed the problems, and Microsoft.com has been running this site reliably since June. So while we encountered a few issues during the upgrade, the great news is that we're moving Microsoft.com to a very stable platform which is easier to maintain and troubleshoot (through improvements in CLR and the new eventing and tracing features).
In the future, I hope to provide more examples here of our internal customer experiences with ASP.NET 2.0.
TechEd was great this year, though I had to leave early on Wednesday to care for my wife who picked up a really nasty virus. Here's a synapsis of my brief but, enjoyable stay:
I finally met John Lam who developed and presented the IIS/ASP.NET migration pre-conference for us, for a walkthrough of the labs for the next day. That evening we picked up Barry at his hotel and joined some of the www.microsoft.com operations guys at a great restaurant in Old Town (La Casa Bandini). I remembered that I'd been there about 10 years earlier the first time I was in San Diego just a few days after I'd joined Microsoft (yes, I'm coming up on my 10yr. anniversary).
We did the pre-con and although there were a few glitches like having to delay the start time by 1/2 hour because a marathon held up the buses from arriving, and a few problems with lab machines everything went very well. (Note to TechEd planners, next time, check if there's a marathon running next to the convention center just before the registration rush). The Microsoft.com guys do an excellent job of talking about how they deployed IIS 6 very early during the betas and how they keep one of the most visited sites on the web running so reliably. I really enjoy working with them - we've been working together for about 3 1/2 years on early deployment for IIS 6 and now for Whidbey as well.
First day of booth duty and we're swamped with people. Of course, during the first hour, we're swamped with the overflow of the folks crowding the MOM booth for whatever they were giving away. We still had a lot of great conversations with customers who were deploying or planning to deploy or upgrade to IIS 6.
Monday evening, we join some ASP.NET and IIS team people for a late dinner after the Expo closed. Everyone's practically falling asleep at the dinner table - except when we got into recollections of the Transformers, Decepticons, Autobots, etc. everyone had when they were kids. The only transformers I ever had were the ones my wife would confiscate from her students - man, I felt old.
Sat down with some of the TechEd attendees at lunch. One people at the table asked if I knew anything about the 'bogglers' at TechEd ;-). I replied that blogging sometimes boggles me too.
Booth duty again. People working & visiting the booth keep telling me that some some 'girl in pink' is stalking me. Some said they read it in her blog. I thought blogging to find me was a riot but the word certainly got around!
Had our 'IIS Meet the Experts' session in the cabana. It was a great turnout but next time, we need a better location because a lot of people in the back probably couldn't hear us. Afterward, I met Marcie - my pink stalker :-). Also learned that she also works for/with Barry - small world!
Sat in on the .NET BOF that evening with Rob Howard - mostly centered on VS & the framework. I left with Ambrose & Jim and joined a few of the ASPInsiders for dinner.
Overall, TechEd was like a big family reunion. Compared to previous years, I was able to connect with a lot more people active in the IIS/ASP.NET community face-to-face. A lot of this is because I'm combining roles as IIS and ASP.NET community lead and I'm also getting to know so many people through the ASP.NET site and ASPInsiders. I'm already looking forward to next year.
Stop by the ASP.NET Birds-of-a-Feather session in Room 15A. I'll be there, along with Rob Howard and maybe Scott Guthrie, if he's in this evening.
Chris Adams just started a new blog! IIS fans may know Chris from the Webcast series he does for us on TechNet. These are a great way to learn about IIS - Chris works directly with the product team on customer and supportability issues and knows what questions to ask. He usually brings someone from the product team along for the presentation or else works with the product team to make sure the content has the depth and accuracy he and his audience expect.
Tim Heron points out that Atari BASIC wasn't Microsoft. My recollection was that MS BASIC was on the majority of machines but this link points out why Atari didn't use Microsoft in the end. It was interesting to read that MS BASIC was based on DEC BASIC while Atari BASIC was built to emulate the Data General version. I grew up on the DEC-style 'cause that's what we used on the machines in school.
I'm happy to cede the 92 sites back to Atari - may it live on!
Apparently, this has been around for a few years. I just noticed it when SecuritySpace reported that 92 websites migrated from a Microsoft OS to the Atari web server. Of course, someone should tell them that Microsoft BASIC still counts as a Microsoft OS.