TheJoyOfCode.com guys have posted a great blog entry which demonstrates the power of IIS7's integrated pipeline, and provides a useful new feature for Web developers on IIS7. Last February, they wrote an ASP.NET module that could dynamically validate markup generated by your ASPX pages for valid XHTML. It is a a really useful cool, and makes it really simple to test your pages for browser compatibility and compliance. The only downside: since it is an ASP.NET module, on all versions of IIS prior to IIS7, it would only work for ASP.NET content.IIS7 changes that, by allowing modules and handlers to be written using managed code for all types of content. Using the same IHttpModule and IHttpHandler APIs, developers can now write managed code extensions to the Web server which can intercept and serve all types of requests. And best of all, we built the extensibility model to be as compatible as possible with existing ASP.NET extensions. With a few simple configuration changes, your ASP.NET modules and handlers can now work with all types of content.The JoyOfCode.com guys show off how in their blog post XHTML Validator for All. Using the new IIS7 Admin tool, they wire up their module for a static HTML application. Without a single code change, their XHTML Validator works perfectly with static HTML pages, classic ASP, or even PHP! Check it out!
This is a question that I'm surprised doesn't come up more often. I guess, like many of you, I take pride in figuring things out on my own. I hate asking for help and admitting I don't know the answer. And we've all had the unfortunate experience of calling a support line for help and getting someone who we just *know* is even more clueless than we are. :)
When I was a kid, this was one of my favorite TV commercials. It always cracked me up for some reason. While trying to decide on an appropriate title for this blog, I remembered the commercial and was happy to find it preserved for future generations on WikiPedia and YouTube.
I'm attending ZendCon today and giving a demo in the keynote presentation by Andi Gutmans, one of the creators of PHP, and co-founder of Zend. I am really excited to be a part of the announcement of technical collaboration between Microsoft and Zend to enhance the performance and reliability of PHP on Windows and IIS. You can read more details about the agreement in today's Press Release. There are so many good things about this project, I wanted to share my personal view on why I think this is such an exciting announcement for the broader Web community.
I had an interesting experience this weekend. I fell in love with IIS7 on Vista. You know the feeling, I'm sure you've had it before. That feeling when you finally see something or someone for their full potential, and you start dreaming of all the things you want to do together. This weekend I had that moment with Vista for the first time.
Another one of my favorite features is the IIS7 Detailed Errors feature. Thomas wrote a great article titled Understanding Custom and Detailed Errors which provides a good overview of this simple, yet powerful feature. (though it needs to be updated for RC1+)
One of my favorite IIS7 features is something we call "FREB", which originally stood for "Failed Request Event Buffering". We've given it a more friedly name now: 'failed request tracing', but everyone around here still calls it freb. It is a really awesome feature that essentially allows you to configure IIS to "watch for" certain error coditions and provide you detailed trace information about the request. This makes it much easier to diagnose failures than in past versions of IIS, especially those hard to repro issues that seem to only happen at 3am when you should be sleeping. IIS will not only log all of the IIS trace events we've sprinkled through our code, but ASP.NET trace events, and even your own page trace events! It is one powerful feature.
I've noticed quite a few people running into temporary directory permission issues. The PHP blog post I made last month is one example of this issue, there are also several forum posts related to ASP & Access database failures, where the reported failure is:
*Updated Recommendations - Please read the following instructions for running PHP fast and reliably*
I'm often asked the question: if IIS7 is shipping in Vista, why isn't it also available on a Server OS? After all, what good is it to have IIS7 only on Vista right now, when I can't actually deploy anything on Vista?
Steve Schofield has been blogging up a storm about IIS7, ever since he deployed www.iislogs.com on IIS7 beta 2. If you're interested in finding out more about his experience running a real web site on IIS7, or want to find some useful scripts to provision and configure IIS7, check out his blog, including:
I've been using the free version of Visual Studio for web development - Visual Web Developer Express Edition - for a while now and I really like it. In my opinion it is leagues ahead of previous Visual Studio releases targeted at Web development. I still can't get that nasty taste of Visual Interdev v1 out of my mouth. ;)
You may be wondering what I've been doing since the last set of blog posts, which went out shortly after Vista Beta 2 shipped. Although I'm sure it hasn't kept you up at night, let me reassure you, we've been very, very busy. :) With RC1 available for testing, I've re-committed to start blogging again. The IIS team is now pretty much done with IIS7 in Vista. We currently have only a handful of real bugs left to fix before Vista is complete, and we've already begun shifting our focus to Longhorn Server (another blog post coming on this).
One of my all time favorite IIS7 demos is using Forms authentication for all types of content.
If you've ever seen me talk about IIS7, you may have noticed non-standard wallpapers on my desktop. I like to change my desktop image with every major conference or presentation I give. It keeps life interesting. Over the past year or so I've collected my wallpapers, and decided now would be a good time to share them out here: http://wallpaper.iis7.org.
And what better way to do that than a real live production IIS7 web site running my custom directory listing module? (If you've ever seen me demo, you've probably seen it in action too!) I added output caching support to the module, to help performance in sending all those thumbnail and image previews. .NET is so cool.
Note: if you hit the site and it appears down, it is probably because we are 1) debugging a failure or 2) upgrading to a new daily build. This is what we call 'dogfooding' here at Microsoft. We run our own software with the goal of trying to make it break, which is sometimes counterproductive to keeping sites up. :)
The Original IIS7.JPG file is the first IIS7 logo I think I made (successfully) and turned into one of the more popular t-shirts we've ever had on the team. Funny how sometimes simple is better.
For a while, I must have had world domination on my mind, or maybe I was just impressed with Google Earth, because I put out a couple earthly themed desktops.
Eric Deily, a PM on my team, LOVES lens flair. He loves it so much I had to make him some special desktop wallpaper, during my lens flair period.
As Beta 2 drew nearer and nearer, I was inspired to create several Beta 2 themed desktops.
At one of the team meetings a few months ago, I wanted to focus on pushing the quality of IIS7 up. Inspired by the Dodge Ram commercials, I came up with a new motto for IIS7 at the meeting.
And last, but not least, I entered the brushed metal phase. You can find this wallpaper on the VirtualLabs.IIS.net site.
I registered the iis7.org domain a while back, and have it hosted at WinISP - a small team here at Microsoft that runs a hosting datacenter for Microsoft employees. They are an awesome group and live on the bleeding edge, testing beta and pre-beta versions of every kind of software Microsoft makes.
Speaking of bleeding edge, I got a call from Apple today. No, not the company, the store. And if yesterday was Christmas Eve, today was Christmas! :) They had just received the 17" MacBook Pro I was interested in. What better way to celebrate the Vista Beta 2 and IIS7 release than to get a cool piece of hardware to run it on? So I installed Vista Beta 2 on it tonight and it run great, using these instructions. It runs faster than my IBM Thinkpad T43p, by a mile. Does this mean I'm the first person in the world to run IIS7 on a Mac? :)
It's officially past midnight, and we're five minutes into May 23rd, 2006 - the day on which IIS7 will officially ship as part of Windows Vista Beta 2 our first public Beta release. I've just finished putting the final touches on the http://www.iis.net site which will launch in the morning, and now it's time for the obligatory first post to my new blog. I figure a few introductions are in order:
My name is Bill Staples. I've been a Web geek for more than ten years now, although I've always been more interested in the guts than the g l o r y. Even though I've always thought high-performing, multi-user, application-hosting infrastructure is a fascinating subject, for one reason or another it seems the Web server hasn't been in vogue since before Microsoft DNA. :)
I got my start in the Web business working at a start-up internet service provider in early 1996, after graduating from the University of Utah. Back in those days, we ran a variety of Web servers on Solaris (Ultra 2!) including Roxen, Zeus, and Apache, along with a slew of mail, news, authentication servers, and modem banks. I enjoyed the Web stuff the most, so I ended up spending a lot of my time selling, designing, building, managing, and troubleshooting Web sites for our customers. Back in those days I thought ColdFusion was the bomb, because it made seemingly complex things simple. At some point I got my hands on the NT4 option pack (can you believe it is still available for download!) beta and started writing spaghetti code like the best of them thanks to classic ASP. Now that was real fun. Sometime in 1998 I convinced the company I worked for that the world needed a simple way to 1) create forms 2) publish those forms to a Web server 3) hook up the data from those forms into any ODBC compliant backend database and 4) configure simple workflow. Because I was a developer first, and a businessman second, I insisted that we build it rather than borrow it, which is how I got my hands dirty building a Web server, dynamic scripting language, and workflow engine from scratch. GroupLink's Web Forms was born. Every time I see other products solving the same age-old problem, I have to smile. (Of course, they all solve it better than we did - I think Web Forms died a horrible death after I left the company to come to Microsoft).
I joined Microsoft in late summer of 1999. I had really enjoyed working for small companies, but when Microsoft called I decided it was time to see what it was like to work in one of the biggest software companies in the world. I was hired into MSN, but through the twists of fate, I ended up as a Program Manager on the IIS re-architecture team (which later combined with the IIS5 team to ship the IIS 5.1 and IIS 6 products). Seven years later, and I still get a kick each and every day out of working on IIS. Mostly it is because the team is so freaking awesome, and the technology we're building is so much fun and impacts so many people around the world. Who wouldn't love it?
About My Product
Unless you've been hiding under a rock for the past ten years, or you simply don't care much about the Web (then why are you reading this blog???) you probably already know enough about the history of IIS. I won't bore you with that. Since this is the debut of IIS7 in public beta form, I will share a little bit about this particular version of the product.
We started IIS7 planning around the time IIS6 shipped, back in early 2003. The basic elements that you see online now, including a modular core web server, a distributed configuration system, a completely new Admin tool were long-time dreams for many of us on the team, and we spent much of the year in various stages of specing, prototyping, debating and planning. In December of 2003, we merged with the ASP.NET and Visual Web Developer teams - bringing together all of the primary technologies of the Web Platform under a single division. We kicked off our first official development milestone on April 5th, 2004 - 111 weeks ago today.
We coded like mad for a solid year, taking a few weeks here and there to stabilize. By April of 2005, we had finished nearly all of the features you find on iis.net today - in their basic form - and we were ready to check-in to Longhorn. We spent 18 weeks moving our sources into Longhorn, and driving to meet the Longhorn check-in criteria, and made our first official check-in to Longhorn the last week of July, 2005.
In the past year, the team has:
- Completed more than 30 integrations into Longhorn
- Opened and closed more than 4500 bugs against the product
- Made 6 Full Test passes
- Executed over 100,000 test cases
- Held more than eight IIS7 customer labs in Redmond
- Designed and developed http://iis.net
- ...and spent countless late nights and many weekends getting ready for this day.
About the Site (http://iis.net)
One of the first ideas I remember ScottGu had, after the IIS/ASP.NET merger, was to start up a community site for IIS similar to www.ASP.net I remember at some point we were brainstorming names for the site: MicrosoftWebServer.com, IISWebServer.com, IISCommunityPortal.com, and on and on. We never seemed to find the right name, or the right time, so the idea got shelved for later. Late last year, I decided it was time to build the site, and what better domain name than iis.net. So we acquired the name and started building the site. Brian Goldfarb recommended we look at Kevin as a designer for the site. Kevin has been involved in several Microsoft site designs, including the ASP.NET starter kits. I think he did an amazing job with the IIS.net site, with great attention to detail, and a lot of patience. He put up with my knit-picky feedback for weeks on end and the result is a great looking site.
The guys at Telligent deserve a lot of the credit for getting it online today. Scott and Alex and Kyle (and probably others who I don't know names for) worked many hours, including some late nights and weekends getting everything just right. They implemented the site in about eight weeks!
Of course, the site wouldn't be what it is without great content. I hope you take the time to browse through the site and check it out. I just finished writing up the FAQ, and I'm amazed at how many frequently asked questions we were able to answer with really great content, samples, videos, etc. This has got to set a new world record - for IIS at least - in terms of having so much content available for a first Beta! All the credit goes back to the product team - the PM team in particular - for writing such great content and patiently working through the many deadline and format changes, all while doing their day jobs. The IIS PM team rocks.
Well, that's enough of the past, and I'm confident you've now heard more about me than you ever wanted to. Future posts will focus on IIS, the technology we build, and the solutions we enable. Hope to see you back soon.