Sayed Ibrahim Hashimi (@SayedIHashimi) von Microsoft zeigte in dieser Session, wie ASP.NET Web-Applikationen für den Betrieb in der Cloud angepasst werden können. Windows Azure als PaaS bietet wesentlich mehr Möglichkeiten als simples Web-Hosting. Azure bietet u.a. BLOB storage (binary large object), SQL Azure, Service Bus, Caching, und viele weitere Funktionen. Hier (DEV306)gehts zur Session Beschreibung.
SayedHa@microsft.com in Aktion (http://www.sedodream.com/).
Was ist erforderlich, um eine ASP.NET Website in Windows Azure zu bringen. Nun, es sind grundsätzlich drei Schritte durchzuführen:
- Website im Azure Portal erstellen
- Publish Profile downloaden
- Publish der Website in Windows Azure
Alle nötigen Bits gibts in http://www.windowsazure.com/de-de/develop/net/ downzuladen.
Sayed erstellt zunächst ein neues Visual Studio 12 Projekt vom Typ “Internet Application” – eine ASP.NET MVC4 WebApp (mit Building Blocks von NuGet.org; Mit VS2012 kommt eine Reihe neuer NuGet Pakete, wie zB. jQuery, etc. mit). Das Demo-Projekt verwendet Entity Framework und Migration (PM> enable-migrations <Name>; update-database, …).
Weiter gehts mit dem (gewohnten) Erstellen einer neuen Website im Windows Azure Portal. Nicht vergessen: Bei Verwendung von SQL Azure: [x] Allow Windows Azure services to access the server.
In VS2012 wird der Publish-Vorgang (mit den downgeloadeten settings aus Windows Azure) ausgeführt. Nach dem Publishen wird die Website geöffnet. Bei Code-Aktualisierungen werden nur die Änderungen an Azure gesendet.
Azure Websites laufen unter Medium Trust in einer SandBox-Umgebung – damit sollten (fast) alle ASP.NET Websites in Azure laufen können.
Das Demo funktioniert fein. Wie können Webprojekte automatisiert in der Cloud aktualisiert werden? In VS2012 werden die Publish-Eigenschaften in diesem File gespeichert: Web Deploy.pubxml. Dieses sieht etwa so aus:
Der Build-Vorgang kann so automatisiert werden:
msbuild <projektname>.sln /p:DeployOnBuild=true;PublishProfiel=”My Project – Web Deploy”;Password=…
(siehe Bild):
(Der Vorgang ist in VS2012 wesentlich einfacher als in VS2010.)
TFS in Azure: Hinweis: tfspreview.com kann bereits verwendet werden. Neuen TFS-Projekt anlegen, in VS verbinden und das ASP.NET Projekt einchecken (NuGet Package restore hinzufügen…) Im Configuration File werden Trigger definiert um die Änderungen zu publishen. Straight forward:
Nächstes Thema: Cloud Services. Diese können aus WebRole (IIS) und WorkerRoles (für Background-Jobs) bestehen. Beide können unterschiedlich skaliert werden. Publishing-Verwendung in VS2012 mit dem neuen Azure SDK 1.7.
Zum Abschluss: In Azure existieren diese Storage-Optionen: SQL Azure, Blob, Table Storage und Queues. BLOBs werden immer in Containern gespeichert.
Im Demo verwendet Sayed einen Blob Storage, um Bilder in der Cloud zu speichern und zu laden. Der ConnectionString zum Blob besteht aus dem Protokoll (https), dem Container-Namen und dem Key (aus dem Portal).
Ein rascher Überblick über Deployment in Windows Azure!