Testing new products to determine whether they’re suitable for your environment and production scenarios isn't easy. Typically, you don't want to install untested software--even if it's live software and not time-bombed demo ware--on your production systems. When you make any changes to your computing platform, new software can sometimes disrupt the existing production environment. Plus, once you install a piece of new software, you might not be able to easily restore the system to its previous state. How many times have you run installations only to find that either the installation or the uninstallation failed, leaving your system a mess, or that the uninstallation didn’t actually remove all of the components that the installation put on your system? Although I've always found the installation and uninstallation procedures for SQL Server 2005 Express to be clean and robust, you never really know what a piece of software will do in your environment until you try it. Virtualization software provides one of the best solutions for testing software.
Virtualization software lets you create a virtual machine (VM) test environment. Better yet, the costs for taking this approach can be nil if you use one of the production-quality virtualization products available from Microsoft and VMware. Microsoft offers two products, Virtual PC 2004 and Virtual Server 2005 Release 2 (R2), which you can download for free. VMware offers its Virtual Server product (formerly GSX Server) for free. If you want to do some lightweight testing of various desktop products, Virtual PC 2004 is the best choice because it’s easy to use and has a straightforward Windows GUI interface. Virtual Server 2005 R2 and VMware Virtual Server are heavy-duty products that include remote (i.e., Web-based) management interfaces capable of supporting server-consolidation scenarios by effectively running multiple VMs simultaneously. In addition, VMware offers VMware Workstation, which is probably the premier desktop testing platform, but that product isn’t free.
After you've downloaded and installed one of the virtualization products, the next step is to create a VM for your test environment. When you create a VM, you’re essentially carving out a space on your system to support the virtualization environment. All of the virtualization products I've mentioned have the same basic requirements.
First, you create a VM by allocating some of your system's physical memory. You can’t allocate more memory than your system has, nor can you allocate all of your system’s memory because your host OS still needs RAM to run. If your system has 1GB of memory, you might allocate 512MB for a VM. Next, you need to allocate space on your disk for the VM's hard disk--known as the Virtual Hard Disk (VHD). The space allocation can be dynamic (meaning it starts small and grows as needed) or fixed (meaning you allocate an amount of space up front). For testing purposes, I recommend using dynamic space allocation. You’ll also want to enable the Undo feature so that you can discard any changes you make to the VM.
Finally, you’ll need to define the virtual network you’re using. To completely avoid the possibility of creating network problems, you can choose "no networking." If you want the VM to access your network, choose the external (aka bridged) option. Now, your VM setup is complete.
You use the console to start the VM. However, something's still missing--the OS. When you start the VM, the system will prompt you to install an OS. You can install an OS either from an ISO image or from your system's CD or DVD drive. One caveat--in most cases, you’ll need a license for the OS you're installing on the VM. After you’ve installed the OS, you can start the VM and run it much like a "real" system except that it's using the resources from your host desktop. If you're using Virtual PC 2004, you'll typically see the application running as a window on your desktop, but you'll also have the option of making the application full screen. At this point, you can install and test software, such as SQL Server 2005 Express, with no worries about affecting your production desktop.