Au cours des derniers mois, l'équipe .NET a évalué les moyens de faire évoluer l'écosystème des outils .NET et d'intégrer davantage de fonctionnalités dans VS Code. Actuellement, l'expérience C# dans VS Code est optimisée par OmniSharp. Il a suscité beaucoup d'enthousiasme en apportant l'expérience C# à VS Code, en utilisant les API et les protocoles disponibles à l'époque.
VS Code a depuis évolué et aujourd'hui, le protocole LSP (Language Server Protocol) est devenu le mécanisme standard par lequel les outils de développement modernes communiquent entre eux. Selon Microsoft, le transfert de l'extension C# vers LSP aidera à atteindre l’objectif de créer un environnement d'outils extensible et flexible qui intègre facilement de nouvelles expériences en C# pour VS Code.
Notons que Microsoft gère les deux environnements de développement les plus populaires utilisés aujourd'hui, l'open source VS Code (l'éditeur de code extensible avec plus de 6000 extensions à ce jours) et le propriétaire Visual Studio, et bien que VS Code soit complètement gratuit, certaines extensions critiques que les développeurs peuvent considérer comme faisant partie du produit ne le sont pas.
Dans un sondage auprès des développeurs réalisé par Stack Overflow en 2021, Visual Studio Code a été classé comme l'outil d'environnement de développement le plus populaire, avec 71,06 % des 82 277 répondants déclarant l'utiliser.
Si la plateforme d'exécution et de compilation .NET est open source, le débogueur .NET ne l'est pas, ce qui explique pourquoi un avertissement s'affiche à chaque fois que le débogueur est exécuté : « Vous ne pouvez utiliser le débogueur Microsoft .NET Core (vsdbg) qu'avec Visual Studio Code, Visual Studio ou Visual Studio for Mac. »
L'avertissement qui apparaît lorsque le débogueur .NET est utilisé dans VS Code
Microsoft a l'intention de changer l'extension pour communiquer entièrement en utilisant LSP et prévoit de mettre à jour le composant OmniSharp existant pour communiquer de cette manière également.
Selon Microsoft, l'utilisation de LSP permettra d'apporter de nouvelles fonctionnalités innovantes à l'extension C# pour VS Code. Cela inclut la mise à disposition de capacités avancées et dans certains cas, d'expériences à code fermé, telles qu'IntelliCode. L’entreprise basée à Redmond au États-Unis prévoit de créer un nouveau composant "LSP Tools Host" (ce n'est pas un nom officiel), qui intègre à la fois des composants open source, comme Roslyn et Razor, et des composants closed-source, offrant ainsi un plus large éventail de possibilités d'outils.
Une fois que le "LSP Tools Host" sera terminé, il deviendra l'expérience par défaut de l'extension C# pour VS Code. Les utilisateurs actuels pourront choisir entre le système à source ouverte OmniSharp qui existe aujourd'hui et le nouvel "'hôte d'outils PSL" qui donnera accès à des expériences supplémentaires. Le "LSP Tools Host" ne sera pas open source.
Microsoft semble déterminé à réserver un avantage commercial à ses outils tout en tirant parti de l'open source pour le retour d'information, les contributions et l'adoption : une voie qui serait difficile à emprunter, selon certains analystes.
De l’avis de certains développeurs VS Code .NET, le plan spécifique pour OmniSharp n'est pas une mauvaise nouvelle pour les développeurs. OmniSharp n'utilise pas le protocole LSP (Language Server Protocol) de VS Code, un mécanisme standard de prise en charge des fonctions d'éditeur riche, et le plan consiste à créer un nouvel hôte d'outils LSP à code fermé qui prendra en charge à la fois un OmniSharp mis à jour et des fonctions supplémentaires comme l'IntelliCode propriétaire, également utilisé dans Visual Studio.
Voici, ci-dessous, le calendrier indiqué par Microsoft pour la suite :
- mettre à jour l'extension C# pour VS Code pour communiquer avec OmniSharp Server via LSP par défaut ;
- faire en sorte que l'extension C# pour VS Code utilise par défaut le nouveau "LSP Tools Host" et permette aux utilisateurs de choisir un autre serveur de langue ;
- livrer l'extension C# pour VS Code avec ces nouvelles valeurs par défaut et plus de fonctionnalités "prêtes à l'emploi" ;
- déplacer l'extension C# pour VS Code de github.com/OmniSharp/omnisharp-vscode vers github.com/dotnet/vscode-csharp et demander à l’équipe projet Microsoft de la mettre à jour et de la livrer.
Source : Microsoft
Et vous ?
Quel est votre avis concernant la nouvelle feuille de route de Microsoft pour l'extension VSCode C# ?
Quel commentaire faites-vous de l'avis de Miguel de Icaza, de GNOME qu'il est « vraiment décevant que Microsoft renverse un projet open source actif en introduisant une extension propriétaire pour continuer à verrouiller .NET » ?
Voir aussi :
Visual Studio Code 1.16 est disponible, avec de petites nouveautés pour améliorer la productivité des développeurs
Un développeur efface par erreur trois mois de travail avec Visual Studio Code 1.15 et exprime sa rage dans un billet de blog virulent
Microsoft rend l'extension Visual Studio Code pour Arduino open source, pour offrir une meilleure expérience de dév. IoT sur cette plateforme