Visual Studio 2012 RC und WebMatrix 2.0 Beta

Nach einem Artikel von Scott Hanselman wurde ich etwas aufmerksamer, was das Thema WebMatrix angeht. Jeder Webentwickler im VS-Umfeld sollte sich, glaube ich, zusehends mit WebMatrix anfreunden, da es Funktionen bietet, die auch im VS Nutzen bringen. Hier nun meine Interpretation des Ganzen.

Was soll ich mit WebMatrix?

Das habe ich mich anfangs immer wieder gefragt. Für mich ist die Produkttrennung noch nicht so scharf, wie man sich das wünschen könnte. Visual Studio hat einige Vorteile als HTML-Editor:

  • die neuen Editoren für HTML und CSS (kann WebMatrix 2.0 Beta teilweise jetzt auch)
  • sehr gute Dateiverwaltung und Einbindung
  • saubere Unterstützung von MVC usw.

Auf der anderen Seite bietet WebMatrix einiges, das VS noch fehlt:

  • IntelliSense für Nicht-MS-Sprachen, wie PHP
  • Erweitertes Web-Publishing

Gerade der erste Punkt ist nicht zu unterschätzen. Ich habe parallel immer noch einen PHP-Editor im Anschlag, weil VS einfach nicht rafft, was „<?php ?>“ sein soll. Es gibt zwar Erweiterungen für dieses Problem, aber irgendwann ist auch mal gut mit Erweiterungen, zumal einige der PHP-Extensions entweder gar nichts Erkennbares bewirken oder schlicht instabil sind.

Mit der neuen Beta von WebMatrix kommt nun sogar noch mindestens mal ein Feature hinzu, dass extrem wichtig werden könnte: Die Kopplung des Extension Managers an das Run-Menu.

Das muss ich ein wenig genauer erläutern. WebMatrix bietet bereits in der aktuellen Version ein Run-Menu:

Abb. 1: Aktuelles Run-Menu in WebMatrix

Wie man erkennen kann, geht es hier einfach nur darum, die aktuell bearbeitete Website irgendwie in einem Browser zu testen. Das wurde in VS 2012 übernommen mit dem Unterscheid, dass es dort sehr einfach erweitert werden kann (dazu später mehr).

WebMatrix 2.0 Beta macht bereits nach dem ersten Start klar, wohin die neue Reise gehen wird:

Abb. 2: Run-Menu in WebMatrix 2.0 Beta

Der Menupunkt „Add New…“ ist nun der wesentliche Unterschied. Er öffnet nicht irgendeinen händisch auszufüllenden Dialog, wie in Visual Studio, sondern die Browser Extension Gallery:

Abb. 3: Browser Extension Gallery

Sie basiert im wesentlichen auf dem Web Platform Installer (der übrigens jetzt in Version 4.0 veröffentlicht ist) und wird von WebMatrix gefiltert genutzt. Der Screenshot zeigt bereits die Besonderheit, dass neben Windows Phone nun auch direkt das iPhone oder iPad genutzt werden kann.

Installation von Browser-Extensions

Von Haus aus ist die WindowsPhone7EmulatorExtension bereits im Run-Menu angezeigt. Nutzt man sie das erste Mal aus WebMatrix heraus, startet ein Assistent, der sie dann installieren möchte. Es fehlen im Default nämlich noch einige Dinge, wie das Phone SDK und DirektX. Vorsicht: Die Installation kann ein paar Minuten dauern und „hängt“ kurz bei DirectX, läuft dann aber weiter.

Sobald die Extension drauf ist, kann eine WebSite ohne Probleme auf dem Device-Emulator getestet werden (ich kann nur iPhone zeigen, da Windows Mobile auf VmWare nicht läuft):

Abb. 4: Ausführung auf iPhone-Emulator

Interessant für Visual Studio ist nun, dass WebMatrix die Extensions alle in einem bestimmten Ordner ablegt:

C:\Users\{BENUTZERNAME}\AppData\Local\Microsoft\WebMatrix\Extensions\20RC

Dieser Ordner sieht bei mir nach Installation von iPhone- und Windows-Phone-Emulatoren so aus:

Abb. 5: WebMatrix-Installations-Ordner

Der Ordner für Windows Phone enthält übrigens nur die Extension-DLL für WebMatrix. Der Emulator selbst ist nach wie vor Teil des Phone SDK unter „C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v7.1\Tools\XDE Launcher\“.

Und jetzt im Studio

Mit diesem Wissen bewaffnet können wir nun auch innerhalb des VS ans Werk gehen, um beispielweise MVC-Applikationen (die man nicht vernünftig in WebMatrix verwalten kann) auf dem iPhone zu testen. Das Ziel ist es also, das Run-Menu des Studios ebenfalls zu erweitern. Leider geht das nicht so bequem, wie in WebMatrix, weil VS hier keine Anbindung an den Platform Installer mitbringt. Ein Problem ist es aber nicht.

Nachdem man z.B. eine MVC-Anwendung generiert hat, klickt man auf den kleinen Pfeil im Run-Menu und wählt „Browse with…“. Der Dialog „Browserauswahl“ öffnet sich und man klickt auf „Hinzufügen…“.  Es gibt 3 Felder auszufüllen. Hier mal eine Auflistung meiner Einstellungen (jeweils einmal „Hinzufügen“-Dialog benutzen):

Für iPhone:

  • Programm: „C:\Users\{USER}\AppData\Local\Microsoft\WebMatrix\Extensions\20RC\iPhoneSimulator\ElectricMobileSim\ElectricMobileSim.exe“
  • Argumente: 1
  • Angezeigter Name: iPhone

Für iPad:

  • Programm: „C:\Users\{USER}\AppData\Local\Microsoft\WebMatrix\Extensions\20RC\iPhoneSimulator\ElectricMobileSim\ElectricMobileSim.exe“
  • Argumente: 2
  • Angezeigter Name: iPhone

Für Windows Phone:

  • Programm: „C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v7.1\Tools\XDE Launcher\XdeLauncher.exe“
  • Argumente: „Windows Phone 7“ „Windows Phone Emulator“
  • Angezeigter Windows Phone

Aus mir unerfindlichen Gründen kann man die Einträge im Fenster Browserauswahl nicht bearbeiten, sondern nur entfernen und hinzufügen.

Hier ein Ergebnis-Screenshot mit dem iPhone-Simulator unter Nutzung des Mobile-Templates von MVC4:

Abb. 6: MVC4 auf iPhone-Emulator

VS erkennt übrigens nicht, wenn einer der Emulatoren geschlossen wird und der Debug-Prozess bleibt lebendig. Ich gehe davon aus, dass das dem Umstand geschuldet ist, dass das hier ein Workaround ist und dass WebMatrix hier anders vorgeht als VS.

Resumé

So richtig rund ist das Ganze noch nicht, aber wir reden hier von einer Beta in Zusammenarbeit mit einem RC. Hier ist also Geduld gefragt. Die Ansätze sind aber schon cool und vor allem konsequent. Wenn MS so viel Gas in Richtung Mobile gibt, dann sollten die Tools das auch unterstützen. Was bleibt, ist weiterhin ein bitterer Beigeschmack, weil wahrscheinlich immer mehr App-Seiten erstellt werden und immer weniger native Apps.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.