juin 04 2010

[Visual Studio 2010] Déploiement Web Partie 1 - Différence entre Web Application et Web Site

Nous allons voir dans cette série de billets les nouveautés apparues avec Visual Studio 2010 concernant le déploiement d'application Web.

La dernière étape lors d'un projet Web est le déploiement de cette application pour la rendre accessible aux utilisateurs. Ce déploiement peut être réalisé sur un serveur de production d'une entreprise ou sur un serveur d'hébergement distant par exemple. Dans tous les cas cette étape est souvent source de problèmes mais aussi de pertes de temps du fait des nombreuses opérations manuelles à réaliser. Citons par exemple :

  • la modification des paramètres contenus dans le fichier Web.config ;
  • la création d'une base de données de production et la gestion des droits pour celle-ci ;
  • la configuration du site dans IIS (par exemple le mode d'authentification, la gestion des droits sur les répertoires, le paramétrage de l'application pool) ;
  • l'installation de certificats de sécurité ;
  • l'ajout d'assemblies dans le Global Assembly Cache (GAC).

Bien entendu, nous parlons ici uniquement d'un premier déploiement. Dans le cadre d'une mise à jour, il est souvent nécessaire de mettre à jour manuellement certaines pages uniquement, ou bien de paramétrer de nouveaux les exemples cités plus haut à cause de l'ajout d'une nouvelle fonctionnalité. L'arrivée de Visual Studio 2010 va changer la donne. En effet l'équipe de Microsoft a travaillé dur pour nous fournir de nombreux outils afin d'automatiser et optimiser au mieux le déploiement d'applications Web. Cet article a pour but de vous faire découvrir ces nouveaux modes de déploiement. Vous trouverez donc ici :

  • le déploiement d'une Web Application via des Web Deployment Packages ;
  • la transformation de fichiers Web.config ;
  • la publication d'une Web Application en un clic (One-Click Publishing) ;
  • les différentes méthodes de déploiement pour les Web Sites ;
  • le déploiement de base de données en utilisant les Web Deployment Packages ;
  • la publication de votre application sur la Web Application Gallery de Microsoft.

Avant d'entrer dans le vif du sujet, vous trouverez un petit rappel concernant les différences entre une Web Application et un Web Site.

 

Différence entre Web Application et Web Site

Avec Visual Studio, vous pouvez créer des Web Applications ou des Web Sites. Chaque type de projet ayant ses avantages et ses inconvénients. Gardez en tête qu'il est important de choisir le type de projet le plus approprié à vos besoins, car il n'est pas aisé de convertir un type de projet vers l'autre.

 

Quel type de projet choisir pour son application

Le principal critère sur lequel vous devez focaliser votre attention est de savoir comment vous avez l'intention de déployer et maintenir votre site web. Voici les principaux besoins pour lesquels Microsoft préconise d'utiliser une Web Application :

  • vous souhaitez utiliser MSBuild pour compiler votre projet. Par exemple, vous pourriez vouloir ajouter des étapes avant et après la compilation ;
  • vous souhaitez que Visual Studio ne génère qu'un seul et unique Assembly pour l'ensemble du site ;
  • vous souhaitez pouvoir contrôler la façon dont le nom et la version de l'Assembly sont générés pour le site ;
  • vous souhaitez pouvoir utiliser une classe autonome pour le code-behind de vos pages et User-Controls.

 

Si vous rencontrez ces différents besoins, le type de projet Web Site sera surement préféré :

  • vous souhaitez être en mesure de mettre à jour des fichiers individuellement en copiant simplement les nouvelles versions ou en éditant directement ceux-ci sur le serveur ;
  • vous ne voulez pas compiler explicitement votre site web en mode de configuration Release pour le déployer ;
  • vous souhaitez que Visual Studio créé plusieurs Assemblies pour le site. Cela peut aller d'une Assembly par page ou par User-Control, ou une ou plusieurs Assemblies par dossier.

 

Résumé des différences entre un Web Site et une Web Application

DomaineWeb ApplicationWeb Site
Structure du projet Un fichier de projet Visual Studio (.Csproj ou .VbProj) est utilisé pour stocker les informations sur le projet. Par exemple la liste de fichiers inclus dans le projet ou les références à d'autres projets ou Assemblies. Il n'existe pas de fichier projet. Tous les fichiers contenus dans l'arborescence du site sont automatiquement inclus dans le site web.
Compilation Vous pouvez compiler le code source de l'application sur votre machine de développement. Par défaut la compilation des fichiers (à l'exclusion des pages .Aspx ou des User-Controls .Ascx) génère une seule Assembly. Le code est généralement compilé à la demande, donc dynamiquement par ASP.NET sur le serveur lors d'une première demande (après installation ou mise à jour). Note : il est possible de précompiler le site comme indiqué plus loin dans cet article. Par défaut la compilation produit plusieurs Assemblies.
Namespaces Des Namespaces explicites sont ajoutés aux pages, aux contrôles, ainsi qu'aux classes du code-behind. Les namespaces ne sont pas ajoutés aux pages. Il est cependant possible des les ajouter manuellement.
Déploiement Vous devez copier l'Assembly, produit lors de la compilation, sur le serveur IIS. Visual Studio fournit des outils pour automatiser de nombreuses tâches lors du déploiement. Vous devez copier les fichiers sources directement sur le serveur IIS. Si vous précompilez le site, vous devez copier les Assemblies générés sur le serveur IIS. Visual Studio fournit des outils pour le déploiement, mais ceux-ci n'automatisent pas autant de tâches que les outils disponibles pour les Web Applications.

 

info

Il n'y a aucune différence de performance entre un Web Site et une Web Application. La seule exception notable concerne les sites très volumineux. En effet, pour les Web Sites, la première requête après déploiement ou mise à jour du site peut nécessiter un temps de compilation long. Mais globalement, ce n'est pas un critère à prendre en compte pour choisir entre les deux types de projets.
 
 

Pour illustrer les différences citées plus haut, notamment sur la structure des deux types de projets, voici ce que donne, dans Visual Studio 2010 et en ASP.NET 4.0, la création d'un Web Application Project et d'un Web Site :

 
 

Comme indiqué plus haut, la conversion d'un Web Site vers une Web Application n'est pas toujours aisée. Aussi, voici la méthode préconisée par l'équipe Visual Studio Web Tools : Blog MSDN de l'équipe Web Dev Tools ou directement cet article MSDN.

Tags: , , , , , , ,

Les commentaires sont clos