We released Virtual PC 2007 today, and as promised, it's completely free. The biggest improvement (at least for me) is that this version of Virtual PC works with Windows Vista as both a host and a guest operating system. Ben Armstrong provides more feature detail in his blog post. The 30MB download is available in both 32- and 64-bit versions.
If you haven't tried a virtualization product before, you might wonder why you'd use one at all. Here are just a few things that I do with Virtual PC, and I seem to find new uses all the time:
- Use it to run incompatible applications. For example, I have a digital photography tool that doesn't work on Windows Vista yet. So, I've setup a Virtual PC image with Windows XP SP2, and I fire it up whenever I need to use the application. If you can't imagine what I'm talking about, I literally see a window on my Vista desktop that behaves like another machine. The screenshot to the right shows Windows Vista, its start menu, and Word 2007. In addition, you can see a Virtual PC 2007 window running Windows XP SP2 and 3D Pinball.
- Use it to test applications. Since the Virtual PC machine is indeed virtual, so are its "hard drives." In actuality, the hard drives are stored as files (with a .vhd extension) that you can browse to via your host operating system. This means that any changes you make to the virtual machine are done in isolation. So, if you're testing your software against multiple operating systems, why not have a different virtual machine setup for each possible configuration? It's much more convenient than maintaining a bench full of physical machines. And, if you've setup an undo disk, hard drive changes are written to a separate file so that when you shut down the virtual machine, all of those changes can be discarded. This is an extremely easy way to revert back to a known configuration. Undo disks are also useful for trying out internet downloads in a safe environment.
- Use it to demo "servers." If you frequently demo software that requires a backend server, it's possible to setup a virtual machine to host your server process. Then, you can run the client application in the host operating system and connect to the server running as a Virtual PC. It's certainly better than lugging around a bunch of extra hardware!
I'm sure there are other uses, and I'd be curious to hear what you do with Virtual PC. Feel free to leave feedback or drop me a note via e-mail.