Windows Virtual PC Development Setup?
After having had a dev PC HD corrupt, I'm considering the idea of making my development environment be fully Virtual PC based. The core items would be: - XP Pro 32 - IIS - VS2003 - VS2008 - SQL Server 2005 - Office 2003 Primary source would reside on a server in SVN with only a clocal copy on the VPC. This would be for Windows based web and desktop development. Assuming that the host machine has decent performance and provides for hardware virtualization, are there any known gotchas with such a setup, ie main pros and cons. Any performance issues or other issues that make this a good or bad idea? I'd like to go this route so I can create a full backup VPC that can be put on a new PC if one fails and is repalced or copied to a laptop as needed for offsite work, etc. With the new Virtual PC features of Win7 this seems like it may be even better goign forward too. Would like to get some feedback on this before we go down that road...
I wouldn't recommend Virtual PC because the performance is pretty disappointing compared to VMWare. I've used a virtual development machine inside VMWare Workstation and VMWare Fusion on Mac for quite a while, and it works very well. It feels as if you're running on a dedicated machine. My recommendations are: Use a 64-bit OS as your host OS (Vista x64, Windows 7 64-bit, Mac OS X Leopord) Have at least 6GB of RAM on your physical machine Allocate 3GB of RAM to your VM for 32-bit, or more for a 64-bit guest OS Pre-allocate the diskspace for your guest OS (no auto-grow) Another advantage is that you can take your VM from a Windows-based VMWare Workstation to a Mac-based VMWare Fusion (and the other way around) without any problems.
I have been running multiple virtual development environments in MS Virtual PC and Virtualbox for 2 years now. I am doing mostly asp.net applications, some of the solutions are relatively large and use large databases which I also run inside the VM. My observations based on this: It is a good idea for exactly the reasons you mention and it works fine. Go for it! 768 megs of ram for the VM is enough, but more is better. Have a Multi-core CPU. Install the virtual machine additions for the guest OS. (This is basically like installing the proper drivers for your "virtual" hardware, and seems to be more important for performance than having hardware virtualisation support). If possible, have the VM disk image on a separate physical disk from the host OS. Use Virtualbox. It's free, and being developed rapidly. It might already be the best. If you can satisfy the above, performance is no issue. Multiple Visual studio instances, IIS, SQL, Office, works just fine. Running multiple copies of the same guest OS when it is a member of a domain/AD is tricky. If you need to do this you should read up on the sysprep.exe tool. Basically you can't just make a copy of the virtual disk, you need to take some special precautions. Virtual PC is very convenient and it was what I used for starters, but I have to say that virtualbox seems to have overtaken it now. It was a bit rough in the beginning but the last few versions have really gotten there. Virtualbox is fully free, and it has better features than VPC2007 - the main one that made me switch was the support for high resolutions. Virtualbox runs fullscreen on my 1920x1080 no problem. It can also run virtual PC images, so switching was just a matter of installing virtualbox and adding my existing virtual PC disks to it. An added benefit is that I can run the virtual images just as easily on my new mac as on the old pc. The commercial options are not (anymore) worth what they cost, IMHO.
One thing you might have to consider is the lack of support for multiple monitors within the VM. I really like using multiple monitors, one for my source, the rest for all the rest. As far as I know, this is not possible in Virtual PC. Aside from that I can't think of anything that should hold you back, it's something I have been considering as well. Regards, Sebastiaan
VirtualBox from Sun is also a good choice. I am writing this from a Vista laptop with a virtualised Ubuntu dev environment. One thing that Virtual Box is great for is having a seamless mode in which the guest OS application windows are presented as just windows on the host system, with a single common background (you get 2 status bars - one for Windows and one for Linux). The Z-orders don't interpolate (ie all guest windows appear on the same Z plane in the host Window system, with their own Z-order within that plane) which can make it a bit odd, but you get used to it. It is particularly useful if you need to build across many environments. VirtualBox is getting better and I now have an OpenSolaris environment and a FreeBSD one as well. It is free as in beer which can be handy.
I actually run three development environments (and many test environments) under Ubuntu host in Windows guest virtual machines - it's very good for keeping things separated and for being able to restore test environments to a known point. It's also handy since the backup is a simple directory copy on the host and you don't have to worry about recovering settings or re-installing applications. etc. I prefer VMWare over Virtual PC for both performance and usability (keep in mind that's my opinion). You don't need the VMWare Workstation product to create a VM - check out EasyVMX here for a way to create easy VMs. The one thing you'll miss though is VMWare tools which only comes with the Workstation product, not the player. But VMWare has this for download here - I'm unsure of the legality of this even though it's an official download from VMWare, you may only be able to use it if you have the paid product. I actually have a license for Workstation, it's just an earlier version and I prefer the latest Player.
software/solution for direct booting machine will 'wake on lan' another computer and log in virtual PC
How to connect 2 virtual hosts running on the same machine?
Virtual PC (XPMode) - Setting up Loopback Adapter for guest to talk to host
Windows Virtual PC Development Setup?
VirtualPC: Can't boot into anything
Virtual PC Hard Disk spanning multiple files?
Quicker way to create duplicate Virtual PC images?
Hyper V to Virtual PC
Copied virtualPC files, what do I have to change in settings?
What's the difference between SysPrep and NewSid?