After 5 years in development, IIS 7.0 is finished!
Personally, it is hard to believe that it is over. I remember joining the IIS 7.0 team over 4 years ago, when the project was in its infancy, to drive the design of the web server engine. I remember getting in the room with all of the senior IIS 7.0 developers, with a spec of how the web server pipeline was going to work … feeling like I was about to be eaten alive 🙂 Somehow, it worked out, and soon I was a regular at the dev team’s Thursday Thai Kitchen lunches.
The IIS 7.0 Team circa 2005
Prior to joining the IIS 7.0 team, I drove the design of the core platform features (runtime engine, session state, caching, etc) and security for ASP.NET 2.0. This definitely influenced many aspects of the IIS 7.0 core engine design, starting with the pipeline model to the design of the native API layer for the Web server, which you may notice look very conceptually similar to the ASP.NET counter-parts (even though they are very different under the covers). So, as ASP.NET 2.0 was nearing RTM, we were in the early stages of developing IIS 7.0, which created a unique opportunity to provision both platforms with the foundation for the ASP.NET integration that you see present in IIS 7.0 today.
Working on the IIS 7.0 project was definitely the most exciting time of my career. It was also the craziest time, with many evenings staying up till 3 am at work, and working through the weekends. To those co-workers who are wondering, I did end up sleeping in that arm chair in my office once or twice 🙂
But, in the end, it was all worth it – working with great people, and a whole host of great technologies to deliver a product used by thousands of people and businesses all over the world.
Looking back, I am happy to see that I’ve worked on almost every part of the product … The big ones of course would be driving the design of the Web server core and the extensibility layer, ASP.NET Integrated pipeline, FastCGI, and Output Cache. But then there were all the small features and DCRs all over the product, in the config system, diagnostics, and everywhere else, that were no less fun (but definitely gave me the rogue reputation on the PM team). I also got to develop AppCmd, the IIS 7.0 command line tool, the Bit Rate Throttler (part of the media pack), and contribute code to a number of other areas I won’t mention 🙂
I think that was the best part of it all – going beyond the traditional Microsoft role boundaries and doing anything and everything to make IIS 7.0 the best web server platform in the world – be it designing features, developing them, doing performance analysis, or completing with the test team for the number of bugs filed on the product. Of course, there was also all the standard PM stuff – some painful, like triage meetings with um, less-than-informed participants, and others fun, like presenting at Teched and PDC, leading DevLabs, doing demos, and just getting things done.
Now that the product is finished, I am mostly excited about seeing what people will do with it. IIS 7.0 has got a tremendous amount of potential to be all you need it to be – as long as you think about it as a platform, rather than a black-box product that it has been with previous versions. However, with the flexibility comes complexity, which can be a little overwhelming.
In the meantime, I’ll be doing my best to help you understand how to the product works, and how take best advantage of it – with this blog, MSDN magazine articles, and the upcoming IIS 7.0 Resource Kit book. As always, feel free to get in touch with me if you are planning your IIS 7.0 architecture, or just wondering how the heck to implement that new authorization scheme for your application.
So, perhaps after all, IIS 7.0 isn’t over – it’s just beginning.