Microsoft a sorti cet été la première beta de WebMatrix, un nouvel outil de développement web. Pourquoi un nouvel outil ? La panoplie existante est déjà riche et couvre la majorité des besoins :
- Visual Studio, qui couvre tous les types de développement, y compris web
- Visual Web Developer, la version gratuite tournée vers le développement web
- Expression Web, l’outil d’édition de pages
Il reste cependant un trou dans la raquette. Les environnements de développement Microsoft sont aujourd’hui optimisés pour le développement d’applications ambitieuses : toute la richesse de .Net y est directement exposée, et cette richesse ne va pas sans une certaine complexité. Le but avéré de Webmatrix est de se focaliser sur des scénarios moins techniques et plus orientés tâches. A cet effet, Microsoft a fait de grands efforts de simplification, pour fournir un outil de prise en main immédiate.
Installation de WebMatrix
Webmatrix s’installe de façon un peu particulière sur votre machine. L’installation se fait depuis la page http://www.microsoft.com/web/webmatrix, mais au lieu de télécharger un installeur et de lancer son exécution, vous allez simplement cliquer sur un lien de la forme suivante : http://www.microsoft.com/web/gallery/install.aspx?appid=webmatrix
Ce lien vous emmènera tout d’abord vers le téléchargement et l’installation de Web Platform Installer (en abrégé WebPI). Cet outil est dédié à l’installation d’applications web, et couvre à la fois les pré-requis, les frameworks, les outils de développement web, et les applications web Open Source les plus populaires. Une fois WebPI installé sur votre machine, un assistant vous guidera dans l’installation de WebMatrix et de tous les composants additionnels requis (notamment .Net 4, qui vous permet d’exploiter la nouvelle syntaxe Razor fournie dans WebMatrix et prochainement dans Visual Studio) :

Le contenu de WebMatrix
WebMatrix se veut un outil tout-en-un de développement, test et déploiement d’applications Web. Il reprend donc les composantes classiques d’une infrastructure web, tout en s’efforçant de simplifier au maximum chaque brique de l’édifice :

Reprenons ces briques de bas en haut :
Le serveur Web : IIS Express
IIS Express est un serveur web directement tiré de IIS 7.5, la version fournie avec Windows Server 2008 R2. La principale différence est qu’il ne s’installe pas en tant que service (il est lancé en même temps que WebMatrix chaque fois que vous travaillez sur un site Web) et qu’il est du coup disponible sur toutes les versions de Windows depuis Windows XP Home jusqu’à Windows Server 2008 R2. Il n’a pas non plus besoin de droits administrateur pour s’exécuter, ce qui vous permet de travailler sur n’importe quelle machine.
Les frameworks et applications Web
Beaucoup de nouveautés dans cette brique ! La première est la présence d’applications Web dans WebMatrix. Lorsque vous lancez WebMatrix pour la première fois, vous êtes accueilli par l’écran suivant :

Le bouton “Site From Web Gallery” vous conduit à une liste d’applications Open Source, tant en PHP qu’en ASP.Net. Vous serez sans doute surpris de trouver des applications PHP installables depuis un produit Microsoft, mais n’oubliez pas qu’à côté de sa casquette d’environnement de développement Web (ASP.Net est et restera chez Microsoft la principale technologie Web), Microsoft fournit un serveur web (IIS), et que ce serveur est parfaitement adapté à l’exécution d’applications PHP.
Ce bouton vous donne accès à une longue liste d’applications Web, que vous pouvez toutes installer en quelques secondes sur votre machine de développement: WebMatrix se charge de toutes les étapes d’installation, y compris l’installation et le paramétrage de PHP si nécessaire. Nous parlerons plus en détail des frameworks disponibles dans la suite tout à l’heure, mais sachez que vous pourrez manipuler trois environnements ASP.Net : ASP.Net WebForms (disponible depusi ASP.Net 1), Asp.Net MVC (bientôt en version 3), et ASP.Net Web Pages (prochainement disponible dans Visual Studio).
La base de données : Sql Server Compact
Pourquoi une nouvelle base de données ? En réalité, WebMatrix sait se connecter à trois bases de données différentes : Sql Server (2005 et ultérieures), MySql (5 et 6), et Sql Server Compact. Cette dernière base de données a une grande importance dans les hébergements mutualisés car elle ne demande pas d’installer une base de données “complète” sur le serveur de production. C’est une base de données fichier, directement embarquée dans l’arborescence du site web, que vous pouvez utiliser même si votre hébergeur n’offre pas Sql Server.
Découverte de l’environnement de développement
WebMatrix comporte toutes les fonctionnalités vues ci-dessus, mais c’est aussi un environnement de développement Web permettant d’écrire, de modifier et de publier vos propres applications Web.
Les principales facettes de WebMatrix sont
Un éditeur de code

Cet éditeur de code vous propose une coloration syntaxique pour les fichiers suivants :
- ASPX, ASCX, CS, VB, et tous les formats couramment utilisés en ASP.Net
- HTML, CSS, Javascript, et tous les formats couramment utilisés pour le développement html
- PHP, INC, et tous les formats couramment utilisés en développement PHP
- CSHTML et VBHTML : les nouveaux formats de fichier apportés par ASP.Net Web Pages
Des outils de test et de débogage
Commençons par un outil bienvenu des WebMasters, WebMatrix comporte un module d’optimisation des pages pour les moteurs de recherche. Cette fonctionnalité est tirée d’un outil appelé le SEO Toolkit (disponible sur http://www.microsoft.com/web/seo/) et qui inspecte votre site à la recherche de toutes les erreurs et maladresses qui nuisent au bon référencement de votre site.

Les autres outils sont moins innovants mais pratiques, avec notamment un module qui trace toutes les requêtes parvenant à IIS Express et qui vous permet d’isoler rapidement les requêtes intéressantes (images, erreurs, et une fonction de recherche dans les requêtes) :

Si vous avez l’habitude d’utiliser Visual Studio, deux différences importantes vont vous sauter aux yeux : d’une part, il n’y a pas d’intellisense, uniquement de la coloration syntaxique (cette lacune sera probablement comblée dans la V2 au vu des demandes répétées de tous les beta-testeurs), et il n’y a pas de notion de page de démarrage du site : WebMatrix lance directement la page que vous êtes en train d’éditer quand vous appuyez sur le bouton Run (à noter une fonctionnalité agréable, ce bouton permet de lancer la page simultanément dans tous les navigateurs installés sur la machine)

Des outils de publication
WebMatrix comporte deux assistants de publication web, tous deux accessibles à partir du bouton Publish. Le premier utilise FTP, il n’y a rien de particuler à en dire, le second mode utilise Web Deploy, une technologie de déploiement automatisé introduite par IIS 7.

Cette technique vous permet d’automatiser toutes les étapes du déploiement, y compris la gestion des permissions sur les répertoires et la création des bases de données. Elle dispose également d’un mode Mise à Jour qui ne transfère sur le serveur de destination que les fichiers dont le contenu a changé. Cette technique est plus riche, et est notamment à la base des applications disponibles dans WebMatrix, mais nous en parlerons dans un prochain article.
Razor, la nouvelle syntaxe d’Asp.Net Web Pages
Cette technologie de développement Web est une version simplifiée de ASP.Net MVC : elle repose sur l’un des moteurs de rendu d’ASP.Net MVC, appelé Razor. Les pages développées dans cette technologie utilisent les extensions de fichier cshtml et vbhtml, ce qui vous permet de mélanger les deux langages à votre gré dans un développement Web.
Les caractéristiques de cette version d’ASP.Net sont les suivants :
Accès simplifié aux bases de données :

Imbrication simple de code et de rendu html :

Intégration de fonctions de haut niveau en une seule ligne de code pour simplifier l’écriture des tâches courantes. Ces fonctions s’appellent des helpers et en voici une liste non exhaustive :
-
- WebGrid : affichage de grilles de données triables et paginables
- WebMail : envoi d’un email en une seule fonction
- Recaptcha : vous donne automatiquement un anti-spam graphique pour empêcher les robots de spammer votre site
- Twitter : affiche tous les micro-messages publiés par une personne ou sur un sujet donné.
- WebImage : vous permet de retravailler une image sans avoir à la stocker ou l’ouvrir.
- Chart : affichage de graphiques (camemberts, diagrammes en barres, etc)
- Analytics : insère automatiquement le javascript de suivi Yahoo, Google, etc
- Bing : ajoute la fonctionnalité de recherche à votre page
- Json : effectue le codage et le décodage au format JSON
- Video : insertion d’une video aux formats WMV, Flash ou Silverlight
- WebCache : gestion simplifiée du cache
Voici par exemple une page twitter IE9 avec le code source correspondant :

Ces fonctionnalités sont trop riches pour en faire le tour dans un article d’introduction, mais nous en reparlerons.
A qui est destiné WebMatrix ?
WebMatrix est un outil beaucoup plus simple de prise en main que Visual Studio, et ses fonctionnalités d’installation d’applications Open Source le mettent également à la portée des développeurs PHP même s’ils ne pratiquent pas ASP.Net. Cette simplicité a naturellement un prix (pas de fonctions d’intégration avec TFS, pas d’éditeur pour Entity Framework, pas de débogueur) qui nous permet de distinguer plusieurs cas d’utilisation de WebMatrix ou Visual Studio :
- Pour le développeur ASP.Net travaillant sur des projets complexes ou en équipe : Visual Studio est nettement préférable
- Pour retoucher une application Open Source : WebMatrix simplifie énormément l’installation et la prise en main des applications.
- Pour le développeur PHP : WebMatrix a un environnement d’édition bien conçu, mais ce sont surtout les fonctionnalités de publication qui sont intéressantes.
- Pour des développements très courts (un seul développeur) : la syntaxe très concise de Razor permet d’écrire plus rapidement certaines parties du site.
Pour la petite histoire, WebMatrix n’est pas le premier outil Microsoft utilisable en PHP : Expression Web a également cette fonctionnalité, même si elle est plus orientée vers l’édition HTML que vers le développement. WebMatrix est en beta 3 depuis le 9 novembre, et devrait sortir en version 1 dans les mois qui viennent. Si vous désirez creuser les fonctionnalités de Razor sans attendre le prochain article, vous pourrez trouver une série de tutoriaux en anglais (http://www.asp.net/webmatrix) et en français (http://msdn.microsoft.com/fr-fr/asp.net/web-webmatrix.aspx) sur les sites ASP.Net et MSDN.