Le tour d’horizon de Visual Studio 2022

Le 17 juin 2021, Microsoft dévoilait la première préversion de la prochaine version majeure de son Environnement de Développement Intégré (EDI). Suivie peu de temps après par les préversions 2 et 3, les 14 juillet et 10 août, cette version estampillée 2022 n’a cessé d’accueillir toujours plus de nouveautés.

Nous vous proposons de passer en revue tout ce que Microsoft a révélé en avant-première. Suivez le guide !  

Le petit coup de polish

Pour commencer, Microsoft a porté son attention sur l’esthétique. Parmi les changements qui ne manqueront pas de vous sauter aux yeux, les équipes de Microsoft ont redessiné certaines icônes, les aplats de couleurs cédant leur place à des remplissages semi-transparents et des traits globalement affinés.

 

Un autre élément notable est la police utilisée à travers l’EDI, car le traditionnel Consolas sera écarté pour laisser place à Cascadia. Cette police open-source de Microsoft, que l’on retrouve d’ailleurs dans le nouveau Windows Terminal, voit son intérêt au sein de Visual Studio grâce à sa déclinaison Cascadia Code, qui apporte les ligatures pour une bonne partie des opérateurs et décorations courantes dans du code. Tout ceci vise à gagner en lisibilité dans l’éditeur.

Le thème sombre a également subi quelques modifications dans la troisième prévisualisation pour limiter le risque de fatigue oculaire. En ce sens, la couleur d’accent bleu cyan tire sa révérence pour devenir violette, plus proche de l’identité visuelle de Visual Studio.
 

Nouvelles technos et autres bonnes nouvelles

Avec cette nouvelle interface légèrement remaniée, les utilisateurs de Visual Studio 2022 pourront s‘essayer à de nouvelles technologies, en particulier le tant attendu .NET 6 dont la mise en production est prévue en novembre. Blazor, quant à lui, reste bien entendu de la partie, de même que le framework .NET Multi-platform App UI (.NET MAUI) qui remplacera Xamarin. Les développeurs C++, de leur côté, disposeront du langage dans sa version 20 et de ses outils de génération en version 143.

Les profils orientés frontend y trouveront également leur bonheur grâce à de nouveaux modèles de projets basés sur les frameworks front JavaScript / TypeScript les plus répandus, à savoir Angular, React et Vue.js. Ces nouveaux modèles sont déclinés dans une version autonome (standalone) et une version liée à un backend ASP.NET Core.

Enfin, un point d’honneur semble avoir été mis pour faciliter le développement d’applications multiplateformes, en témoignent la prise en charge de projets Linux basés sur CMake ou MSBuild, ainsi que la possibilité de générer voire déboguer des applications à travers une machine virtuelle Windows Subsystem for Linux (WSL), sans avoir recours à une connexion SSH.
 

Le concepteur de projet fait peau neuve

Avec la préversion 3 de cette version 2022, Visual Studio a entièrement revu le concepteur de projet. Également accessible via les propriétés du projet, ce nouveau concepteur s’organise désormais autour d’une seule colonne, cette fois-ci subdivisée en sections repliables et le tout intégré dans la charte graphique de Visual Studio. De même, cette nouvelle mise en page accueille un module de recherche, utile pour modifier une propriété précise sans avoir à naviguer pour retrouver son emplacement. Enfin, les néophytes apprécieront la présence de descriptions autour de chaque propriété afin de les guider au mieux.


Hot reload, everywhere !

Tel est le credo choisi lors de l’annonce de cette nouveauté. En effet depuis la présentation de la deuxième préversion, le Hot Reload a fait son apparition dans Visual Studio. Ce mécanisme simplifie les sessions de débogage en poussant du nouveau code à la volée lorsqu’une modification est détectée. Dès à présent, nul besoin d’arrêter puis relancer une nouvelle session à chaque changement ! Ce mécanisme se révèle d’autant plus appréciable, sachant le temps que peut demander l’opération sur des projets de grande envergure.

A ce jour, le Hot Reload ne supporte que les projets MSBuild en C++, mais le support devrait s’élargir a minima aux applications Blazor, .NET MAUI, WebAssembly, et s’appliquer aux feuilles de style (CSS) le cas échéant. Microsoft a également annoncé vouloir étendre ce principe de Hot Reload au processus de publication / déploiement du code, ce qui permettrait aux applications en production d’être mises à jour sans temps d’interruption.

Live Preview

Toujours dans cette idée de gagner du temps lors de la conception d’interfaces, peut-être avez-vous déjà utilisé l’extension Web Live Preview de Microsoft ? Cette extension propose, pour les projets ASP.NET, de refléter le code source de la vue dans le HTML rendu en temps réel, sans même attendre le rafraîchissement de la page.

Avec l’arrivée de Visual Studio 2022, une mise à jour de l’extension a déjà été déployée pour prendre en charge les champs liés à une source de données ; mais surtout, cette notion de rendu en direct est étendue aux applications WPF grâce à XAML Live Preview.

Actuellement, XAML Live Preview propose déjà, durant une session de débogage, d’inspecter chaque fenêtre en défilant ou zoomant sur l’aperçu, mais également de positionner des règles afin de vérifier les espacements et / ou positions des différents contrôles. Ces derniers sont également sélectionnables, afin d’inspecter leurs propriétés. Pour les applications utilisant plusieurs fenêtres simultanément, une liste déroulante est disponible afin de forcer l’aperçu sur l’une d’elles (par défaut, le rendu sera celui de la fenêtre principale).


Du mieux pour l’accessibilité de vos développements

Pour aider les développeurs à rendre leurs applications accessibles, la firme de Redmond disposait d’un outil en interne nommé Accessibility Insights, dont le but est d’analyser des interfaces afin de signaler les problèmes d’accessibilité.

Après l’avoir rendu disponible à tous en tant que standalone en 2019 (extension Chromium pour les pages web, applicatif lourd pour interfaces desktop et Android, code source sur GitHub), Accessibility Insights devrait être intégré dans Visual Studio 2022, même si Microsoft n’a pas encore apporté de détails sur cette intégration.

En intégrant le moteur d’Accessibility Insights au cœur de Visual Studio, vos différentes interfaces graphiques pourront être analysées en temps réel afin de signaler les problématiques d’accessibilité de manière proactive et ainsi éviter leur apparition en production. In fine, si les recommandations sont effectivement suivies et les erreurs corrigées, vos applications devraient être éligibles au standard WCAG (Web Content Accessibility Guidelines) proposé par le World Wide Web Consortium (W3C).
 

Des applications hébergées dans le cloud plus attrayantes

Afin de promouvoir son offre cloud, Microsoft compte promouvoir la mise en place d’applications basées sur Azure dans Visual Studio. A destination des non-initiés, cela prendra la forme d’exemples validés par la communauté dont le code source est disponible, exemples dont l’architecture servira de modèle.

Ainsi, quiconque désire créer une application similaire aura à disposition une solution clé en main, contenant tous les éléments infrastructure-as-code permettant de provisionner toutes les ressources nécessaires dans Azure, la définition de la stratégie d’intégration et de déploiement continus. Ainsi, à la création du projet, celui-ci est déjà prêt à être déployé, et les développeurs peuvent se focaliser sur son développement.
 

Des points d’arrêts en tout genre


Avec cette nouvelle version de l’EDI, les points d’arrêts seront plus complets que jamais : comme sur Rider, le concurrent développé par JetBrains ; Visual Studio 2022 permettra de créer des liens de dépendance entre différents points d’arrêts (rendre un point d’arrêt B actif uniquement si le point d’arrêt A a été atteint), et ajoutera également la notion de point d’arrêt temporaire (supprimé après avoir été atteint).

Pour rendre plus intuitive la manipulation de ces points d’arrêts, les lignes éligibles à les accueillir seront indiquées au survol de la souris par l’apparition de l’icône de manière semi-transparente. Ensuite, un clic droit permettra de créer au choix : un point d’arrêt conditionnel, temporaire, ou un point de trace en un clic. Enfin, les points créés pourront être déplacés à la manière du curseur, en les glissant d’une ligne à une autre.

 

Des petites nouveautés çà et là pour une meilleure expérience

Similaire à dotPeeks, un autre produit de JetBrains, l’EDI de Microsoft serait désormais capable de décompiler des librairies en l’absence de code source afin de donner un aperçu de l’implémentation, par exemple dans le cas où votre code reposerait sur une librairie externe. Plus simplement, si ladite libraire est open-source, Visual Studio prendra l’initiative de télécharger le code source afin de donner un aperçu sans passer par cette phase de décompilation. Ces sources externes seront regroupées dans l’explorateur de solution, directement sous la solution dans une section intitulée “Sources Externes”.

Autre évolution, cette fois-ci concernant la recherche de code avec l’ajout d’une nouvelle portée. Celle-ci permet de rechercher au-delà de la solution actuelle, le but étant de retrouver l’extrait de code recherché, peu importe la solution dans laquelle il se trouve.

D’autres nouveautés visent à simplifier la surveillance de votre application et délimiter les parties sensibles de votre code, avec notamment le flame chart, un nouveau graphique dont le but est de mettre en évidence les chemins de code dits réactif (ou à chaud), c’est-à-dire les plus régulièrement utilisés et / ou les plus demandeurs en ressources.

Visual Studio 2022 dote l’explorateur de tests d’une nouvelle liste déroulante afin de choisir l’environnement d’exécution. Ainsi les développeurs d’applications multiplateformes peuvent valider la bonne exécution de ces tests, non seulement dans leur environnement local, mais également dans des containers Linux avec le SDK .NET correspondant, dans des machines virtuelles Linux grâce à WSL ou dans toute autre machine connectée par SSH, couvrant ainsi plus de configurations différentes, et surtout bien plus simplement qu’auparavant.


De son côté, IntelliCode, la version assistée par l’IA d’IntelliSense, s’est déjà démarquée depuis son intégration dans les précédentes éditions de Visual Studio par sa capacité à prédire l’intention des développeurs à travers son système d’auto-complétion. Pour la version 2022 de l’EDI made in Microsoft, IntelliCode s’est encore amélioré afin de proposer, à partir d’un simple mot-clé, de construire le reste de la ligne de code. A terme, l’objectif pour IntelliCode est de suggérer, à l’instar de GitHub Copilot, des implémentations complètes. La finalité pour Microsoft est multiple : proposer une expérience dans laquelle moins de temps est perdu sur des particularité syntaxiques propres à chaque langage de programmation au profit de la conception générale de vos algorithmes, et guider les profils les moins expérimentés en leur proposant des extraits de code “propre” pour in fine éradiquer les code smells.


Si toutefois IntelliCode ne suffit pas et que vous cherchez à solliciter l’aide de quelqu’un, vous aurez sans doute recours à Live Share. Cet outil, intégré à Visual Studio, sert à créer des sessions de développement collaboratif en temps réel.

Avec Visual Studio 2022, Live Share se dote de nouvelles fonctionnalités parmi lesquelles un chat textuel afin d’échanger au sein de la session et éviter d’avoir à changer de contexte en basculant sur une application tierce, ou encore la possibilité de mettre en place des sessions récurrentes grâce à la génération de liens réutilisables.

Enfin, les organisations pourront mettre en place leur propre politique de sécurité sur les sessions de partage, notamment pour bloquer le partage de terminal avec accès d’écriture sur des machines dites sensibles.
 

Devenv passe au 64-bits

Une des premières nouveautés annoncées n’est pas tant une fonctionnalité inédite qu’un changement dans le fonctionnement “sous le capot” de l’éditeur. En effet, Visual Studio 2022 fait un bond en avant, puisque son processus principal (devenv.exe) deviendra un processus 64-bits. Ainsi, il pourra exploiter plus de 4Go de mémoire vive, et éviter les erreurs Out-Of-Memory lors du chargement de solutions volumineuses.

De plus, les performances devraient s’accroître pour les ordinateurs possédant une architecture 64-bits puisque Visual Studio 2022 n’aura plus besoin d’être exécuté à travers la couche de compatibilité Windows on Windows64 (WoW64). Rassurez-vous, même si l’EDI fonctionne désormais sur 64-bits, vos applications resteront malgré tout compilables pour des plateformes 32-bits.

Microsoft a annoncé des temps de chargement 2,5 fois plus rapide. Pour valider le gain annoncé bien que la solution utilisée par l’éditeur pour sa propre démonstration ne soit pas disponible, nous avons réalisé quelques essais avec le code source du framework aspnetcore disponible sur GitHub.

Composé de 518 projets pour un poids total de 2Go, l’ampleur de la solution devrait nous permettre de mettre en exergue le gain potentiel. Pour cela, nous avons procédé ainsi : sur une même machine, nous avons tout d’abord lancé la dernière version en date de Visual Studio 2019, puis chronométré plusieurs actions comme le chargement complet de la solution et son déchargement. Après un redémarrage complet, nous avons répété la séquence cette fois-ci avec Visual Studio 2022 (preview 3.1 au moment du test).

Quelques précisions sur l’environnement de test : il s’agit d’un ordinateur exécutant Windows 10 Pro en 64 bits qui est équipé de 16Go de RAM dont au moins 10 de libres, et les différentes versions de Visual Studio ainsi que la solution ont été installées sur un disque dur type NVMe pour limiter le risque de goulot d’étranglement.


A l’issue de ces quelques tests, nous validons d’ores et déjà la démonstration de Microsoft puisque lors du chargement de la solution, le processus devenv.exe a volontiers utilisé plus de 5.1Go de RAM, prouvant l’intérêt pour Visual Studio de passer au 64-bits. De plus, certains chargements ont effectivement été réduits drastiquement avec Visual Studio 2022 (~2.3x plus rapide pour le chargement, ~2.5x plus rapide au déchargement).


Côté pomme

Enfin, les utilisateurs de Visual Studio for Mac ne sont pas en reste, puisque Microsoft a réservé plusieurs nouveautés à cette déclinaison. La nouveauté majeure est la migration d’une bonne partie du code de l’interface de Visual Studio for Mac sur du code natif. Ce changement permettra notamment de prendre en compte les options d’accessibilité sélectionnées au niveau du système d’exploitation, et globalement d’améliorer les performances et la stabilité de l’EDI. L’autre priorité est de réduire le delta entre l’expérience Visual Studio sur Mac par rapport à Windows. En ce sens, la terminologie et certains menus ont déjà été unifiés, et l’intégration de Git serait à terme entièrement disponible dans Visual Studio for Mac. Dans cette preview, nous pouvons d’ores et déjà utiliser la fenêtre « Git Changes » pour inclure / exclure des modifications avant de commit, et d’autres fonctionnalités devraient apparaître au fil des versions.
 

Avec cette version 2022, Microsoft promeut Visual Studio comme l’EDI vous permettant d’atteindre la meilleure productivité possible. Cette idée se retrouve au travers de la pléthore d’outils intégrés, et des nouvelles fonctionnalités comme le Hot Reload et le passage au 64-bits qui allègent plusieurs opérations chronophages. Également, les nombreux modèles désormais accessibles à la création d’un projet servent ce propos en permettant aux développeurs de se focaliser sur le contenu de leur application en éludant une bonne partie de la phase d’initialisation du projet.

Visual Studio 2022 illustre la stratégie de Microsoft des dernières années qui est de séduire la communauté open-source et l’écosystème Linux. Cette volonté se reflète dans l’éventail des stacks techniques utilisables dans son EDI qui se diversifie en intégrant les tendances actuelles. L’interface quant à elle est mise à jour pour la rendre plus légère et attrayante auprès de cette nouvelle cible.

Finalement, Visual Studio 2022 vaut-il le détour ? D’après les annonces et ce qui est déjà disponible dans cette préversion : oui. Et nous ne pouvons que vous conseiller d’effectuer la bascule si vous utilisez déjà une version précédente de Visual Studio ou au moins, d’en faire l’essai si vous avez opté pour un autre environnement.

En revanche, peut-être serait-il plus judicieux de patienter quelques mois et attendre la première version “stable” prévue en novembre avant de vous plonger dedans. Nous aurions également tendance à mettre quelques réserves sur la déclinaison Visual Studio for Mac, en raison du retard accumulé par rapport à la version Windows, même si ce retard tend à se réduire !
 

Article initialement paru dans Programmez! #249