Come altri hanno già detto, dipende da diverse cose:
- Che aspetto ha il tuo ambiente?
- Hai diritti di accesso sufficienti per fare lo sviluppo?
- Il tuo HW è all'altezza?
Ambiente
L'uso di una VM può essere d'aiuto se si lavora su più versioni di un progetto; più progetti; o indirizzare un sistema operativo diverso da quello che si esegue normalmente (sistema operativo host). Faccio molto lavoro su SharePoint e poter eseguire una macchina diversa per le varie versioni di una versione è utile poiché posso semplicemente avviare una macchina diversa e avere una buona idea dello stato del GAC / database. Inoltre, se devi indirizzare un ambiente di applicazione * nix ma hai una macchina Windows, puoi comunque fare lo sviluppo in una macchina virtuale (questo è il modo in cui sto imparando Ruby a casa anche se in genere lavoro .NET dev). In genere, quando eseguo test di sviluppo ASP.NET / sviluppo sulla stessa versione di IIS, sostengo che l'app alla fine verrà eseguita (questa stessa logica si applica ad altri ambienti di destinazione del server). A seconda della versione del sistema operativo potrebbero esserci alcune piccole ma critiche differenze. Nota che questo non implica che devi codificare su una versione specifica di IIS / OS, ma siamo sinceri, deve davvero lavorare dove hai intenzione di distribuirlo non solo sul tuo computer locale.
Le macchine virtuali (a seconda del software utilizzato) consentono inoltre di acquisire istantanee dello stato corrente della macchina e / o clonarle. Questo può avere un valore inestimabile durante la prototipazione di qualcosa e non devi preoccuparti di ciò che sta accadendo nel tuo GAC / Registro di sistema / ecc. Li ho anche trovati molto preziosi nell'impostare una demo client in anticipo. Poiché l'ambiente demo era in una macchina virtuale, potevo continuare a lavorare fino al punto di mostrare al client ciò che avevamo completato perché stavo lavorando su una macchina diversa .
Diritti sufficienti
Ciò si applica generalmente alle persone che lavorano per un'azienda con una serie piuttosto rigida di politiche per i diritti di accesso. Se non riesci ad avere un amministratore senza restrizioni sulla tua macchina, sarebbe un buon momento per lavorare in una macchina virtuale. In genere i poteri si preoccupano solo di bloccare il sistema operativo host, l'ospite può essere completamente aperto (per quanto riguarda le autorizzazioni). Ho riscontrato strani problemi con i profili di roaming, i diritti di amministratore paralizzati e l'esecuzione di VS 2010; l'utilizzo di una VM mi ha permesso di evitare questi problemi.
Il tuo HW è all'altezza?
Questo si riduce alle immagini della VM che si trovano su un server e al telecomando in esse OPPURE le esegui localmente. Se si è in esecuzione sul server, probabilmente la maggiore preoccupazione sarà se ci sono troppe VM in esecuzione sullo stesso hardware. A livello locale, vuoi sostanzialmente molta RAM e minimizzare la frequenza con cui sovraccarichi il buffer R / W per il tuo disco rigido. Per lo sviluppo di base LOB / SharePoint / ASP.NET ho scoperto che un minimo di 8 GB di RAM e una configurazione a doppio disco rigido funzionano in pratica bene (eseguendo un i5 ma ho lavorato anche con un Core 2). Il secondo disco rigido fa la differenza più grande in termini di prestazioni.
Nota: non ho alcuna statistica 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 ci ho lavorato. Non sarei sorpreso se usando Virtual PC (come incursione iniziale nell'uso di VM) lo sviluppatore stanco sull'uso del software di virtualizzazione.