Não, isso não é aconselhável. Por um lado, a virtualização em execução no topo da virtualização terá um desempenho ruim. E a maioria dos desenvolvedores não gosta de trabalhar contra uma máquina virtual hospedada remotamente, onde cada pequena operação tem um pequeno atraso (devido à latência de rede de ~ 50 a ~ 200 ms).
A solução mais comum é algo ao longo destas linhas:
- Todo desenvolvedor trabalha diretamente em seu próprio PC local e tem um conjunto de dependências instaladas conforme necessário (Visual Studio, .NET, IIS Express, SQL Express, etc.).
- O código é enviado para um repositório central (Subversion, qualquer que seja).
- Um servidor de Integração Contínua (CI) (fx Hudson , TeamCity ) faz o check-out do código do repositório, constrói-o, executa testes de unidade e, possivelmente, o instala diretamente em um servidor de teste ou de teste.
Seu servidor de CI, os servidores de teste e de teste podem ficar felizes na nuvem (mais fácil com algo como Nuvem privada virtual ). Poderia o seu repositório de código, mas se você não preferir no local, então você deve apenas terceirizá-lo para um serviço hospedado Subversion / Git.
Editar: Você pode testá-lo (esse é um dos benefícios da computação em nuvem - você pode colocar em spool um servidor em questão de minutos e testar como ele realmente funciona para você). Mas que tal executar um servidor Windows 2008 R2 internamente e configurar VMs nesse servidor? Latência de rede próxima de zero e nada difícil de fazer.
Antes de prosseguirmos, por que você não pergunta aos desenvolvedores como eles estão acostumados a fazer as coisas e o que eles preferem ...