Como outros já mencionaram, depende de várias coisas:
- Como é o seu ambiente?
- Você tem direitos de acesso suficientes para desenvolver?
- Seu HW está pronto para o rapé?
Meio Ambiente
Usar uma VM pode ajudar se você estiver trabalhando em várias versões de um projeto; múltiplos projetos; ou segmentar um SO diferente daquele que você normalmente executa (SO host). Faço muito trabalho do SharePoint e poder executar uma máquina diferente para as várias versões de uma versão é útil, pois posso iniciar uma máquina diferente e ter uma boa noção do estado do GAC / banco de dados. Além disso, se você precisar direcionar um ambiente de aplicativo * nix, mas possuir uma máquina Windows, ainda poderá fazer o desenvolvimento em uma VM (é assim que estou aprendendo Ruby em casa, mesmo que eu geralmente faça o trabalho de desenvolvimento .NET). Geralmente, defendo ao testar / desenvolver o desenvolvimento do ASP.NET na mesma versão do IIS em que o aplicativo será executado (o mesmo racional se aplica a outros ambientes de destino do servidor). Dependendo da versão do sistema operacional, pode haver algumas diferenças pequenas, mas críticas. Observe que isso não implica que você deva codificar para uma versão específica do IIS / OS, mas, sejamos honestos, ele realmente tem que funcionar onde você a implantará, não apenas na sua máquina local.
As VMs também (dependendo do software usado) permitem tirar instantâneos do estado atual da máquina e / ou cloná-los. Isso pode ser inestimável na criação de protótipos de alguma coisa e você não precisa se preocupar tanto com o que está acontecendo no seu GAC / Registro / etc. Como o ambiente de demonstração estava em uma VM, eu poderia continuar trabalhando até o ponto de mostrar ao cliente o que concluímos porque estava trabalhando em uma máquina diferente .
Direitos suficientes
Isso geralmente se aplica a pessoas que trabalham para uma empresa com um conjunto bastante rígido de políticas para direitos de acesso. Se você não conseguir ter um administrador sem restrições em sua máquina, seria um bom momento para trabalhar em uma VM. Normalmente, os poderes estão preocupados apenas em bloquear o sistema operacional do host, o convidado pode estar aberto (permissões). Eu tive problemas estranhos com perfis de roaming, direitos de administrador inválidos e execução do VS 2010; usar uma VM me permitiu evitar esses problemas.
Seu HW está pronto para o rapé?
Isso se resume a suas imagens de VM em um servidor e seu controle remoto nelas OU você as executa localmente. Se você estiver executando no servidor, a maior preocupação provavelmente será a existência de muitas VMs em execução no mesmo hardware. Localmente, você basicamente quer muita RAM e para minimizar a frequência com que sobrecarrega o buffer R / W do seu disco rígido. Para o desenvolvimento básico de LOB / SharePoint / ASP.NET, descobri que um mínimo de 8 GB de RAM e uma configuração de disco rígido duplo funcionam muito bem na prática (executando um i5, mas também trabalhei com um Core 2). O segundo disco rígido faz a maior diferença no desempenho.
Nota: Não tenho estatísticas para fazer backup disso, mas notei que o Virtual PC tem uma tendência a ter um desempenho inferior ao VMWare e ao Virtual Box. Não posso falar com o Hyper-V, pois não trabalhei com ele. Eu não ficaria surpreso se o uso do Virtual PC (como uma incursão inicial no uso de VMs) forçou o desenvolvedor a usar software de virtualização.