Dans le kit SDK Visual Studio

Cette section fournit des informations détaillées sur les extensions Visual Studio, notamment l’architecture Visual Studio, les composants, les services, les schémas, les utilitaires et les éléments suivants.

Architecture d’extensibilité

L’illustration suivante montre l’architecture d’extensibilité Visual Studio. Les VSPackages fournissent des fonctionnalités d’application, qui sont partagées entre l’IDE en tant que services. L’IDE standard offre également un large éventail de services, tels que SVsUIShell, qui fournissent l’accès à la fonctionnalité de fenêtrage de l’IDE.

Environment Architecture graphic Vue généralisée de l’architecture de Visual Studio

VSPackages

Les VSPackages sont des modules logiciels qui constituent et étendent Visual Studio avec des éléments, des services, des projets, des éditeurs et des concepteurs d’interfaces utilisateur. Les VSPackages sont l’unité architecturale centrale de Visual Studio. Pour plus d'informations, consultez VSPackages.

Visual Studio Shell

L’interpréteur de commandes Visual Studio fournit des fonctionnalités de base et prend en charge la communication croisée entre ses composants VSPackages et ses extensions MEF. Pour plus d’informations, consultez Visual Studio Shell.

Conseils sur l’expérience utilisateur

Si vous envisagez de concevoir de nouvelles fonctionnalités pour Visual Studio, vous devez consulter ces instructions pour obtenir des conseils de conception et d’utilisation : Instructions relatives à l’expérience utilisateur visual Studio.

Commandes

Les commandes sont des fonctions qui accomplissent des tâches, comme l’impression d’un document, l’actualisation d’une vue ou la création d’un fichier.

Lorsque vous étendez Visual Studio, vous pouvez créer des commandes et les inscrire auprès de l’interpréteur de commandes Visual Studio. Vous pouvez spécifier la façon dont ces commandes s’affichent dans l’IDE, par exemple, dans un menu ou une barre d’outils. En règle générale, une commande personnalisée apparaît dans le menu Outils et une commande permettant d’afficher une fenêtre d’outil apparaît dans le sous-menu Autres Fenêtres du menu Affichage .

Lorsque vous créez une commande, vous devez également créer un gestionnaire d’événements pour celui-ci. Le gestionnaire d’événements détermine quand la commande est visible ou activée, vous permet de modifier son texte et garantit que la commande répond de manière appropriée lorsqu’elle est activée. Dans la plupart des cas, l’IDE gère les commandes à l’aide de l’interface IOleCommandTarget . Les commandes dans Visual Studio sont gérées à partir du contexte de commande le plus interne, en fonction de la sélection locale, et passent au contexte le plus externe, en fonction de la sélection globale. Les commandes ajoutées au menu principal sont immédiatement disponibles pour les scripts.

Pour plus d’informations, consultez Commandes, menus et barres d’outils.

Les menus et les barres d’outils permettent aux utilisateurs d’appeler des commandes. Les menus sont des lignes ou des colonnes de commandes qui s’affichent généralement sous forme d’éléments de texte individuels en haut d’une fenêtre d’outil. Les sous-menus sont des menus secondaires qui s’affichent lorsqu’un utilisateur clique sur des commandes qui incluent une petite flèche. Les menus contextuels s’affichent lorsqu’un utilisateur clique avec le bouton droit sur certains éléments d’interface utilisateur. Certains noms de menu courants sont Fichier, Édition, Affichage et Fenêtre. Pour plus d’informations, consultez Extension des menus et des commandes.

Les barres d’outils sont des lignes ou des colonnes de boutons et d’autres contrôles, tels que les zones de liste déroulante, les zones de liste et les zones de texte. Les boutons de barre d’outils ont généralement des images d’icône, telles qu’une icône de dossier pour une commande Ouvrir un fichier ou une imprimante pour une commande Imprimer . Tous les éléments de barre d’outils sont associés aux commandes. Lorsque vous cliquez sur un bouton de barre d’outils, sa commande associée s’exécute. Dans le cas d’un contrôle déroulant, chaque élément de la liste déroulante est associé à une commande différente. Certains contrôles de barre d’outils, tels qu’un contrôle de fractionnement, sont des hybrides. Un côté du contrôle est un bouton de barre d’outils et l’autre côté est une flèche vers le bas qui affiche plusieurs commandes lorsqu’il est cliqué.

Fenêtres d'outils

Les fenêtres d’outils sont utilisées dans l’IDE pour afficher des informations. Boîte à outils, Explorateur de solutions, fenêtre Propriétés et Navigateur web sont des exemples de fenêtres d’outils.

Les fenêtres d’outils offrent généralement différents contrôles avec lesquels l’utilisateur peut interagir. Par exemple, la fenêtre Propriétés permet à l’utilisateur de définir des propriétés d’objets qui servent un objectif particulier. La fenêtre Propriétés est spécialisée dans ce sens, mais également générale, car elle peut être utilisée dans de nombreuses situations différentes. De même, la fenêtre Sortie est spécialisée, car elle fournit une sortie basée sur du texte, mais générale, car de nombreux sous-systèmes de Visual Studio peuvent l’utiliser pour fournir une sortie à l’utilisateur Visual Studio.

Considérez l’image suivante de Visual Studio, qui contient plusieurs fenêtres d’outils :

Screen shot

Certaines fenêtres d’outils sont ancrées ensemble sur un seul volet qui affiche la fenêtre d’outils Explorateur de solutions et masque les autres fenêtres d’outils, mais les rend disponibles en cliquant sur des onglets. L’image montre deux autres fenêtres d’outils, la fenêtre Liste d’erreurs et Sortie , ancrées ensemble dans un seul volet.

Il s’agit également du volet principal du document, qui affiche plusieurs fenêtres d’éditeur. Bien que les fenêtres outil aient généralement une seule instance (par exemple, vous ne pouvez ouvrir qu’une seule Explorateur de solutions), les fenêtres d’éditeur peuvent avoir plusieurs instances, chacune utilisée pour modifier un document distinct, mais toutes sont ancrées dans le même volet. L’image montre un volet de document qui a deux fenêtres d’éditeur, une fenêtre de concepteur de formulaires. Toutes les fenêtres du volet de document sont disponibles en cliquant sur des onglets, mais la fenêtre de l’éditeur qui contient le fichier EditorPane.cs est visible et active.

Lorsque vous étendez Visual Studio, vous pouvez créer des fenêtres d’outils qui permettent aux utilisateurs de Visual Studio d’interagir avec votre extension. Vous pouvez également créer vos propres éditeurs qui permettent aux utilisateurs de Visual Studio de modifier des documents. Étant donné que vos fenêtres et éditeurs d’outils seront intégrés à Visual Studio, vous n’avez pas besoin de les programmer pour ancrer ou afficher correctement sur un onglet. Lorsqu’ils sont correctement inscrits dans Visual Studio, ils disposent automatiquement des fonctionnalités classiques des fenêtres d’outils et des fenêtres de document dans Visual Studio. Pour plus d’informations, consultez Extension et personnalisation de Windows de l’outil.

Fenêtres de document

Une fenêtre de document est une fenêtre enfant encadrée d’une fenêtre MDI (Multiple Document Interface). Les fenêtres de document sont généralement utilisées pour héberger des éditeurs de texte, des éditeurs de formulaires (également appelés concepteurs) ou des contrôles d’édition, mais ils peuvent également héberger d’autres types fonctionnels. La boîte de dialogue Nouveau fichier inclut des exemples de fenêtres de document que Visual Studio fournit.

La plupart des éditeurs sont spécifiques à un langage de programmation ou à un type de fichier, tels que des pages HTML, des framesets, des fichiers C++ ou des fichiers d’en-tête. En sélectionnant un modèle dans la boîte de dialogue Nouveau fichier , un utilisateur crée dynamiquement une fenêtre de document pour l’éditeur du type de fichier associé au modèle. Une fenêtre de document est également créée lorsqu’un utilisateur ouvre un fichier existant.

Les fenêtres de document sont limitées à la zone cliente MDI. Chaque fenêtre de document a un onglet en haut et l’ordre de tabulation est lié à d’autres fenêtres qui peuvent être ouvertes dans la zone MDI. Le fait de cliquer avec le bouton droit sur l’onglet d’une fenêtre de document affiche un menu contextuel qui inclut des options permettant de fractionner la zone MDI en plusieurs groupes d’onglets horizontaux ou verticaux. Le fractionnement de la zone MDI permet d’afficher plusieurs fichiers en même temps. Pour plus d’informations, consultez Document Windows.

Éditeurs

L’éditeur Visual Studio vous permet de le personnaliser et de l’utiliser pour votre propre type de contenu à l’aide de l’infrastructure d’extensibilité managée (MEF). Dans de nombreux cas, vous n’aurez pas besoin de créer un VSPackage pour étendre l’éditeur, bien que si vous souhaitez inclure des fonctionnalités à partir de l’interpréteur de commandes (par exemple, une commande de menu ou une touche de raccourci), vous pouvez combiner une extension MEF avec un VSPackage.

Vous pouvez également créer un éditeur personnalisé, par exemple si vous souhaitez lire et écrire dans une base de données, ou si vous souhaitez utiliser un concepteur. Vous pouvez également utiliser un éditeur externe tel que Bloc-notes Windows ou Microsoft WordPad. Pour plus d’informations, consultez Les extensions du service de langage et de l’éditeur.

Language Services

Si vous souhaitez que l’éditeur Visual Studio prend en charge les nouvelles mot clé de programmation ou même un nouveau langage de programmation, vous créez un service de langage. Chaque service de langage peut implémenter certaines fonctionnalités de l’éditeur entièrement, partiellement ou pas du tout. Selon la configuration, le service de langage peut fournir la mise en surbrillance de la syntaxe, la correspondance entre accolades, la prise en charge d’IntelliSense et d’autres fonctionnalités de l’éditeur.

Au cœur d’un service de langage, il s’agit d’un analyseur et d’un scanneur. Un scanneur (ou lexer) divise un fichier source en éléments appelés jetons, et un analyseur établit les relations entre ces jetons. Lorsque vous créez un service de langage, vous devez implémenter l’analyseur et le scanneur afin que Visual Studio puisse comprendre les jetons et la grammaire de la langue. Vous pouvez créer des services linguistiques managés ou non managés. Pour plus d’informations, consultez Extensibilité du service de langage hérité.

Projets

Dans Visual Studio, les projets sont les conteneurs que les développeurs utilisent pour organiser et générer le code source et d’autres ressources. Les projets vous permettent d’organiser, de générer, de déboguer et de déployer du code source, de références aux services web et aux bases de données, ainsi qu’à d’autres ressources. Les VSPackages peuvent étendre le système de projet Visual Studio en fournissant des types de projet, des sous-types de projet et des outils personnalisés.

Les projets peuvent également être regroupés dans une solution, qui est un regroupement d’un ou plusieurs projets qui fonctionnent ensemble pour créer une application. Les informations de projet et d’état relatives à la solution sont stockées dans deux fichiers solution, le fichier de solution texte (.sln) et le fichier d’option utilisateur de solution binaire (.suo). Ces fichiers sont similaires aux fichiers de groupe (.vbg) utilisés dans les versions antérieures de Visual Basic, ainsi que les fichiers d’options utilisateur (.dsw) et d’espace de travail (.opt) utilisés dans les versions antérieures de C++.

Pour plus d’informations, consultez Projets et solutions.

Modèles de projet et d’élément

Visual Studio inclut des modèles de projet prédéfinis et des modèles d’élément de projet. Vous pouvez également créer vos propres modèles ou acquérir des modèles à partir de la communauté, puis les intégrer à Visual Studio. MSDN Code Gallery est l’endroit où accéder aux modèles et aux extensions.

Les modèles contiennent la structure de projet et les fichiers de base requis pour générer un type particulier d’application, de contrôle, de bibliothèque ou de classe. Lorsque vous souhaitez développer des logiciels qui ressemblent à l’un des modèles, créez un projet basé sur le modèle, puis modifiez les fichiers de ce projet.

Remarque

Cette architecture de modèle n’est pas prise en charge pour les projets Visual C++.

Pour plus d’informations, consultez Ajout de modèles de projet et d’élément de projet.

Propriétés et options

La fenêtre Propriétés affiche les propriétés d’éléments uniques ou multiples sélectionnés : l’extension des pages Options de propriétés contient des ensembles d’options relatives à un composant particulier, comme un langage de programmation ou un VSPackage : options et pages d’options. Paramètres sont généralement des fonctionnalités liées à l’interface utilisateur qui peuvent être importées et exportées : Prise en charge des Paramètres utilisateur.

Services Visual Studio

Un service fournit un ensemble spécifique d’interfaces pour que les composants consomment. Visual Studio fournit un ensemble de services qui peuvent être utilisés par tous les composants, y compris les extensions. Par exemple, les services Visual Studio permettent aux fenêtres d’outils d’être affichées ou masquées dynamiquement, d’activer l’accès aux événements d’aide, de barre d’état ou d’interface utilisateur. L’éditeur Visual Studio fournit également des services qui peuvent être importés par les extensions de l’éditeur. Pour plus d’informations, consultez Utilisation et fourniture de services.

Débogueur

Le débogueur est l’interface utilisateur des composants de débogage spécifiques au langage. Si vous avez créé un service de langage, vous devez créer un moteur de débogage spécifique pour vous connecter au débogueur. Pour plus d’informations, consultez Extensibilité du débogueur Visual Studio.

Contrôle de la source

Pour plus d’informations sur l’implémentation d’un plug-in de contrôle de code source ou vsPackage, consultez Contrôle de code source.

Assistants

Vous pouvez créer un Assistant conjointement avec un nouveau type de projet, afin que l’Assistant puisse aider vos utilisateurs à prendre les bonnes décisions lorsqu’ils créent un projet de ce type. Pour plus d’informations, consultez Assistants.

Outils personnalisés

Les outils personnalisés vous permettent d’associer un outil à un élément d’un projet et d’exécuter cet outil chaque fois que le fichier est enregistré. Pour plus d’informations, consultez Outils personnalisés.

Utilitaires VSSDK

Le VSSDK inclut un ensemble d’utilitaires dont vous aurez peut-être besoin pour travailler avec différents aspects des VSPackages. Pour plus d’informations, consultez Utilitaires VSSDK.

Utilisation de Windows Installer

Dans certains cas, vous devrez peut-être utiliser Windows Installer plutôt que le programme d’installation VSIX : par exemple, vous devrez peut-être écrire dans le Registre. Pour plus d’informations sur l’utilisation de Windows Installer avec vos extensions, consultez Installation de VSPackages avec Windows Installer.

Visionneuse de l’aide

Vous pouvez intégrer vos propres pages d’aide et F1 dans la Visionneuse d’aide. Pour plus d’informations, consultez le Kit de développement logiciel (SDK) de la Visionneuse d’aide Microsoft.