Come altri hanno già detto, dipende da diverse cose:
- Che aspetto ha il tuo ambiente?
- Hai diritti di accesso sufficienti per lo sviluppo?
- Il tuo HW è in regola?
Ambiente
L'utilizzo di una VM può essere d'aiuto se si sta lavorando su più versioni di un progetto; più progetti; o il targeting di un sistema operativo diverso da quello normalmente eseguito (sistema operativo host). Faccio un sacco di lavoro su SharePoint ed essere in grado di eseguire una macchina diversa per le varie versioni di una versione è utile poiché posso solo avviare una macchina diversa e avere una buona sensazione per lo stato del GAC / database. Inoltre, se hai bisogno di indirizzare un ambiente applicativo * nix ma hai una macchina Windows, puoi ancora fare lo sviluppo in una VM (questo è il modo in cui sto imparando Ruby a casa anche se in genere faccio lavoro con .NET. Sostengo generalmente quando eseguo test di sviluppo / sviluppo di ASP.NET sulla stessa versione di IIS che verrà eseguita in ultima analisi (lo stesso razionale si applica ad altri ambienti di destinazione del server). A seconda della versione del sistema operativo, potrebbero esserci alcune piccole ma importanti differenze. Nota che questo non implica che tu debba codificare su una versione specifica di IIS / OS, ma siamo onesti, davvero, deve davvero lavorare dove lo distribuirai non solo sulla tua macchina locale.
Anche le macchine virtuali (a seconda del software utilizzato) consentono di scattare istantanee dello stato corrente della macchina e / o clonarle. Questo può essere prezioso quando si prototipa qualcosa e non si deve essere preoccupati di ciò che sta accadendo nel tuo GAC / Registro / ecc. Inoltre li ho trovati molto preziosi nella creazione di una demo client prima del tempo. Dato che l'ambiente demo era in una VM, potevo continuare a lavorare fino a mostrare al cliente ciò che avevamo completato perché stavo lavorando su una macchina diversa .
Diritti sufficienti
Questo vale generalmente per le persone che lavorano per un'azienda con un insieme piuttosto rigido di politiche per i diritti di accesso. Se non si è in grado di avere un amministratore senza restrizioni sul proprio computer, questo sarebbe un buon momento per lavorare in una VM. In genere i poteri sono solo preoccupati di bloccare il sistema operativo host, l'ospite può essere completamente aperto (autorizzazioni saggia). Ho incontrato strani problemi con i profili di roaming, i diritti di amministratore danneggiati e l'esecuzione di VS 2010; l'utilizzo di una macchina virtuale mi ha permesso di evitare questi problemi.
Il tuo HW è in regola?
Questo si riduce a quando le tue immagini VM sono su un server e il tuo telecomando in esse OPPURE le esegui localmente. Se si sta eseguendo sul server, probabilmente il problema maggiore è che ci sono troppe VM in esecuzione sullo stesso hardware. A livello locale, fondamentalmente si vuole molta RAM e per ridurre al minimo la frequenza di sovraccarico del buffer R / W per il proprio disco rigido. Per lo sviluppo LOB / SharePoint / ASP.NET di base ho scoperto che almeno un minimo di 8 GB di RAM e una configurazione dual hard drive funzionano in pratica (eseguendo un i5 ma ho anche lavorato con un Core 2). Il secondo disco rigido fa la più grande differenza di prestazioni.
Nota: non ho statistiche per eseguire il backup, ma ho notato che Virtual PC ha una tendenza a sottoperformare rispetto a VMWare e Virtual Box. Non posso parlare con Hyper-V poiché non ho lavorato con esso. Non sarei sorpreso se si utilizzasse Virtual PC (come incursione iniziale nell'uso di VM) per gli sviluppatori jaded sull'uso del software di virtualizzazione.