blog.atwork.at

news and know-how about microsoft, technology, cloud and more.

Developing on Windows Azure: Cloud-Enable Your Microsoft ASP.NET Applications #TEE12

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.

IMG_3256
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:

  1. Website im Azure Portal erstellen
  2. Publish Profile downloaden
  3. 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:

image

Der Build-Vorgang kann so automatisiert werden:

msbuild <projektname>.sln /p:DeployOnBuild=true;PublishProfiel="My Project - Web Deploy";Password=...
(siehe Bild):

image

(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:

IMG_3255

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.

image

Zum Abschluss: In Azure existieren diese Storage-Optionen: SQL Azure, Blob, Table Storage und Queues. BLOBs werden immer in Containern gespeichert.

IMG_3265

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!



Loading