We're big fans of conducting all our development in virtual machines, mainly for the following reasons:
- Everyone has a common build which we ask to be kept "clean" of other installed "stuff"
- Easy of deployment - up and running in an hour or two, rather than a day or two if you need to install our dev stack onto a clean machine
We've used the following virtualisation products
- Virtual PC - nice desktop integration (e.g. drag & drop from host) but limited to single core support
- Virtual Server - really a server VM, limited to single core
- VMServer - multi-core support but really annoying freezes when using cut & paste in VS2008, really a server VM
- VMPlayer - multi-core support, some desktop support, but no drag & drop from host, can't build VMs in it
- VirtualBox - single core support and limits memory to half that of host.
Are there any other mainstream VM technologies we've missed and does anyone else have good things to say for this approach?
I should add that I have the following requirements:
- want to run this on my dev laptop, on top of Vista, so the Hypervisor style VMs are probably less useful?
- I have lots of real cores, so want to expose more than one to the VM
- I have lots of memory, so I want to expose lots of that to the VM
- Drag & drop from the desktop is very helpful. Our test VMs have no networking and can't use Shared Folders.