Architecture du contrôle de code source VSPackageSource Control VSPackage Architecture

Un package de contrôle de code source est un VSPackage qui utilise des services qui la Visual StudioVisual Studio IDE fournit.A source-control package is a VSPackage that uses services that the Visual StudioVisual Studio IDE provides. En retour, un package de contrôle de code source fournit sa fonctionnalité sous la forme d’un service de contrôle de code source.In return, a source-control package provides its functionality as a source control service. En outre, un package de contrôle de code source est une alternative plus polyvalente que le plug-in pour l’intégration du contrôle de code source dans un contrôle de code source Visual StudioVisual Studio.Additionally, a source-control package is a more versatile alternative than a source control plug-in for integrating source control into Visual StudioVisual Studio.

Un contrôle de code source du plug-in qui implémente l’API de plug-in de contrôle de Source respecte un contrat strict.A source control plug-in that implements the Source Control Plug-in API abides by a strict contract. Par exemple, un plug-in Impossible de remplacer la valeur par défaut Visual StudioVisual Studio l’interface utilisateur (IU).For example, a plug-in cannot replace the default Visual StudioVisual Studio user interface (UI). En outre, l’API de plug-in de contrôle de Source n’active pas un plug-in implémenter son propre modèle de contrôle de code source.Moreover, the Source Control Plug-in API does not enable a plug-in to implement its own source control model. Un package de contrôle de code source, contourne Toutefois, les deux de ces limitations.A source-control package, however, overcomes both of these limitations. Un package de contrôle de code source a un contrôle complet sur l’expérience de contrôle de source de l’un Visual StudioVisual Studio utilisateur.A source-control package has complete control over the source control experience of a Visual StudioVisual Studio user. En outre, un package de contrôle de code source peut utiliser son propre modèle de contrôle de code source et la logique, et elle peut définir toutes les interfaces utilisateur liée au contrôle de source.Additionally, a source-control package can use its own source control model and logic, and it can define all the source control-related user interfaces.

Composants de Package de contrôle de code sourceSource-Control Package Components

Comme indiqué dans le diagramme d’architecture, une Visual StudioVisual Studio composant nommé le Stub de contrôle de code Source est un VSPackage qui intègre un package avec un contrôle de code source Visual StudioVisual Studio.As shown in the architecture diagram, a Visual StudioVisual Studio component named the Source Control Stub is a VSPackage that integrates a source-control package with Visual StudioVisual Studio.

Stub de contrôle de code source gère les tâches suivantes.Source Control Stub handles the following tasks.

  • Fournit l’interface utilisateur commune qui est requis pour l’inscription du package de contrôle de code source.Provides the common UI that is required for source-control package registration.

  • Charge un package de contrôle de code source.Loads a source-control package.

  • Définit un package de contrôle de code source comme actif/inactif.Sets a source-control package as active/inactive.

    Stub de contrôle de code source recherche le service actif pour le package de contrôle de code source et achemine les entrants de tous les appels de service à partir de l’IDE de ce package.Source Control Stub looks for the active service for the source-control package and routes all incoming service calls from the IDE to that package.

    Le Package de l’adaptateur de contrôle de Source est un contrôle de code source spécial de package Visual StudioVisual Studio fournit.The Source Control Adapter Package is a special source-control package that Visual StudioVisual Studio provides. Ce package est un composant central de prise en charge du contrôle plug-ins de code source en fonction de l’API de plug-in de contrôle de Source.This package is the central component for supporting source control plug-ins based on the Source Control Plug-in API. Lorsqu’un plug-in de contrôle de code source est actif plug-in, le Stub de contrôle de code Source envoie ses événements pour le Package de l’adaptateur de contrôle Source.When a source control plug-in is the active plug-in, the Source Control Stub sends its events to the Source Control Adapter Package. À son tour, le Package de l’adaptateur de contrôle Source communique avec le plug-in de contrôle de code source à l’aide de l’API de plug-in de contrôle de Source et fournit également une interface utilisateur commune pour tous les plug-ins de contrôle de code source par défaut.In turn, the Source Control Adapter Package communicates with the source control plug-in by using the Source Control Plug-in API and also provides a default UI that is common for all source control plug-ins.

    Lorsqu’un package de contrôle de code source est le package en cours, en revanche, le Stub de contrôle de Source de communiquer directement avec le package à l’aide de la Kit de développement logiciel Visual StudioVisual Studio SDK interfaces de Package de contrôle de code Source.When a source-control package is the active package, on the other hand, the Source Control Stub directly communicates with the package by using the Kit de développement logiciel Visual StudioVisual Studio SDK Source-Control Package interfaces. Le package de contrôle de code source est chargé d’héberger son propre contrôle de source de l’interface utilisateur.The source-control package is responsible for hosting its own source control UI.

    Graphique d’Architecture du contrôle de code sourceSource Control Architecture graphic

    Pour un package de contrôle de code source, Visual StudioVisual Studio ne fournit pas de code de contrôle de code source ou à une API pour l’intégration.For a source-control package, Visual StudioVisual Studio does not supply source control code or an API for integration. Ceci contraste avec l’approche décrite dans création d’un plug-in de contrôle de code Source dans lequel le plug-in de contrôle de code source doit implémenter un ensemble rigid de fonctions et les rappels.Contrast this with the approach outlined in Creating a Source Control Plug-in where the source control plug-in has to implement a rigid set of functions and callbacks.

    Comme n’importe quel VSPackage, un package de contrôle de code source est un objet COM qui peut être créé à l’aide de CoCreateInstance.Like any VSPackage, a source-control package is a COM object that can be created by using CoCreateInstance. Le VSPackage devient disponible pour le Visual StudioVisual Studio IDE en implémentant IVsPackage.The VSPackage makes itself available to the Visual StudioVisual Studio IDE by implementing IVsPackage. Lorsqu’une instance a été créée, un VSPackage reçoit un pointeur de site et un IServiceProvider interface qui fournit l’accès VSPackage pour les services disponibles et les interfaces dans l’IDE.When an instance has been created, a VSPackage receives a site pointer and an IServiceProvider interface that provides the VSPackage access to the available services and interfaces in the IDE.

    L’écriture d’un package de contrôle de code source basé sur le VSPackage nécessite des compétences de programmation plus avancées que l’écriture en fonction des API de plug-in de contrôle de Source de plug-in.Writing a VSPackage-based source-control package requires more advanced programming expertise than writing a Source Control Plug-in API-based plug-in.

Voir aussiSee Also

IVsPackage
Prise en mainGetting Started