I want to upgrade from IIS 4.0 to IIS 5.0. Microsoft has made it necessary to upgrade OSs when you upgrade IIS, but I don't want to migrate my servers to Windows 2000 just to run IIS 5.0. I also want to plan for future migrations. There seem to be many upcoming changes to IIS, and I've heard differing reports about IIS in relationship to the new OSs. Can you set the record straight regarding what versions of IIS Microsoft will include with the new OSs and whether major upgrade concerns will appear?

Let me answer your last question first. I don't know what IIS versions Microsoft will ultimately associate with future OSs. However, as Microsoft's work on OSs in development proceeds toward public release, changes become harder to make. Therefore, I can address current plans with relative certainty. The next IIS version is IIS 5.1, which will be included in Windows XP (formerly code-named Whistler). But before you get too excited, remember that XP is a client OS and not designed to be a server, so you won't be running IIS 5.1 as your production Web server. The last time I checked, Microsoft had no plans to implement IIS 5.1's improvements in Win2K. Evidently, no server OS will run IIS 5.1. Windows .NET Server (formerly code-named Whistler) will include IIS 6.0, an IIS release that incorporates major changes in how the OS implements IIS. Such architectural changes ensure that IIS 6.0 will never run on Win2K or Windows NT. Just as IIS 5.0 won't run on NT, IIS 6.0 won't run on Win2K. Nevertheless, you should be able to upgrade to IIS 6.0 with few, if any, changes in Web content or applications.

If you're just beginning a Web application software project, however, you face a key decision in your upgrade strategy. You can choose to write code specifically to run in IIS 6.0's Dedicated Application mode rather than IIS 5.0's Compatibility mode. IIS 6.0's Dedicated Application mode activates new features and functions for delivering and administering Web-based applications.

As for having to change the OS to upgrade the Web server, remember that originally, Web servers were viewed as a means to deliver only static pages. Static page delivery didn't pose much of a challenge for a server with NT's capabilities. However, few imagined what current Web servers would be asked to do. Web servers were add-on applications that have extended the OS's protocol capabilities. Because we now expect much more of IIS, the Web server must be more tightly integrated into the OS. For example, IIS had to automatically log users on to the server to provide anonymous access, which is clearly an OS function. As a response to such requirements, with Win2K, IIS 5.0 actually became part of the OS. For example, IIS 5.0 is tightly integrated with COM+, which you can't use on NT 4.0. Therefore, IIS 5.0 can't run on NT.

Similarly, one big change in IIS 6.0 is that it runs in Protected mode on the server, further integrating the Web server with the OS. Consequently, IIS 6.0 won't run on Win2K. Although the changes might seem like a scheme to sell new OSs, they actually reflect Microsoft's strategy of integrating the Web server into the OS rather than having it operate as an add-on. We've seen and will continue to see quantum leaps in IIS scalability and reliability coupled with IIS versions tied to specific Microsoft OSs.