I'm a big fan of Virtual Machines. I don't physically have the room in my office at home, or in London, to set up a small cluster of machines to test software deployment, experiment with new back end server suites or just study stuff that I don't use day to day, and virtual machines are ideal for that kind of stuff. With a virtual machine you basically have a piece of software that runs a full installation of another operating system from a file, but right there within Windows. You can switch back and forth between your own machine and the virtual one, roll back any changes you make to the virtual machine that may screw it up, and generally play and test stuff out to your hearts content.
Take this week for example. I have to develop a couple of Sharepoint Webparts for internal use, and that's not something I've ever done before. I have two choices to do this; I can either build a Windows Server 2003 machine from scratch, install Exchange on it, SQL Server, and Sharepoint, and go from there, constantly having to rely on two physical lumps of hardware to do my work, or I can just build a virtual machine right within my desktop to do the same thing. After I deploy the web parts to the server I always want to put the server right back into it's "clean" state without any residual crap hanging around that might taint my testing results on subsequent installs, and on a real machine that means ghosting and rebuilding the entire machine every time I deploy. With a virtual machine I can just do the deployments and roll it back.
I've used Virtual PC before but was never quite happy with how it handled networking (I want my desktop PC to be able to talk to the virtual machine on their own secure network with no risk of the virtual machine breaking out onto the real network and running wild). I've run VM Ware Workstation 3 and 4 as well, both of which have very cool networking abilities, and both of which royally suck when it comes to performance (especially if you have more than one virtual machine running at the same time). Remember, the virtual machine needs to use the same physical resources as your desktop machine so you are in effect halving it's performance, or worse.
I got handed Virtual Server 2005 Release Candidate yesterday and installed it last night and at long last I've found a virtual machine environment that's fast, rock solid, has great networking support and does everything I need with minimal hassle. It even all runs inside a web browser (strange but true) using an embedded ActiveX control to handle showing the virtual machine user interface.
All in all well worth a look. If you are an MSDN subscriber you can just go and download it in the usual way. I think Microsoft are also making a time locked version available for free from their site, but I'm not sure.
For the eye candy junkies, here's a couple of screenies
That's the main status page from where you can view the machine logs, create new machines and networks and generally configure the whole shebang.
A cropped image showing the virtual machine running inside the ActiveX viewer control right in a web browser.
One more point worth noting though - it requires Admin rights, so if you're one of the bandwagon jumping crew out there experimenting with running under least privilege this tool is really going to piss you off ;)