Hier ein kurzer Erfahrungsbericht zum Umgang mit verschiedenen Arbeitsumgebungen (PC's) bei der Arbeit mit Visual Studio
Wir verwenden Visual Studio 2005 seit dem ersten Monat der Verfügbarkeit.
Als Versionierungssystem ist seit längerem schon SubVersion im Einsatz wobei ich hierbei
Explizit auf die Visual Studio Integration verzichte und nur TortoiseSvn verwende!
Als primäre Komponentensammlung verwenden wir seit Jahren (auch schon unter Visual Studio 2003) Infragistics und sind sowohl mit der Qualität des Produktes als auch des Supports (Direkt, Foren, Knowlege Base) sehr zufrieden.
Infragistics liefert durchschnittlich 3 neue Versionen pro Jahr aus wobei ich versuche mit einem pro Jahr auszukommen was den Umstellungsaufwand (bzw. primär das Risiko dass sich irgendwelche Bugs manifestieren) um einiges reduziert.
Trotzdem bin ich gezwungen in der täglichen Arbeit (Support/Wartung auch in älteren Projekten welche ansonsten nicht weiterentwickelt werden) mit mindestens 2 Visual Studio Versionen (2003 und 2005, in kürze auch 2008) mit mindestens 3 verschiedenen Infragistics Versionen (hauptsächlich V6 und V7) umzugehen.
Der Quellcode selbst ist ja mit SubVersion gesichert aber eben nicht die Arbeitsumgebung!
Dieses Problem hat mich in frühreren Jahren viel Zeit (unbezahlt) und Nerven gekostet.
Seit ich dafür VMWare verwende hat sich die ganze Problematik in Luft aufgelöst.
Begonnen habe ich mit VMWare Workstation 5, bin dann aber schon bald in die letzte Beta von VMWare 6 eingestiegen, weil mir die Unterstützung von mehreren Monitoren sehr wichtig war!
Seit der Release von VMWare Workstation 6 verwende ich nun diese für all meine Arbeitsumgebungen! Der Betrieb mit 2 großen 22" Monitoren klappt bestens, wobei man dazusagen muss dass VMWare 6.00 noch einen kleinen Fehler im Grafiktreiber hatte welcher im VS2005 dazu geführt hat dass die feinen Hilfs- und Ausrichtungslinien im Formulardesigner nicht funktioniert haben, dies ist aber mit VM 6.01 schon lange behoben.
In der Zwischenzeit musste meine Arbeitsumgebung schon mehrmals kurzfristig auf den Laptop übersiedeln, um auch direkt vor Ort beim Kunden bzw. im Ausland ihre Dienste anzubieten. Grundsätzlich problemlos, ein paar Kleinigkeiten sollte man aber beachten:
Ich verwende ein Toshiba Satellite A210-14T Notebook mit AMD Turion64 Prozessor, 2GB Ram, 200 GB HD und Windows Vista (32Bit)
Meine VS-Arbeitsumgebungen (VM-Ware Guests) sehen alle gleich aus: Windows XP mit 1 GB Ram!
a) Performance
Geschwindigkeit die Arbeitsgeschwindigkeit der VM's ist ausreichend. Die Ladegeschwindigkeit einer VM (Bootvorgang) etc, könnte etwas schneller sein!
Hauptgrund für ev. Performance-Einbrüche ist die Festplattengeschwindigkeit! Einerseits sind Notebook Festplatten an sich schon nicht die schnellsten, andererseits empfiehlt VMWare nicht umsonst Host und Guest- System NICHT auf der selben physikalischen Platte zu betreiben. Mein nächstes Notebook wird sicherlich einen eSATA Anschluss haben! Auf meinem stationären Arbeitplatz verwende ich seit über einem Jahr externe Platten mit sSATA-Anschluss für die VM-Guests und das funktioniert problemlos, auch wenn ich die VM's mal mehrere Wochen durchlaufen lasse, wo ich früher Firewire (und USB)Anschlüssen immer mit Abstürzen/eingefrorenen Systemen zu kämpfen hatte.
Das Suspendieren einer VM geht schnell, der Resume kann aber schon an die 5 Minuten dauern! Die einfachste/schnellste Lösung welche ich bisher gefunden habe, ist der „Ruhezustand" von Windows Vista! Sowohl das versetzen in diesen Zustand als auch das aufwecken geht (bei laufender VM!) sehr schnell!
b) Connectivity
Die Netzwerkadapter meiner VM's waren bisher alle auf Bridged gestellt nachdem ich an meinem stationären Arbeitsplatz einen DHCP-Server einsetze also eine problemlose Lösung.
Innerhalb meiner VM-Guests benötige ich aber eine VPN-Verbindung (Windows Client) zu unserem SubVersion Server!
Unterwegs stehen mir sowohl diverse Wireless Access Points als auch ein UMTS-Modem (USB) zur Verfügung. Meine ersten Versuche diese Netzwerkverbindungen des Host Systems im Guest zu verwenden sind gescheitert (rückblickend wohl an der „Bridged" Einstellung des VM-Guests). Mein nächster Versuch war dann das UMTS-Modem nicht am Host sondern am Guest zu installieren was auch geklappt hat (die USB-Unerstützung von VMWare 6 ist wirklich ausgezeichnet)! Leider ist UMTS, speziell im Ausland noch sehr teuer, weshalb ich diese Lösung nur noch für Notfälle verwende.
Nach einigem Nachdenken bin ich dann auf die Idee gekommen nochmals die Netzwerkeinstellung „NAT" von VMWare auszuprobieren und siehe da, die Wireless Verbindung des Host-Systems (Hotel Access Point) war auch im Guest verfügbar, und sogar die VPN Verbindung (Vista VPN-Client) des Host Systems war im Guest einwandfrei zu verwenden.
c) Setup
Um meinen Laptop jederzeit und schnell einsatzbereit zu haben, habe ich auf meinen Arbeits-VM's (stationär) folgende Konfiguration:
Netzwerk des VM-Guests: NAT, VPN-Client läuft NUR im Host nicht am GUEST
Wenn nun ein Einsatz außer Haus ansteht passiert im Normalfall folgendes:
- Kopieren der notwendigen VM vom stationären Arbeitsplatz auf den Laptop. Das dauert zwar ein paar Minuten (ca. 20 GB) hat aber den Vorteil, dass die VM am allerletzten Stand ist da ich sie ja bis kurz vorher noch verwendet hab. Ev. Aktualisierungen des Quellcodes (SVN.Update) sind meist nicht mehr notwendig die habe ich schon vorher am stationären System gemacht!
- Die einzige Konfigurationsänderung am Laptop ist die Umstellung von 2 Monitoren auf einen....
- Ausser Haus brauche ich die VM nur hochfahren und kann sofort damit arbeiten.
Sobald die VM am Laptop einmal läuft, wird diese während des Einsatzes wenn möglich nicht mehr heruntergefahren (hoch und runterfahren dauert) sondern einfach der Host (Vista) in den Ruhezustand versetzt. - Wenn der Einsatz zu Ende ist starte ich am Host (Vista) die VPN-Verbindung zum SubVersion und mache im Guest ein Subversion.commit! Anschliessend fahre ich die VM wirklich herunter und der Laptop kann wieder im Kasten verschwinden.
- Sollte ich irgend eine Information in der VM vergessen haben, steht diese bis zum nächsten Einsatz noch jederzeit zur Verfügung, ansonsten starte ich beim nächsten Ausseneinsatz wieder bei Punkt 1 wobei ich die VM vom letzten Einsatz einfach löschen kann!
Wünsche/Änderungen für die Zukunft:
- - schnellere Festplatten, bzw. 2te oder Externe Platte auf eSATA Basis
- - größeren Monitor auch am Laptop 1900x1600 *ggg*