Qu’attendre de Visual Studio 2015 ?

14On n’est pas sûr que le nom commercial de Visual Studio “14” soit Visual Studio 2015, mais ça paraitrait logique. Bon, parions sur VS2015 en attendant. Quoiqu’il en soit, la CTP4 est sortie courant octobre, et nous commençons à avoir une idée précise de son contenu. Plusieurs changements majeurs sont prévus avec cette nouvelle version de l’IDE. D’une part, le changement de cap abordé avec l’intégration d’OWIN/Katana prend brutalement une nouvelle envergure avec ASP.NET vNext. Ensuite, nous voyons enfin l’arrivée de Roslyn, qui vient remplacer le bon vieux CSC.exe. Enfin, pas mal de choses évoluent du côté de C++. Nous les évoquerons rapidement.

ASP.NET vNext

ASP.NET a toujours rapidement évolué. Le monde du web ne laisse à Microsoft de toute façon pas le choix. Webforms, MVC, WCF, Web API, SignalR, Owin+Katana… On ne peut pas dire que la stack web de MS n’ait jamais bougé. Mais ASP.NET vNext va considérablement changer les choses. On parle vraiment d’une rupture majeure, d’une réécriture complète, et pas “simplement” de l’ajout d’une nouvelle brique.

Au menu des nouveautés :

  • La stack complète est Open Source. Rien que ça. Le code complet est disponible sur GitHub.
  • L’ensemble est totalement modulaire et composable : n’utilisez que les composants (du Framework .NET ou autre) dont vous avez besoin.
  • Le développement comme l’hébergement peuvent se faire sur Windows, mais aussi sur Mac et Linux, puisque Mono est supporté (et fait même partie du protocole de test).
  • TOUT se passe via NuGet : les dépendances, et même le runtime.
  • Des applications peuvent tourner en parallèle sur un même serveur avec des versions différentes d’un même composant.
  • ASP.NET MVC, Web API et Web Pages sont fusionnés et combattent maintenant ensemble sous l’étendard MVC 6.
  • Grâce à Roslyn et la compilation à la volée, nous pourrons modifier à chaud le code serveur sans avoir à redémarrer l’application.
  • La configuration est agnostique du déploiement, et l’on pourra déployer vers un IIS local comme vers le Azure de façon transparente
  • L’injection de dépendances est supportée nativement.

Vous l’aurez compris, nous allons devoir apprendre un tas de choses. Mais on risque de bien s’amuser. Et si on prend un pas de recul, c’est encore un pas en avant vers le déploiement modulaire du Framework .NET, amorcé par le déploiement de Entity Framework et SignalR via NuGet, par exemple. Et si on recule encore un peu, on peut voir qu’avec l’arrivée de choses comme Docker sur Azure, on sent venir la fin des OS monolithiques, et que l’on va clairement vers une mécanique de ressources à la demande. D’ailleurs, ASP.NET vNext n’a même pas besoin de Visual Studio. Un éditeur de texte et quelques lignes de commande suffisent.

Roslyn

Adieu, CSC.exe. Tu nous auras rendus de fiers services. Mais tu étais devenu un peu trop boîte noire. Donc bienvenue Roslyn ! Roslyn est donc le nouveau compilateur pour langages .NET. Mais pas que. Historiquement, le compilateur mange en entrée des fichiers texte et recrache des binaires. Roslyn découpe le processus en plusieurs étapes et expose des points d’entrée à chacune de ces étapes :

Roslyn1

Source : https://roslyn.codeplex.com/wikipage?title=Overview&referringTitle=Home

Donc non seulement Roslyn remplace le vieux compilateur, mais en plus expose une API permettant d’intéragir avec le code. Vous pourrez donc écrire vos propres analyseurs et outils de refactoring. Le petit monde des outils comme Resharper, Code Rush, FxCop, Gendarme, etc. risque de s’en retrouver chamboulé. Nous pouvons imaginer sans peine l’arrivée d’un nombre conséquents de nouveaux outils.

Avec Roslyn, l’ensemble des utilitaires de refactoring (renommage, extraction de méthode, Go To Definition, usings) de Visual Studio ont été réécrits. Quelques petits nouveaux font également leur apparition. Nous les verrons plus en détail dans un autre article.

Nous pouvons également envisager tout une nouvelle catégorie d’outils. En tant que développeur de librairie ou d’API, vous pourrez remplacer votre documentation statique par des indications directement dans le code, un peu comme un tutoriel ingame dans un jeu vidéo. Cela pourrait changer considérablement la manière dont nous fonctionnons. Sans parler de l’apprentissage des bonnes pratiques.

Et pour ne rien gâcher, Roslyn est également Open Source. Toutes les ressources et le code sont disponibles sur CodePlex.

… et tout le reste

  • pas mal de nouveautés côté C++ avec le support de fonctionnalités de la norme  C++ 10/14.
  • un nouveau compilateur JIT 64bits : RyuJIT
  • un nouvel écran de gestion des points d’arrêt, avec support d’Intellisense (enfin !)
  • Peek Definition dans l’éditeur Xaml pour pouvoir visualiser et modifier à chaud

Voilà. Pas mal de nouveautés, après un Visual Studio 2013 qui était plus une consolidation de VS2012 qu’une vraie majeure. L’IDE lui-même ne devrait pas subir de bouleversements (à moins que…). Mais de gros changements côté code et coté web.