juin 04 2010

[Visual Studio 2010] Déploiement Web Partie 4 - Installation de Web Packages

Suite de la série de billets sur le déploiement Web avec Visual Studio 2010 :

Maintenant que notre Web Package est créée, il est temps de regarder comme fonctionne le déploiement de celui-ci. Il existe plusieurs manières de procéder :

  • utiliser le Gestionnaire IIS ;
  • utiliser le script de commande généré par Visual Studio 2010 ;
  • utiliser MsDeploy.exe en ligne de commande ;
  • utiliser le support Power Shell fourni par MsDeploy ;
  • utiliser les API fournies par MsDeploy.

Commençons par regarder comment déployer notre site via le Gestionnaire IIS. Pour cet article, j'utilise IIS 7. Il faut avouer que c'est relativement simple d'utilisation : il suffit de cliquer sur le menu "Importer une application" comme le montre l'image ci-dessous :


 

Ce menu va nous ouvrir une fenêtre nous demandant de spécifier l'emplacement du package au format .zip. Une fois fait, IIS récapitulera le contenu de l'application, mais nous permettra également de choisir quels sont les éléments à importer ou non. Ci dessous l'écran en question :


 

Comme on peut le voir sur la capture précédente, il existe des paramètres avancés que l'administrateur IIS peut spécifier lors du déploiement de l'application Web sur le serveur. Voici un aperçu des différents paramètres :


 
info Le paramètre WhatIf est très utile, il permet de voir ce qui sera installé sur notre serveur sans qu'il y ait déploiement effectif. C'est une option précieuse pour vérifier le contenu d'un package.
 
 

Enfin, lors de la dernière étape précédant le déploiement effectif de l'application, IIS 7 nous permet de modifier si besoin le nom de l'application, le chemin physique du Virtual Directory, mais aussi la chaîne de connexion pour la base de données. Ces informations sont bien entendu extraites du package et sont telles que nous l'avons spécifié dans Visual Studio 2010 :


 

Ensuite, il suffit de lancer le déploiement et IIS nous résume dans la dernière étape si tout s'est correctement déroulé ou non, avec le détail des actions réalisées. Une fois le site déployé, il ne reste plus qu'à tester celui-ci via l'URL : http://localhost/WebApplicationBidon_deploy/.


idea Vous noterez que MsDeploy est parfaitement intégré à IIS 7. Cet article sur le déploiement d'application Web avec Visual Studio 2010 est surtout destiné aux développeurs, mais il est important de rappeler que les possibilités offertes par MsDeploy ne s'arrêtent pas là. MsDeploy permet aussi aux administrateurs IIS d'archiver et de restaurer des applications Web, de synchroniser une application avec un autre serveur.
Pour plus d'informations sur le sujet, consultez le site officiel IIS ou Technet
 

Comme nous l'avons vu précédemment, il existe plusieurs méthodes pour installer un Web Package. Nous venons d'utiliser le Gestionnaire IIS, mais il est aussi possible d'utiliser le script de commande généré par Visual Studio 2010. Deux principales options sont à connaître : /T et /Y. La première option va vous permettre d'exécuter votre Package avec WhatIf à False. Ainsi l'installation ne sera pas effective mais vous permettra de tester le Package à l'avance. La deuxième option vous permet de lancer le déploiement effectif de l'application. Comme nous pouvons le voir ci-dessous, le script de commande ne fait qu'appeler MsDeploy.exe :


 
info Un gros avantage qu'offre MsDeploy en mode de commande est que les appels à msdeploy.exe peuvent être scriptés, ce qui signifie qu'un déploiement multiserveur peut être entièrement automatisé et reproductible. Scripter ce type de déploiement signifie également que d'une seule machine, vous pouvez suivre un déploiement, voir les résultats de chaque script et afficher la synthèse sur votre bureau.

 

Création de Web Packages avec MSBuild

Après la création manuelle de Web Packages via Visual Studio 2010 (ou via le Gestionnaire IIS 7 pour exporter une application déjà déployée), il convient d'aborder la création de Packages avec MsBuild. Comme vous le savez surement, beaucoup d'entreprises ont mis en place de véritables usines automatisées pour la compilation, les tests unitaires, mais aussi le déploiement de leurs applications. On retrouve souvent ce type d'installation dans les équipes RAD (Rapid Application Development) dans le cadre de l'intégration continue. Les Web Packages couplés à MsBuild et CC.NET ou TFS montrent leurs plein potentiel.


info Pour ceux qui ne seraient pas familiers avec le modèle d'intégration continue, la lecture de cet article de Martin Fowler est plus que recommandée.
 

Les deux outils les plus populaires utilisés pour l'automatisation sont Nant et MsBuild. Nous nous focaliserons dans cet article sur MsBuild puisqu'il est utilisé constamment par Visual Studio 2010 pour la plupart des fonctionnalités de l'IDE. Pour vous convaincre, il suffit de regarder le contenu des fichiers projets (.Csproj ou .VbProj). Pour créer un Web Package avec MsBuild, là aussi la simplicité est au rendez-vous. Pour cela, il faut tout d'abord lancer le Visual Studio Command Prompt :


 
warning Si vous désirez inclure les paramètres IIS dans votre Package (comme c'est le cas dans notre exemple), pensez à lancer la fenêtre de commande en tant qu'administrateur
 

Pour lancer la création du package, la syntaxe est on ne peut plus simple : MsBUILD NomDuProjet.Csproj /T:Package (ou .VbProj si vous utilisez VB.NET). Ci-dessous le résultat de l'exécution de MsBuild :


 
info Notez que MsBuild ne créera pas le Package si la compilation a échoué. Cela vous évitera, dans le cadre d'une automatisation, de vous retrouver avec une application déployée alors qu'elle ne fonctionne pas.
 

Pour aller un peu plus loin, il vous faudra consulter les articles dédiés à MsBuild. Mais il est utile de rappeler que par défaut, MsBuild utilise la configuration Debug lors de la compilation. Pour changer de configuration, il faut utiliser cette syntaxe : /P:Configuration=Release. Vous pouvez aussi indiquer l'endroit où vous souhaitez que le Web Package soit créé : MsBUILD NomDuProjet.Csproj /T:Package /P:Configuration=Release;PackageLocation="C:\Package". Pour plus d'informations sur MsBuild : MSDN.

Tags: , , , , , , ,

Les commentaires sont clos