David Gristwood's Blog

Azure, Azure, Azure

Developing on Microsoft Windows Server 2003

I have been developing on Windows Server 2003, part of the Windows Server System, since its launch a year ago, and I think it is a superb operating system, and if you haven’t taken the opportunity to look at it, you really should. I even quite like the tag line “do more with less”.


Windows Server 2003 is such a large and powerful product, it can be difficult to know where to begin describing it. From a general IT perspective, this is quite a good “Top 10 Benefits of Windows Server 2003”, which gives a good feel for the breadth and scope of the product.


From a developers view point, which is where my interests lie, there is a lot of interesting stuff in Windows Server 2003. Some of it comes simply from the fact that it is a highly scalable, optimized, secure and manageable OS, and therefore, most applications will benefit from being run on it. Check out the impressive array of Windows Server 2003 Technical Overviews to see where we have been putting our development efforts. For many developers, just knowing that their applications could scale batter or run faster is enough to chose Windows Server 2003  (for example, check out the Windows Server 2003 Kernel Scaling Improvements white paper to see what has been done under the covers the significant kernel scalability improvements, or the Performance Tuning Guidelines for Windows Server 2003 to help make your systems run better) 


For developers wanting to develop applications that make the best of Windows Server 2003, there are a whole host of useful resources, including a “Top 10 Benefits of Windows Server 2003 for Developers”. One of my personal reasons for really loving Windows Server 2003 is IIS 6.0. It has been re-architected from the ground up, with a very clean  design, and with support for features such as applications pools, which can be recycled, run in different identities, etc. Its well worth spending a little time understanding the IIS 6.0 architecture, and perhaps watching the MSDN show “IIS 6.0 & ASP.NET” (which can be downloaded and viewed off-line).


My other favourite new addition to Windows Server 2003 is Windows SharePoint Services. As it is built on ASP.NET, it plays well with Visual Studio and .NET, and thus opens up a whole new world of portal development. There are plenty of technical articles on it at MSDN, but my favourite site at the moment is the FrontPage 2003 Customization Kit for SharePoint Products and Technologies. There is a ton of stuff there, from tutorials to sample WSS sites.   


I should also mention that Windows Server 2003 is also at the core of Dynamic Systems Initiative (DSI), which is an initiative focused on “increasing both the utilization and responsiveness of IT systems while dramatically reducing operational costs”. Steve Ballmer recently wrote about, so it is yet another good reason to look Windows Server 2003.


As an aside, my day to day machine is a Windows XP machine, so how do I develop on Windows Server 2003? I use a virtual PC (VPC) – Microsoft Virtual PC 2004 – to host Windows Server 2003. Very cool, and a great way for developers to work. Once I have the VPC up and running, you really can’t tell that it is being hosted, though you do need a reasonable fast machine, ideally with 1Gb Ram, so you can dedicate say 600Mb to the VPC. I also use VPCs to test new operating system releases, such as “Longhorn”, and beta releases of new products, safe in the knowledge they will not impact my Windows XP machine, which I need for email and the like. VPCs are also a very good mechanism for archiving off development & test environments,  along with product source code, making it very easy to re-create the exact testing and production facilities years after a product has been released. For testing, it is also a great way to keep a range of different operating system service pack releases for regression testing. The VPC also has an undo facility, so if things go wrong, just undo the whole session – a real life saver! There is also a server version of VPC (in beta at present) – Microsoft Virtual Server 2005 – that’s is designed for Windows Server 2003 to “increase operational efficiency in software test and development, application migration, and server consolidation scenarios”.