I’ve recently been spending a lot of time pondering and pontificating on web architecture, and it occurs to me that Microsoft’s Internet Information Server (IIS), now in it’s sixth version, is still pathetically lacking in one key feature that I think it critical for properly architecting websites. And this key feature has been part of/available for Apache for a long time in the form of mod_rewrite.
What is this key feature? The ability to create dynamically defined virtual URLs that contain only directories – i.e. URLs that don’t require a file name with a specific extension. Sure, you can easily support dynamically defined virtual URLs using a custom HTTP Handler with IIS6 and ASP.NET; they will look something like this:
But it won’t support dynamically defined virtual URLs that look like this without some C++ derived ISAPI magic:
However, there is a reasonably inexpensive third party ISAPI filter known as ISAPI_Rewrite that provides this capability for IIS.
In addition, there’s another feature that is needed, and that’s the ability to cleanse HTML output before it’s sent to the browser. Why would you need that? For example, if you are using a content management system like DotNetNuke that has a mind of its own with respect to the URL formats it generates and you want use clean and concise URLs you need to be able to filter and transform the HTML after your CMS generates it but before IIS sends it on to the web surfer’s brower. There is evidently an inexpensive product named Speerio SkinWidgets DNN with a "widget" called PageSwiffer with which you can supposedly filter and transform outbound HTML, though I’ve not tested it.
I‘m sure both of these products are great, but dang it all Microsoft, this functionality really should have been baked into IIS a long time ago. How it is something that should have been this easy to add has been for so long overlooked?
Anywho, here’s hoping these features show up in IIS7.
3 Replies to “All I want for IIS7 is my mod_rewrite!”
I had the privelge of meeting with Bill Staples the product manager of IIS 7 and he did mention that he would entertain this idea as one of the ship-to modules that come out with IIS 7. I mentioned specifically mod rewrite capability and he did mention it.
The promising thing is that with IIS 7, I believe this type of functionality will be easy to incorporate since you will be able to "compile" modules (your .NET application) into IIS.
As of May 2008, this feature showed up in IIS7 !
Hey noreply: Thanks for the comments but sorry for no reply back then. Because of using dasBlog I never saw your comment until today when Cheeso commented.
Hey Cheeso: Thanks for the comments and the links. But as of about May 2007, a year earlier, I gave up on the Microsoft development and web hosting platform and have not looked back. Yes in a vacuum it looks great but you can see some of my rants that led up to this decision at http://mikeschinkel.com/blog/tags/microsoft/
I’m now working with Apache, PHP, and MySQL and could not be happier. So many of the things about the MS platform that I had to beg and weedle and then workaround because MS didn’t feel it important enough for over 10+ years to address (or in many cases still haven’t) are just there on the AMP platform because of all those who need something someone almost always raises their hands (metaphorically) and just does it.
As an aside, while I’m not a pro open-source zealot I am finding that once open-source technologies reaches a certain level of market and technical maturity it is simply impossible for commercial solutions to effectively compare or compete.