Dans son livre "Développement d'applications Web HTML5 - avec Visual Studio 2015 et TFS", Philippe Didiergeorges nous offre un panorama complet et pragmatique du développement d’applications Web modernes en environnement .Net.
Le livre aborde toutes les composantes du développement d’applications Web avec pour objectif de donner un aperçu de l’ensemble des technologies impliquées, mais aussi d’apporter des conseils et des repères pour en comprendre les enjeux et répondre aux questions qui se posent lors d’une implémentation en contexte professionnel : choix d'architecture, conventions, outillage et cycle de développement, des tests aux déploiements et à la vie en production, en passant par l'organisation des équipes et la gestion de projet.
Un cas d’utilisation concret est utilisé en fil rouge : il s’agit de la mise en œuvre d'une base de critiques de livres. À noter que si certains extraits de code s'appuient sur des versions de Frameworks encore en bêta à l'heure de l'écriture du livre, notamment Entity Framework 7 et ASP.Net 5 (et elles le sont encore à l'écriture de cet article), l'ensemble des exemples est téléchargeable sur le site de l'éditeur et sera remis à jour au fil des versions.
Au-delà des bases nécessaires, JavaScript et CSS, le livre propose des introductions aux Frameworks, langages et outils permettant au développeur d’être tout à fait opérationnel comme AngularJS, LESS, TypeScript ou grunt, sans oublier les nouvelles APIs HTML5. Philippe donne également des conseils spécifiques au développeur .Net pour l’accompagner dans la prise en main des nouveautés d’ASP.Net MVC, de Visual Studio et de TFS.
InfoQ FR s’est entretenu avec l’auteur.
InfoQ FR : Parmi les technologies dont tu parles dans ton livre, on trouve NPM, grunt et gulp, AngularJS, Git. Il semble que l’écosystème .NET s’est résolument tourné vers les solutions ouvertes et largement utilisées par la communauté de développement Web et qu’il y trouve ses nouvelles sources d’inspiration. Peux-tu nous dire quelques mots à ce sujet ?
Philippe : Effectivement, depuis l’arrivée de Satia Nadella à la tête de Microsoft, on a pu remarquer la volonté nouvelle de Microsoft de s’investir dans le monde de l’open source. Les technologies du web ont été les premières concernées avec un meilleur support de NPM, Grunt et Gulp ainsi que des principaux frameworks comme AngularJS, devenus incontournables. On a également assisté à l’apparition d’un nouveau Microsoft, qui se révèle moteur dans l’open source avec par exemple Typescript, très bien accueilli par la communauté JavaScript et l’annonce du partenariat avec Google pour Angular 2 qui sera codé en TypeScript. En ouvrant le code source des nouvelles Versions d’ASP.Net, d’Entity Framework et de .Net Core, Microsoft a confirmé cette nouvelle dynamique et continue sa transformation.
InfoQ FR : L’environnement de développement devient plus abordable également. Quelles sont les possibilités pour des équipes qui souhaitent se lancer rapidement et à moindre coût ?
Philippe : Microsoft a depuis quelques mois commencé à mettre ses outils à disposition de façon gratuite. Le premier de tous était Visual Studio Online : un serveur TFS hébergé sur Azure utilisable de façon gratuite jusqu’à 5 utilisateurs. Cela comprend l’hébergement des sources du projet sur Git ou Team Foundation Version Control, mais aussi les outils de planification et suivi du projet, le système de Build et de Tests automatisés.
Dans un second temps, ce sont les outils du développeur qui sont passés au gratuit avec l’apparition d’une version Community de Visual Studio qui permet d’utiliser gratuitement la dernière version de l’IDE pour les petites entreprises, les projets open source ainsi que les projets personnels. Enfin, lors de l’annonce de la nouvelle version d’ASP.Net, qui peut tourner indifféremment sur Windows, Linux ou MacOS, un tout nouvel éditeur gratuit appelé Code a été mis à disposition des développeurs. Basé sur un fork d’Atom, il est très léger, tourne sur les trois environnements et offre une excellente expérience de développement sur les langages Web et .Net.
Le gros avantage de la solution de Microsoft par rapport à ses concurrents est qu’elle couvre l’intégralité des outils nécessaires à la réalisation d’un projet informatique et qu’elle arrive sous une forme clé en main. Tous les outils sont immédiatement disponibles et faits pour travailler ensemble et l’on n’a pas besoin de passer par de nombreuses phases de configuration des outils. Avec tous ces outils désormais gratuits, il est possible pour les petites structures qui démarrent de disposer des mêmes outils que les grandes sociétés sans aucun coût supplémentaire.
InfoQ FR : Un des freins à l’adoption d’HTML 5 a longtemps été le manque d’outillage, notamment de profiling ou de debugging. Où en sommes-nous à ce sujet ?
Philippe : Avec l’explosion des applications web mono-pages (ou Single Page Applications), les paradigmes ont changé et les développeurs web ont dû commencer à faire face à des problématiques de performance CPU et de gestion de la mémoire. Les premiers outils à avoir évolué sont les outils de développement intégrés aux navigateurs web qui ont fourni des outils de plus en plus avancés dans l’analyse et la recherche des problèmes.
Le problème se pose en revanche pour le debug sur les nombreux modèles d’appareils type tablettes et mobiles. Il est possible de brancher l’appareil à un ordinateur pour un debug à distance mais cela complique grandement l’opération. De plus, la solution n’est pas viable sur toutes les plateformes et tous les navigateurs mobiles. Présenté il y a quelques mois, VorlonJS est un projet Open Source créé par des employés (français !) de Microsoft qui propose une vraie solution à ce problème. Il s’agit d’une version remote, basée sur NodeJS et socket.io des outils de développement proposés dans les navigateurs web, fonctionnant avec tous les appareils accédant à internet. Le système de plugin et l’avancée du développement en font un outil très vite indispensable.
InfoQ FR : Tu donnes des conseils intéressants sur les outils gravitant autour de Visual Studio, sur ses extensions. Quels sont tes outils favoris, ou les incontournables selon toi ?
Philippe : Depuis la version 2010 de Visual Studio, la toute première extension que j’installe en tant que développeur Web est Web Essentials. Développée par Mads Kristensen, membre de l’équipe Visual Studio, cette extension offre depuis sa toute première version des outils avancés pour le développement web qui s’avèrent rapidement indispensables. Les nouveautés apportées par cette extension sont d’ailleurs régulièrement intégrées à Visual Studio en standard par la suite. Il est vrai que Visual Studio 2015 est nettement plus avancé que les versions précédentes pour le développement web, mais elle reste tout de même un complément indispensable à mon sens.
L’extension GitHub for Visual Studio s’impose si vous êtes amenés à travailler avec GitHub, ce qui est presque inévitable de nos jours. Celle-ci ajoute une intégration plus poussée de GitHub au sein du Team Explorer, de la même façon qu’avec Team Foundation Server.
Enfin, mon outil préféré pour travailler avec Visual Studio est sans conteste… NodeJS. Avec l’intégration de Grunt et Gulp à Visual Studio, on se retrouve très rapidement à mettre en place tout un tas de petits outils qui automatisent les petites tâches répétitives du quotidien. La modification d’un fichier lance automatiquement la compilation de l’app et l’exécution des tests unitaires. On se retrouve à véritablement coder “en live” avec un retour immédiat sur nos actions.
InfoQ FR : Tu fais référence à des briques nouvelles ou moins connues liées à TFS comme Release Manager et Application Insight. Peux-tu en parler ?
Philippe : Au fil de ses versions, TFS s’est constamment étoffé de nouveaux outils permettant d’outiller toujours plus d’aspects du cycle de vie d’un projet de développement. Après la gestion des sources, des tâches, de la Build et des Tests, il ne manquait plus que la dernière phase du cycle de vie : le déploiement et le suivi en production. Release Management Studio est l’outil de Microsoft permettant de mettre en place une stratégie de déploiement en production automatisé. Cela comprend la gestion d’un processus complet de validation et la gestion d’environnements multiples. L’outil est très complet et permet de mettre en place le déploiement continu en production, adopté par les plus grandes industries de l’informatique. Applications Insights est l’association d’API de programmation et d’un service hébergé sur Azure permettant de surveiller la disponibilité et l’usage de vos applications en production. Avec ces nouveaux outils, la solution de Microsoft permet de gérer de bout en bout un projet de développement, tout en assurant une qualité de code et une agilité optimale de votre équipe.
InfoQ FR : Merci Philippe.
Vous pouvez suivre et contacter Philippe Didiergeorges depuis son twitter : @DePhiless