Dot.Blog

C#, XAML, Xamarin, UWP/Android/iOS

IIS Express : le meilleur des deux mondes

[new:13/07/2010]IIS est un serveur complet et puissant, Visual Studio permet de travailler en debug avec un serveur de ce type au lieu d’utiliser le serveur de développement ASP.NET intégré. Mais l’une comme l’autre de ces solutions présentent des inconvénients. IIS Express va bientôt gommer ces derniers…

(nota: je reprends ici dans un traduction légèrement adaptée un billet de Scott Guthrie, une figure connue qui participe au développement de nombreux produits chez Microsoft)

Aujourd'hui, les développeurs construisent et testent les sites ASP.NET et les applications Web à l'aide d'un des deux serveurs web suivant :

  • Le serveur de développement ASP.NET qui est intégré à Visual Studio
  • Le serveur Web IIS qui est fourni avec Windows (les versions professionnelles)

Les deux options ci-dessus ont leurs avantages et les inconvénients, et de nombreux développeurs ASP.NET voudraient bien avoir la facilité d'utilisation du serveur de développement ASP.NET, mais toute la puissance et les fonctionnalités de IIS 7.x.

Microsoft vient d'annoncer une nouvelle option gratuite – IIS Express - qui combine les meilleures caractéristiques des deux mondes, et qui facilitera la génération et l’exécution des applications et des sites ASP.NET.

IIS Express travaillera avec VS 2010 et Visual Web Developer 2010 Express, s'exécutera sur Windows XP et les OS plus récents, ne nécessitera pas un compte d'administrateur et ne nécessitera pas de modifications du code. Vous pourrez en profiter avec tous les types d'applications ASP.NET, et il permettra de développer en utilisant un serveur IIS 7.x à iso-fonctionnalités par rapport au vrai serveur de production.

Comment les choses fonctionnent aujourd'hui

Avant d'entrer dans les détails de IIS Express, examinons rapidement comment les options de serveur de développement ASP.NET et IIS fonctionnent aujourd'hui.

Serveur de développement ASP.NET

Le serveur ASP.NET de développement intégré à Visual Studio (également connu sous le nom "Cassini") a l'avantage d'être léger et d’être facile à exécuter rapidement. Il n'écoute pas sur les ports à distance (ce qui rend son utilisation plus facile dans les environnements sécurisés), il fonctionne même sous un compte non administrateur et ne nécessite pas une étape d'installation particulière.

Le fait qu'il soit tellement facile à faire tourner est un énorme avantage et la raison pour laquelle il est web-server par défaut utilisé par les projets ASP.NET dans Visual Studio lorsque vous appuyez sur F5 pour les exécuter :

image

L'inconvénient avec le serveur de développement ASP.NET, c'est qu'il ne supporte pas un ensemble complet de fonctions de serveur web. Par exemple, il ne prend pas en charge SSL, les règles de réécriture d'URL (comme les règles de réécriture des URL), les paramètres de sécurité personnalisés et d'autres fonctionnalités plus riches maintenant offertes avec IIS 7.

Serveur Web IIS

IIS est la seconde option pour le debug et les tests des applications avec Visual Studio. Vous pouvez configurer un projet web dans Visual Studio pour utiliser IIS par clic droit sur le projet puis en cliquant sur l'onglet "Web" dans la fenêtre des propriétés ":

image

IIS comme serveur de développement vous permet de tirer pleinement parti de toutes les fonctionnalités d’un vrai serveur web (SSL, règles de réécriture d'URL, etc.). IIS est un véritable serveur web ce qui signifie que vous bénéficiez d'une “expérience utilisateur” plus proche de la réalité et que vous aurez moins de surprises lorsque vous déploierez l'application sur un serveur de production.

L'inconvénient d'utiliser l'option IIS aujourd'hui c'est que certaines entreprises n'autorisent pas l’installation de serveurs web complets sur les machines de développeur. IIS requiert également d’avoir un compte administrateur pour accéder à la configuration et au débogage des projets. Différentes versions de Windows prennent également en charge des versions différentes de IIS. Par exemple, si vous travaillez sous Windows XP vous devez utiliser IIS 5.1 (fourni avec XP) qui ne prend pas en charge toutes les nouvelles fonctionnalités de IIS 7.x. La configuration d'un projet web VS pour utiliser IIS requiert également certaines installations supplémentaires et des étapes de configuration pas toujours simples.

IIS Express – le meilleur des deux mondes

Microsoft a travaillé sur une nouvelle version, ou plutôt une nouvelle “saveur”' de IIS 7.x qui est optimisée pour les scénarios de développement. Ce nouveau produit s’appelle "IIS Express". Il combine la facilité d'utilisation du serveur ASP.NET Web avec toute la puissance d’un vrai serveur IIS. Plus précisément :

  • Il est léger et facile à installer (moins de 10 Mo de téléchargement et une installation super rapide)
  • Il ne nécessite pas un compte administrateur pour exécuter/déboguer les applications Visual Studio
  • Il donne accès à l’ensemble des fonctionnalités d’un serveur web complet – y compris SSL, la réécriture d'URL, la prise en charge des médias et tous les autres modules de IIS 7.x
  • Il prend en charge et permet les m��mes modèles d'extensibilité et de fichiers paramètres (web.config) que ceux qui sont pris en charge par IIS 7.x
  • Il peut être installé côte-à-côte avec le serveur web IIS complet ainsi que le serveur de développement ASP.NET (ils n’entrent pas du tout en conflit)
  • Il fonctionne sur Windows XP et les versions supérieures – vous offrant un développement IIS 7.x IIS full fonctionnalités sur toutes les plates-formes Windows.

IIS Express (comme le serveur de développement ASP.NET) peut être rapidement lancé pour exécuter un site à partir d'un répertoire sur le disque. Il ne nécessite pas d’étape de configuration ni d'enregistrement. Cela facilite vraiment l’exécution pour les scénarios de développement.

Intégration de 2010 VS

Microsoft a fait en sorte que IIS Express puisse être utilisé facilement avec Visual Studio 2010. Vous pourrez configurer VS 2010 pour l'utiliser au lieu du serveur ASP.NET Web comme le serveur web par défaut sur des projets ASP.NET. Comme le serveur de développement ASP.NET aujourd'hui, vous ne devrez pas enregistrer un site ou un répertoire virtuel pour utiliser IIS Express. Il prendra en charge le même modèle d'utilisation que le serveur de développement ASP.NET aujourd'hui – juste avec la prise en charge de plus de fonctionnalités.

Lorsque vous appuyez sur F5 pour exécuter un projet ASP.NET, Visual Studio peut lancer IIS Express automatiquement et l'utiliser pour exécuter/déboguer l'application (aucune configuration supplémentaire requise). Comme le serveur ASP.NET Web, IIS Express s'affichera dans la barre de tâche-barre lors de l'exécution :

image

Vous pourrez cliquer avec le bouton droit (menu local) puis cliquez sur "quitter" de l'icône (voir image ci-dessus) pour arrêter rapidement IIS Express. Vous pourrez également avec le bouton droit et le menu local obtenir une liste de tous les sites en cours d'exécution, ainsi que l'emplacement du répertoire et la version .NET de chacun :

image

Deux choses intéressantes à noter :

1) Le "site de test" en cours d'exécution, ainsi que IIS Express lui-même, vivent dans le dossier c:\users\[username] sur le disque dur. Cela permet sont utilisation même pour des utilisateurs non administrateurs. Cela permet d’envisager des scénarii de test proches de la réalité même dans des environnements très sécurisés où IIS ne peut pas être installé sur les postes de développement.

2) Le "site de test" exécuté (voir image ci-dessus) en utilisant IIS Express prend en charge les deux types d’accès HTTP et HTTPS. IIS Express installe automatiquement un "certificat auto-signé" et autorise les URL ACLs et les certificats SSL pour les ports afin que les développeurs (exécuté sur une machine en tant que non-administrateurs) puissent utiliser SSL sans devoir élever leurs comptes et sans installation ni aucune configuration supplémentaire. Cela permet de configurer des pages sécurisées au sein de vos applications (comme les formulaires d'ouverture de session) pour SSL et de les exécuter et tester au moment du développement tout comme si vous étiez sur un serveur Web réel.

En plus de supporter ASP.NET, IIS Express supporte également le code ASP classique et d'autres types de fichiers et extensions pris en charge par IIS – ce qui le rend également idéal pour tester les sites qui combinent des technologies différentes.

Conclusion

IIS Express rendra encore plus facile la création, l’exécution et les tests des applications web. Il fonctionnera avec toutes les versions d'ASP.NET et prendra en charge tous les types d'application ASP.NET (notamment et bien évidemment les applications ASP.NET Web Forms et ASP.NET MVC). Le meilleur : vous n’aurez pas besoin de modifier quoi que ce soit dans vos projets pour en profiter ! Vous pourrez éventuellement l’utiliser avec tous vos projets en cours aujourd'hui.

La première version bêta va être publiée sous peu. Avec la version bêta vous pourrez même exécuter un site Web par un clic droit sur un folder contenant un site Web. Microsoft diffusera aussi un patch pour 2010 VS et Visual Web Developer 2010 Express plus tard cette année qui permettra de lancer automatiquement et d'utiliser IIS Express à la place du serveur de développement ASP.NET intégré de VS. Les futures versions de Visual Studio seront ensuite livré avec cette fonctionnalité intégrée.

Pour conclure, on peut saluer ici une innovation majeure. En soi ce n’est pas énorme, mais pouvoir tester une application Web dans un contexte plus proche de la réalité peut faire gagner beaucoup d’argent en évitant les bugs qu’on ne détecte qu’une fois en production…

L’intégration à terme dans Visual Studio rendra certainement obsolète le serveur Web intégré (Cassini) et fera de VS et de Visual Web Express des environnements de développement encore plus puissants et plus agréables.

Ne reste plus qu’à être patient… c’est pour bientôt mais bientôt ça ne veut pas dire tout de suite !

Pour en savoir plus le moment venu :

Stay Tuned !

blog comments powered by Disqus