Présentation de VisualStudio.Extensibility pour les utilisateurs VSSDK
Bien que les extensions aient généralement été chargées dans le processus Visual Studio, VisualStudio.Extensibility apporte la plupart des extensions Visual Studio hors processus. Ce modèle hors processus permet de créer des extensions plus fiables et performantes. La documentation suivante décrit :
- Architecture générale du nouveau modèle d’extensibilité
- Comment tirer parti des API du nouveau modèle d’extensibilité
- Comment compiler et déboguer une extension F5 avec le nouveau modèle
- Ressources et exemples de code pour commencer à écrire une extension avec le nouveau modèle
À propos du modèle VisualStudio.Extensibility
Le nouveau modèle VisualStudio.Extensibility vise à résoudre de nombreux problèmes rencontrés par les développeurs lors de l’utilisation et de l’écriture d’extensions dans Visual Studio à l’aide de l’ancien modèle. Ces problèmes incluent :
- Blocages et blocages causés par l’extension de Visual Studio et d’autres extensions installées
- Documentation et API incohérentes et obsolètes, exigences en matière d’expertise spécialisée et architecture écrasante
- Redémarrage de Visual Studio requis pour installer des extensions
- Aucune prise en charge de .NET Core
L’écriture d’extensions à l’aide de VisualStudio.Extensibility offre les avantages suivants :
- Fiabilité accrue : les extensions écrites avec le nouveau modèle sont obsolètes et ne bloquent pas l’interface utilisateur de Visual Studio. Cela signifie que si l’extension se bloque, VS ne se bloque pas en conséquence.
- Complexité réduite des API : l’API du nouveau modèle a été créée à partir du terrain pour être plus cohérente et plus facile à implémenter tout en conservant les fonctionnalités avancées de l’ancien modèle.
- .NET Uniquement : pour bénéficier des dernières améliorations apportées à .NET et C#, le nouveau modèle d’extensibilité prend uniquement en charge .NET pour l’hébergement hors processus et est hébergé dans un processus .NET.
- Prise en charge de .NET Core : les extensions hors processus peuvent tirer parti de la prise en charge des versions plus récentes de .NET et des avantages qu’elles apportent.
- Fonctionnalité de chargement à chaud : les extensions écrites à l’aide du nouveau modèle peuvent être installées et chargées sans avoir à redémarrer Visual Studio (à l’exception des extensions qui nécessitent les prérequis du composant Visual Studio qui n’ont pas encore été installés).
- Plateforme inter-UC : étant donné que l’implémentation sous-jacente est basée sur des services répartités compatibles RPC et est basée sur .NET, toutes les extensions s’exécutent sur toutes les plateformes d’UC prises en charge par le runtime .NET.
Technologies
Le modèle VisualStudio.Extensibility est principalement basé sur les contrats RPC fournis en tant que services répartiteurs à partir de Visual Studio. Les extensions sont hébergées dans un processus ServiceHub externe qui communique avec Visual Studio via RPC. Les extensions utilisent tous deux les services fournis par Visual Studio et peuvent également fournir des services au processus Visual Studio dans certains cas.
Les packages d’extensibilité fournis dans le cadre du Kit de développement logiciel (SDK) sont constitués de classes de base, de méthodes utilitaires et d’objets wrapper autour de ces contrats RPC, afin de faciliter l’utilisation et la découverte de la surface d’extensibilité. Notre objectif est de faciliter la contribution rapide des auteurs d’extensions à l’écosystème Visual Studio.
Contenu connexe
Pour plus d’informations, case activée ces documents et procédures pas à pas pour commencer :