Partager via


Dans le kit SDK Visual Studio

Cette section fournit des informations détaillées sur les extensions de Visual Studio, y compris l’architecture, les composants, les services, les schémas, les utilitaires, etc. de Visual Studio.

Architecture d’extensibilité

L’illustration suivante montre l’architecture d’extensibilité de Visual Studio. Les VSPackages fournissent des fonctionnalités d’application, qui sont partagées par l’IDE sous forme de services. L’IDE standard offre également une large gamme de services, tels que SVsUIShell, qui permettent d’accéder à la fonctionnalité de fenêtrage de l’IDE.

Graphique d’architecture d’environnement

Vue générale 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 incarnent l’unité architecturale au centre de Visual Studio. Pour plus d’informations, consultez VSPackages.

Visual Studio Shell

Le shell Visual Studio fournit des fonctionnalités de base et prend en charge la communication croisée entre les VSPackages qui le composent et les extensions MEF. Pour plus d’informations, consultez Shell Visual Studio.

Conseils sur l’expérience utilisateur

Si vous envisagez de concevoir de nouvelles fonctionnalités pour Visual Studio, vous devriez consulter ces recommandations pour obtenir des conseils en matière de conception et d’utilisation : Recommandations pour l’expérience utilisateur de 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 dans le shell de Visual Studio. Vous pouvez spécifier comment ces commandes apparaîtront dans l’IDE, par exemple, dans un menu ou une barre d’outils. En général, 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.

Quand vous créez une commande, vous devez également lui créer un gestionnaire d’événements. 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éagit 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. Dans Visual Studio, les commandes sont traitées en commençant par le contexte de commande le plus proche, en fonction de la sélection locale, et en poursuivant jusqu’au contexte le plus éloigné, 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’invoquer des commandes. Les menus sont des lignes ou des colonnes de commandes qui s’affichent généralement sous la forme d’éléments de texte individuels en haut d’une fenêtre d’outil. Les sous-menus sont des menus secondaires qui apparaissent lorsque l’utilisateur clique sur des commandes comportant une petite flèche. Les menus locaux apparaissent lorsque l’utilisateur clique avec le bouton droit de la souris sur certains éléments de l’IU. Les noms de menus les plus courants sont Fichier, Edition, Affichage et Fenêtre. Pour plus d’informations, consultez Extension des menus et des commandes.

Les barres d’outils sont des rangées ou des colonnes de boutons et d’autres contrôles, tels que des zones de liste modifiable, des zones de liste et des zones de texte. Les boutons de barre d’outils comportent généralement des icônes, comme une icône de dossier pour la commande Ouvrir un fichier ou une icône d’imprimante pour la commande Imprimer. Tous les éléments de barre d’outils sont associés à des commandes. Quand vous cliquez sur un bouton de barre d’outils, sa commande associée s’exécute. Dans le cas d’un contrôle de liste déroulante, 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 séparateur, sont hybrides. Un côté du contrôle est un bouton de barre d’outils et l’autre côté est une flèche pointant vers le bas qui affiche plusieurs commandes lorsque l’on clique dessus.

Fenêtres d’outils

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

Les fenêtres d’outils proposent 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 les propriétés des objets qui servent un objectif particulier. La fenêtre Propriétés est spécialisée dans ce sens, mais aussi 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 parce qu’elle fournit une sortie basée sur le texte, mais générale car de nombreux sous-systèmes de Visual Studio peuvent l’utiliser pour fournir une sortie à l’utilisateur de Visual Studio.

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

Capture d’écran

Certaines fenêtres d’outils sont épinglées ensemble dans un volet unique qui affiche la fenêtre d’outils de l’explorateur de solutions et masque les autres fenêtres d’outils, mais les rend accessibles en cliquant sur des onglets. L’image montre deux autres fenêtres d’outils, la liste d’erreurs et la fenêtre Sortie, épinglées ensemble sur un volet unique.

Le volet du document principal, qui affiche plusieurs fenêtres de l’éditeur, est également illustré. Alors que les fenêtres d’outils n’ont généralement qu’une seule instance (par exemple, vous ne pouvez ouvrir qu’un seul explorateur de solutions), les fenêtres d’éditeurs peuvent avoir plusieurs instances, chacune d’entre elles étant utilisée pour modifier un document distinct, mais toutes étant épinglées dans le même volet. L’image montre un volet de document qui comporte deux fenêtres d’édition et une fenêtre de concepteur de formulaires. Toutes les fenêtres du volet de document sont accessibles en cliquant sur les 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. Les fenêtres d’outils et les éditeurs étant intégrés à Visual Studio, il n’est pas nécessaire de les programmer pour qu’ils s’épinglent ou s’affichent correctement dans un onglet. Lorsqu’elles sont correctement inscrites dans Visual Studio, elles présentent automatiquement les fonctionnalités typiques des fenêtres d’outils et des fenêtres de documents dans Visual Studio. Pour plus d’informations, consultez Extension et personnalisation des fenêtres Outils.

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 elles peuvent également héberger d’autres types de fonctions. La boîte de dialogue Nouveau fichier comprend des exemples de fenêtres de document fournies par Visual Studio.

La plupart des éditeurs sont spécifiques à un langage de programmation ou à un type de fichier, comme les pages HTML, les framesets, les fichiers C++ ou les 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 pour le 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 comprend 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 Fenêtres de document.

Éditeurs

L’éditeur Visual Studio vous permet de le personnaliser et de l’utiliser pour votre propre type de contenu à l’aide de Managed Extensibility Framework (MEF). Dans la plupart des cas, il n’est pas nécessaire de créer un VSPackage pour étendre l’éditeur, bien que si vous souhaitez inclure des fonctionnalités du shell (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 designer. Vous pouvez également utiliser un éditeur externe tel que Bloc-notes Windows ou Microsoft WordPad. Pour plus d’informations, consultez Extensions de l’éditeur et du service de langage.

Services de langage

Si vous souhaitez que l’éditeur Visual Studio prenne en charge de nouveaux mots-clés de programmation ou même un nouveau langage de programmation, vous devez créer 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 évidence de la syntaxe, la correspondance d’accolade, la prise en charge d’IntelliSense et d’autres fonctionnalités de l’éditeur.

Au cœur d’un service de langage se trouvent un analyseur et un scanner. Un scanner (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 mettre en œuvre l’analyseur et le scanner afin que Visual Studio puisse comprendre les jetons et la grammaire du langage. Vous pouvez créer des services de langage managés ou non managés. Pour plus d’informations, consultez Extensibilité des services de langage héritée.

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, des références aux services web et aux bases de données, et d’autres ressources. Les VSPackages peuvent étendre le système de projet Visual Studio en fournissant des types de projets, des sous-types de projets et des outils personnalisés.

Les projets peuvent également être rassemblés dans une solution, qui est un regroupement d’un ou plusieurs projets qui fonctionnent ensemble pour créer une application. Les informations relatives au projet et à l’état de la solution sont stockées dans deux fichiers de solution, le fichier texte de la solution (.sln) et le fichier binaire de l’option utilisateur de la solution (.suo). Ces fichiers sont similaires aux fichiers de groupe (.vbg) utilisés dans les versions antérieures de Visual Basic, et aux fichiers d’espace de travail (.dsw) et d’options utilisateur (.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 comprend des modèles de projet et des modèles d’éléments de projet prédéfinis. Vous pouvez également créer vos propres modèles ou acquérir des modèles auprès de la communauté, puis les intégrer dans Visual Studio. La MSDN Code Gallery est l’endroit idéal pour trouver des modèles et des extensions.

Les modèles contiennent la structure du projet et les fichiers de base nécessaires pour générer un type particulier d’application, de contrôle, de bibliothèque ou de classe. Lorsque vous souhaitez développer un logiciel qui ressemble à 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èles 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éments de projet.

Propriétés et Options

La fenêtre Propriétés affiche les propriétés d’un ou de plusieurs éléments sélectionnés : Les pages d’options Extension des propriétés contiennent des jeux d’options qui se rapportent à un composant particulier, tel qu’un langage de programmation ou un VSPackage : Options et pages d’options. Les paramètres sont généralement des fonctionnalités liées à l’IU qui peuvent être importés et exportés : Prise en charge des paramètres utilisateur.

Services Visual Studio

Un service fournit un ensemble spécifique d’interfaces que les composants peuvent consommer. Visual Studio fournit un jeu de services qui peuvent être utilisés par n’importe quel composant, y compris les extensions. Par exemple, les services Visual Studio permettent d’afficher ou de masquer dynamiquement les fenêtres d’outils, d’accéder à l’aide, à la barre d’état ou aux événements de l’IU. 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 à une langue. Si vous avez créé un nouveau service de langage, vous devrez créer un moteur de débogage spécifique pour vous connecter au débogueur. Pour plus d’informations, consultez Extensibilité du débogueur de Visual Studio.

Contrôle de code source

Pour plus d’informations sur l’implémentation d’un module 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 lors de la création d’un nouveau projet de ce type. Pour plus d’informations, consultez Assistant.

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 comprend un ensemble d’utilitaires dont vous pouvez avoir 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 de l’aide. Pour plus d’informations, consultez le Kit de développement logiciel (SDK) de Microsoft Help Viewer.