Hello World ASP.NET MVC in the Cloud avec Azure et VS 2008


Je vous propose de voir dans ce post les étapes à suivre pour publier une application Hello World ASP.NET MVC dans Azure.


Je suis parti des versions suivantes :


Visual Studio 2008 SP1 + .NET Framework 3.5 SP1
Windows Vista SP1 (le SDK d’Azure a pour l’instant quelques soucis sur Windows 7)
Azure SDK CTP de Janvier 2009 : http://go.microsoft.com/fwlink/?LinkID=130232
– les outils Azure CTP de Janvier 2009 pour Visual Studio 2008 SP1 : http://go.microsoft.com/fwlink/?LinkId=128752
ASP.NET MVC Beta : http://asp.net/mvc


Je ne reviendrais pas sur ce qu’est MVC ou Azure vu que nous sommes à moins d’1 mois du TechDays 2009 où ces sujets vous seront présentés en détails. D’ailleurs, pour ma part j’animerais ces sessions là.


Allez, c’est parti pour ASP.NET MVC dans le nuage.


Tout d’abord, lancez VS 2008 en élévation administrateur. Cela est nécessaire pour pouvoir ensuite lancez votre application dans l’émulateur de fabriques. Créez une application Web / ASP.NET MVC Web Application:


image


Ne créez pas de tests unitaires. Modifiez le contenu des pages de présentation comme vous le voulez et testez votre application.


Pour pouvoir aider Visual Studio à préparer un package de déploiement dans Azure, ajoutez un projet à votre solution de type “Cloud Service” / “Blank Cloud Service”


image 


Cependant, vous observerez que suite à cela, vous ne pouvez pas promouvoir votre application ASP.NET MVC en tant que WebRole:


image


“Web Role Project in solution…” étant grisé.


Pour que VS voit votre projet comme “ajoutable”, ouvrez le fichier .csproj associé à votre projet ASP.NET MVC dans Notepad et ajoutez ces lignes dans le tout 1er <PropertyGroup>:


<RoleType>Web</RoleType>


<ServiceHostingSDKInstallDir Condition= ‘$(ServiceHostingSDKInstallDir)’ == ” >$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\ServiceHosting\v1.0@InstallPath</ServiceHostingSDKInstallDir>


Juste après celle-là:


<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>


Sauvegardez dans Notepad. Visual Studio s’aperçoit de la modification et souhaites recharger le fichier:


image


Faites “Reload”.


Maintenant, on peut bien ajouter notre projet web en tant que Web Role:


image


Choisissez votre projet Web ASP.NET MVC. A ce stage, si l’on démarre le projet Cloud Service, on voit bien une instance de créée dans ma “Development Fabric” :


image


Et notre application ASP.NET MVC semble bien fonctionner. Cependant, si vous déployez en l’état l’application dans Azure, elle ne va pas fonctionner car Azure ne sera pas capable de trouver les Assemblys spécifiques à MVC. Pour résoudre cela, rien de plus simple, rendez-vous dans les propriétés des références suivantes: “System.Web.Mvc”, “System.Web.Abstractions” et “System.Web.Routing” et changez la propriété “Copy Local” de “false” à “true”.


image


Voilà, nous sommes prêts à déployer dans Azure. Pour cela, faites bouton droit sur le projet Cloud Service et faites “Publish”:


image


Visual Studio vous ouvre alors le répertoire où se trouve le package à déployer ainsi que le fichier de configuration (indiquant entres autre le nombre de frontaux Web à réserver à votre application). Visual Studio vous dirige également vers le portail Azure.


image


Rendez-vous sur votre projet Azure et cliquez sur “Deploy”:


image


Cliquez sur les 2 boutons “Browse” et entrez le chemin vers le répertoire que Visual Studio vous a ouvert. Le 1er prend une extension de type “.cspkg” et le 2ème de type “.cscfg”. Cliquez enfin sur “Deploy”.


image


Arrivé à ce stade là, cliquez sur “Run”


image


Une fois l’application démarrée:


image


Vous pouvez la tester en mode pré-production (“Staging”) et ensuite la mettre en production en cliquant simplement sur cette icône: image


Et voici le résultat final en production dans le nuage!


image


Pour terminer, je vous recommande la lecture de cette série de posts très intéressante (en Anglais) montrant comment migrer une application MVC complète dans Azure: http://blog.maartenballiauw.be/post/2008/12/09/Track-your-car-expenses-in-the-cloud!-CarTrackr-on-Windows-Azure-Part-1-Introduction.aspx


A bientôt aux TechDays!


David

Comments (0)