vi^2

Während die VMware-Schnittstelle langsam Formen annimmt, stolpert man über die eine oder andere nützliche Quelle zum Thema VMware vSphere SDK. Java-Entwickler können sich z.B. das Leben einfacher machen, in dem sie statt den im SDK mitgelieferten Hilfsklassen gleich die VMware Java API des Autors Steve Jin einsetzen. Die Java-Bibliothek bietet eine umfangreiche Kapselung der VMware Webservices und damit deutlich mehr Komfort bei der Entwicklung. Leider ist das für C# bisher nicht verfügbar. Bis dahin ist die Java API aber eine gute Quelle, von der man die eine oder andere Abkürzung in sein C#-Projekt portieren kann.

Um beim Abstrahieren eines Proxy-Interface zu einem Webservice für die Steuerung einer virtuellen Umgebung nicht den Anschluss an die Realität zu verlieren, hilft es Abends eine leckere Pizza zu essen :). Empfehlenswert: eine Pizza Bufala im Restaurant Amici Miei (94, c. Vittorio Emanuele II – TORINO).

Gerade erst eingerichtet wurde die Seite VMware Labs, auf der Tools von VMware Entwicklern ohne offiziellen Support aber dafür kostenlos heruntergeladen werden können. Neben der oben genannten Java API gibt es dort auch z.B. auch eine Art mRemote für VMware Guests.

VMware vSphere SDK 4.0 mit Visual Studio 2008 fast track

Ich habe mir das VMWare SDK 4.0 für C# mal angesehen. Bis man wirklich etwas sieht, gibt es leider einige Stolpersteine zu umgehen. Das SDK ist für Visual Studio 2005 gebaut und mag neuere Versionen nicht besonders. Nach einigen Experimenten (unter anderem mit Visual Studio 2010 RC) und Tipps aus dem VMWare-Forum hier ein Rezept für Kurzentschlossende:

  1. Download der Visual Studio 2008 Trail-Version von Microsoft in Form einer Virtual PC Edition, ich habe die “Visual Studio Team System 2008 Team Suite with Visual Studio Team System 2008 Team Foundation Server” genommen. Da sind auch die notwendigen Tools wie z.B. das Windows SDK schon installiert.
  2. Download der VMware vSphere Web Services SDK 4.0 und entpacken
  3. Visual Studio 2008 VM starten und sich als Benutzer TFSSETUP anmelden. Einen Shared Folder für die entpackte VMWare SDK einrichten. Der SDK-Ordner war bei mir auf Laufwerk Y: gemapped, der Pfad zu dem VS-Beispielprojekt lautete daher Y:\SDK\samples\DotNet
  4. Über das Startmenü den “Visual Studio 2008 Command Prompt” aufrufen und in das Verzeichnis Y:\SDK\samples\DotNet wechseln
  5. “set WSDLFILE=Y:\SDK\wsdl” ausführen, damit die Stubs sauber generiert werden
  6. Die Zeile in der Datei Build2005.cmd
    @echo Building Samples in Debug mode
    %DEVENV% cs\Samples2005.sln /build Debug

    ändern in

    @echo Building Samples in Debug mode
    “%DEVENV%” Y:\SDK\samples\DotNet\cs\Samples2005.sln /rebuild Debug

  7. Folgende Zeilen in der Datei genvimstubs.cmd auskommentieren
    rem if not exist %VSINSTALLDIR%\SDK\v2.0\bin\wsdl.exe goto err_no_VSTOOLS
    rem if not exist %WINDIR%\Microsoft.NET\Framework\v2.0.50727\csc.exe goto err_no_VSTOOLS
  8. Build2005.cmd ausführen

Danach kann man mit Visual Studio 2008 das Projekt öffnen und in ein 2008-Projekt konvertieren. Hinweis: ein Doppelklick auf die Projektdatei öffnet standardmäßig Visual Studio 2005, das ist auch noch teilweise in der VM installiert.

Der Beispielaufruf (nach dem Developer’s Setup Guide):

Y:\SDK\samples\DotNet\cs\SimpleClient\bin\debug>SimpleClient.exe https://mein-esx-server/sdk useraccount password