Over a year ago, I gave you guys a very quick
sneak peek
at Windows Server 2003 (at the time called Windows .NET Server).
Now that the product has shipped (and I've finally found the time to install a
copy of the release version), I thought I'd once again let you take a look.
While I will mention a few other cool things, for the most part I'll
be talking about what's new in IIS 6. That's because in addition to
being the most relevant to ASP and .NET, IIS is also one of the areas where
the most has changed.
Hardware and Zip File Support
First I'd like to mention that while other versions of Windows have always
prided themselves on support for as many devices as possible, Windows Server 2003
seems to do the opposite. Actually I can't complain... it found drivers for
everything but my network card. While it's not really a server-class card,
previous versions of Windows (including Win2000 Server) all came with drivers for it.
Unfortunately not having a network connection makes it very difficult to download
new drivers! I had thought that the days of putting drivers on floppies were long gone...
that shows what I know. Not being able to find Windows Server 2003 drivers for the
card, I prayed that
the Windows 2000 drivers would work and more importantly that they'd fit on a floppy.
I got lucky on both counts.
As I was copying the driver zip file to the server's hard drive, I remembered that
I hadn't yet installed a zip utility. As I was about to go back to my workstation to
find one and put it on a floppy as well, the file finished copying and I noticed that
Windows hadn't given it the default icon and had actually recognized it as being of type
"Compressed (zipped) Folder."
Finally Windows is able to unzip files on it's own! I'll have to research if it supports
making zip files too, but for now the fact that it can extract them is good enough for me.
Shadow Copies
Maybe it's me, but I almost never delete a file I don't mean to and, as a result,
I very rarely use the Recycle Bin. (No... that would be too easy.) My prefered method of
losing a file is to overwrite it. I'll make a change, save it, and immediately decide
I didn't really want to do that. In this scenario the Recycle Bin does you absolutely no good.
As a result, I've gotten to the point where I can
Ctrl+Z (aka. Undo) and Ctrl+Y (aka. Redo) with the best of
them. The only real problem comes when I've already closed the application.
Notepad, in particular, gives me the most grief in this regard because I never use
File->Save. I just hit the X and let it prompt me. So... when I inadvertentenly
hit the wrong button and overwrite something, it's already too late to undo it.
This is where shadow copies are going to be a real life saver (and not the little candy kind).
Basically, once you enable shadow copies, all you need to do in order to revert to a
previous version of a file is right click on it, select "Properties", go to the
"Previous Versions" tab, and find the previous copy you want to copy or restore.
There are some limitations and some administration involved, but this alone is reason enough
to get all your clients saving their documents on the server (if they're not already).
Here's a screen cap of the end-user interface:
The Command Line is Back Baby
Think about this for a second. You want to make a copy of the file readme.txt
and name it readme.bak in the current directory. In DOS this is one easy step:
copy readme.txt readme.bak
In Windows:
Select the original file
Copy the file (Ctrl+C)
Paste the file (Ctrl+V)
Select the newly created file
Choose the rename command (F2)
Type the new filename
I realize these steps are all pretty simple, but watch someone do it some time. The thing
that takes so long is that most people use the mouse for steps 1, 4, and usually 5,
while steps 2, 3, and 6 are done from the keyboard. While you can do it all from the
keyboard if you want, it's still 6 steps! Wizards and cool little dialog boxes have
their place, but so does the command line and it's nice to see that the folks in Redmond
still realize that and have put much more power in the command line utilities.
For many developers and sysadmins this isn't really that big of a deal.
If you only need to make a change once, a GUI or wizard is fine and is,
in fact, probably preferable.
This is for anyone who repeatedly does the same task or
needs to be able to schedule
something that used to only be done through a wizard or GUI.
Most of us have at least one or two of this type of
task and for those tasks this will be an invaluable time saver.
Server Performance
I'm not sure I need to say anything here... it's faster... enough said.
Internet Information Services 6.0
Here it is.. the biggie. I'm gonna try and keep each topic to a couple of sentences
and use lots of pictures so I don't lose you before I get through them all.
Increased Reliability - From what I've been told they've basically re-written almost all of the code for IIS, including a new HTTP driver in order to make it faster and more reliable.
Increased Scalability - I haven't tried anything to test this, but I'm told that IIS now uses resources much more effectively so you can now host more sites per server and run more worker processes to get things done using less resources.
Increased Security - To start with, IIS is not installed by default (and neither is much of anything else). Even once you install IIS, it's configured in a locked down state and won't do much except serve static HTML (no ASP or ASP.NET by default!). This helps eliminate some of those denial of service attacks that target things that you didn't even know were running. Another nice thing is that the web server no longer needs to run as an administrator. IIS is now designed to run under an account with relatively low-level privledges and as such should be able to do far less damage if it ever is compromised.
Web Service Extensions - I just said everything is locked down by default. This is how you unlock things that you need and configure the server to be able to handle ASP and/or ASP.NET scripts.
Application Pools - These allow you to set applications to run in their own little area so that they don't affect each other or the server. IIS now has settings so you can check the health/status of each pool and disable them if they fail too often.
Direct Metabase Edit - The metabase is now an XML text file that you can edit directly. This makes changing things easier than trying to play around inside a "black box." In adition you can make changes on the fly and IIS will pick them up and apply them without a restart!
Command Line Management - Hand in hand with the command line enhancements for Windows, come command line enhancements for IIS. You can easily create, delete, and manage site without ever having to fire off MMC.
ASP.NET - It's now in the box. They claim it's somehow integrated better, but the only difference I can see is that you don't need to install it. Even if that's the only difference (which I doubt) it's an improvement none the less.
More Information
In this article, I've really just scratched the surface by hitting the highlights
and the things I thought were cool.
If you'd like to learn more about Windows Server 2003, check out the
Windows Server 2003 Home Page.
If you'd like to learn more about what's new in IIS 6, take a look at Microsoft's
What's New in Internet Information Services 6.0.
If you'd like to play with either one on your own, you can order a free copy of the
Windows Server 2003 Evaluation Kit.