In diesem Blog Post beschreibe ich welche Schritte notwendig sind um eine ASP.NET Web Anwendung mit Visual Web Developer 2008 Express Edition zu erstellen und diese dann auf Windows Azure zum Hosten zu publizieren. Falls Sie noch die Entwicklungsumgebung und / oder das Windows Azure SDK samt Tools noch nicht installiert haben, so können Sie den AzureNow How-To-Guide: Windows Azure Entwicklungsumgebung installieren durchlesen. Alternativ zu der Anleitung können Sie sich auch diesen Screencast anschauen.
Starten der Entwicklungsumgebung
Um mit den lokalen Windows Azure Tools arbeiten zu können muss die Entwicklungsumgebung im Administrationsmodus gestartet werden. Hierfür drücken Sie mit der rechten Maustaste auf das Programmsymbol und führen die Anwendung als Administrator aus.
Der UAC (User Account Control) Dialog erfordert die Bestätigung.
Nachdem Sie mit Ja bestätigt haben, ist die Entwicklungsumgebung nun im Administrationsmodus gestartet. Das erkennt man an dem Fenstertitel, in Klammern ist Administrator zu lesen.
Anlegen der Projekt-Datei
Als nächstes öffnen wir über das Menü “File / New Project…” den Projekt Template Dialog.
Wir wählen das Cloud Service Template aus. In meinem Beispiel ist das Cloud Service Template in der Programmiersprache C# ausgewählt. Vergeben Sie noch einen Namen und drücken Sie OK.
Der nächste Dialog gibt uns eine Auswahl an Rollen die wir in dem Cloud Service Template verwenden können. Es gibt momentan drei verschiedene Rollen: Die ASP.NET Web Role, die Worker Role und eine CGI Web Role. Für unser Beispiel fügen wir eine ASP.NET Web Role hinzu.
Wir lassen den Namen der ASP.NET Web Role bei WebRole1 und drücken OK
Jetzt hat die Entwicklungsumgebung alle notwendigen Informationen und erstellt die Solution. Im Solution Explorer sehen wir nun folgende Dateien:
Default.aspx Programmieren
Mit einem Doppel-Klick im Solution Explorer auf die Datei Default.aspx öffnen wir diese zum Editieren. Der Editor sollte nun die Datei Default.aspx geladen haben und diese anzeigen.
Im DIV Tag (in Zeile 12 exakt) fügen wir ein paar weitere Element hinzu.
<h1>Hallo Windows Azure</h1>
<div>
<asp:Button ID="actionPrintTime" Text="Zeige Uhrzeit an" runat="server" />
</div>
<div>
<asp:Label ID="output" runat="server" />
</div>
So dass die gesamte Datei folgendermaßen aussieht:
Nun schalten wir auf die Design Ansicht um. Hierzu wählt man unten im Editor Design aus.
Wenn wir in der Design Ansicht sind, kann man in den Code Editor durch ein Doppelklicken auf den Button “Zeige Uhrzeit an” gelangen. Dadurch wird für das ASP.NET Element Button ein OnClick Handler definiert der in der Code Behind Datei gleichzeitig angelegt wird. Der Code Editor öffnet nun diese Code Behind Datei.
Nun können wir das Button Element mit Programmcode füllen. Hierzu tippen wir folgenden Code in die Methode actionPrintTime_Click ein.
output.Text = DateTime.Now.ToShortTimeString();
Der Code der Klasse _Default sieht nun folgendermaßen aus:
Lokales Testen der Anwendung
Jetzt können wir das Projekt mit der Taste F5 in der lokalen Windows Azure Development Fabric starten. Die Windows Azure Development Fabric simuliert die Windows Azure Hosting Infrastruktur und erlaubt es so losgelöst von der eigentlichen Hosting Plattform Anwendungen zu Entwickeln und zu Testen. Hierzu startet die Entwickluingsumgebung die Development Fabric und das Development Storage an. Beim allererstenmal kommt ein Dialog hoch der einfach Bestätigt werden muß. Der Dialog legt dann den momentanen Benutzer für das Development Storage an und erstellt auch noch eine lokale Datenbank.
Im Windows Tray kann man die Icons der Development Fabric und des Development Storage sehen.
Wenn die Anwendung gestartet ist wird die Seite Default.aspx angezeigt und ein Klick auf den Button ruft dann die Funktionalität auf die Implementiert wurde und zeigt die Uhrzeit des Servers an.
Publizieren der Anwendung auf Windows Azure
Nun geht es darum die ASP.NET Anwendung in die Windows Azure Infrastruktur zu publizieren. Dazu geht man auf das Cloud Service Projekt im Solution Explorer und ruft das Kontextmenü mittels der rechten Maustaste auf.
Im Kontextmenü wählt man Publish… aus. Dies startet den Publizierungsprozess. Zuerst werden die Deployment Dateien in entsprechende Pakete verteilt. Die Anwendung wird in die Datei CloudService1.cspkg gepackt und die Service Konfiguration findet man in der Datei ServiceConfiguration.cscfg. Diese Dateien findet man im Publish Verzeichnis des Projektes. Das Dateiverzeichnis wird vom Publish Prozess automatisch geöffnet.
Gleichzeitg wird der Webbrowser mit dem Windows Azure Hosting Portal geöffnet. Hier meldet man sich mit der Windows Live ID an
und wählt das Projekt PDC08 CTP aus.
Nun wählt man das existierende Projekt aus (in meinem Fall: Meine erste Azure Anwendung)
und geht auf die “Production” Umgebung. Es hängt jetzt davon ab ob Sie schon eine existierendes Paket am Laufen haben oder nicht. Falls ein existierendes Paket läuft, so drücken Sie bitte den Button “Suspend” und warten bis die Anwendung gestoppt ist um dann den Button “Delete” zu drücken. Nach einigen Sekunden sollten Sie wieder eine leere “Production” Umgebung haben.
Danach drücken Sie Deploy und geben die entsprechenden Dateien in den Upload Dialog ein, nämlich CloudServer1.cspkg für das Application Package und ServiceConfiguration.cscfg für die Service Configuration. Noch einen Service Deployment Label eintippen und Deploy drücken.
Für eine ausführliche Beschreibung können Sie sich den Blog Post AzureNow How-To-Guide: Eine Web Anwendung auf Windows Azure Publizieren zu Rate ziehen.
Wenn das Deployment erfolgreich durchgeführt wurde, sind die entsprechend Ressourcen allokiert und Sie können die Anwendung mittels “Run” starten.
Jetzt warten Sie noch bis der Status auf Started steht und nun können Sie die Anwendung über die Produktions-URL entsprechend im Webbrowser starten