Architektur von Quellcodeverwaltungs-VSPackages
Ein Quellcodeverwaltungspaket ist ein VSPackage, das Dienste verwendet, die von der Visual Studio-IDE bereitgestellt werden. Im Gegenzug stellt ein Quellcodeverwaltungspaket seine Funktionalität als Quellcodeverwaltungsdienst bereit. Darüber hinaus ist ein Quellcodeverwaltungspaket eine vielseitigere Alternative als ein Quellcodeverwaltungs-Plug-In für die Integration der Quellcodeverwaltung in Visual Studio.
Ein Quellcodeverwaltungs-Plug-In, das die Quellcodeverwaltungs-Plug-In-API implementiert, hält sich an einen strengen Vertrag. Ein Plug-In kann beispielsweise die standardmäßige Visual Studio-Benutzeroberfläche (UI) nicht ersetzen. Darüber hinaus ermöglicht die Plug-In-API für die Quellcodeverwaltung kein Plug-In, um ein eigenes Quellcodeverwaltungsmodell zu implementieren. Ein Quellcodeverwaltungspaket überwindet jedoch beide Einschränkungen. Ein Quellcodeverwaltungspaket hat die vollständige Kontrolle über die Quellcodeverwaltung eines Visual Studio-Benutzers. Darüber hinaus kann ein Quellcodeverwaltungspaket ein eigenes Quellcodeverwaltungsmodell und eine eigene Logik verwenden und alle quellcodeverwaltungsbezogenen Benutzeroberflächen definieren.
Komponenten des Quellcodeverwaltungspakets
Wie im Architekturdiagramm gezeigt, ist eine Visual Studio-Komponente mit dem Namen "Source Control Stub" ein VSPackage, das ein Quellcodeverwaltungspaket in Visual Studio integriert.
Der Quellcodeverwaltungs-Stub behandelt die folgenden Aufgaben.
Stellt die allgemeine Benutzeroberfläche bereit, die für die Registrierung des Quellcodeverwaltungspakets erforderlich ist.
Lädt ein Quellcodeverwaltungspaket.
Legt ein Quellcodeverwaltungspaket als aktiv/inaktiv fest.
Der Quellcodeverwaltungs-Stub sucht nach dem aktiven Dienst für das Quellcodeverwaltungspaket und leitet alle eingehenden Dienstaufrufe von der IDE an dieses Paket weiter.
Das Quellcodeverwaltungsadapterpaket ist ein spezielles Quellcodeverwaltungspaket, das Visual Studio bereitstellt. Dieses Paket ist die zentrale Komponente für die Unterstützung von Quellcodeverwaltungs-Plug-Ins basierend auf der Quellcodeverwaltungs-Plug-In-API. Wenn ein Quellcodeverwaltungs-Plug-In das aktive Plug-In ist, sendet der Quellcodeverwaltungs-Stub seine Ereignisse an das Quellcodeverwaltungsadapterpaket. Das Quellcodeverwaltungsadapterpaket kommuniziert wiederum mit dem Quellcodeverwaltungs-Plug-In mithilfe der Quellcodeverwaltungs-Plug-In-API und stellt außerdem eine Standardbenutzeroberfläche bereit, die für alle Quellcodeverwaltungs-Plug-Ins üblich ist.
Wenn ein Quellcodeverwaltungspaket das aktive Paket ist, kommuniziert der Quellcodeverwaltungs-Stub dagegen direkt mit dem Paket mithilfe der Visual Studio SDK Source-Control Package-Schnittstellen. Das Quellcodeverwaltungspaket ist für das Hosten einer eigenen Quellcodeverwaltungs-UI verantwortlich.
Für ein Quellcodeverwaltungspaket stellt Visual Studio keinen Quellcode oder eine API für die Integration zur Verfügung. Kontrastiert dies mit dem Ansatz, der in der Erstellung eines Quellcodeverwaltungs-Plug-Ins beschrieben wird, in dem das Quellcodeverwaltungs-Plug-In einen starren Satz von Funktionen und Rückrufen implementieren muss.
Wie jedes VSPackage-Paket ist ein Quellcodeverwaltungspaket ein COM-Objekt, das mithilfe
CoCreateInstance
von . Das VSPackage stellt sich durch Implementieren IVsPackageder Visual Studio-IDE für die Visual Studio-IDE zur Verfügung. Wenn eine Instanz erstellt wurde, empfängt ein VSPackage einen Websitezeiger und eine IServiceProvider Schnittstelle, die den VSPackage-Zugriff auf die verfügbaren Dienste und Schnittstellen in der IDE bereitstellt.Das Schreiben eines VSPackage-basierten Quellcodeverwaltungspakets erfordert erweiterte Programmierkenntnisse als das Schreiben eines API-basierten Plug-Ins für quellcodeverwaltungsbasiertes Plug-In.