Architektura pakietu VSPackage kontroli kodu źródłowego
Pakiet kontroli źródła to pakiet VSPackage, który korzysta z usług zapewnianych przez środowisko IDE programu Visual Studio. W zamian pakiet kontroli źródła zapewnia jej funkcjonalność jako usługę kontroli źródła. Ponadto pakiet kontroli źródła jest bardziej wszechstronną alternatywą niż wtyczka kontroli źródła do integracji kontroli źródła z programem Visual Studio.
Wtyczka kontroli źródła, która implementuje interfejs API wtyczki kontroli kodu źródłowego, przestrzega ścisłej umowy. Na przykład wtyczka nie może zastąpić domyślnego interfejsu użytkownika programu Visual Studio. Ponadto interfejs API wtyczki kontroli źródła nie umożliwia wtyczki implementowania własnego modelu kontroli źródła. Jednak pakiet kontroli źródła przezwycięży oba te ograniczenia. Pakiet kontroli źródła ma pełną kontrolę nad środowiskiem kontroli źródła użytkownika programu Visual Studio. Ponadto pakiet kontroli źródła może używać własnego modelu kontroli źródła i logiki, a także może definiować wszystkie interfejsy użytkownika związane z kontrolą źródła.
Składniki pakietu kontroli źródła
Jak pokazano na diagramie architektury, składnik programu Visual Studio o nazwie Source Control Stub to pakiet VSPackage, który integruje pakiet kontroli źródła z programem Visual Studio.
Element wycinkowy kontroli kodu źródłowego obsługuje następujące zadania.
Udostępnia wspólny interfejs użytkownika wymagany do rejestracji pakietu kontroli źródła.
Ładuje pakiet kontroli źródła.
Ustawia pakiet kontroli źródła jako aktywny/nieaktywny.
Element stub kontroli źródła szuka aktywnej usługi dla pakietu kontroli źródła i kieruje wszystkie przychodzące wywołania usługi ze środowiska IDE do tego pakietu.
Pakiet adaptera kontroli źródła to specjalny pakiet kontroli źródła, który zapewnia program Visual Studio. Ten pakiet jest centralnym składnikiem obsługującym wtyczki kontroli źródła oparte na interfejsie API wtyczki kontroli kodu źródłowego. Gdy wtyczka kontroli źródła jest aktywną wtyczką, wycink kontroli źródła wysyła swoje zdarzenia do pakietu adaptera kontroli źródła. Z kolei pakiet karty kontroli źródła komunikuje się z wtyczką kontroli źródła przy użyciu interfejsu API wtyczki kontroli źródła, a także zapewnia domyślny interfejs użytkownika, który jest wspólny dla wszystkich wtyczek kontroli źródła.
Jeśli pakiet kontroli źródła jest aktywnym pakietem, z drugiej strony łącznik kontroli kodu źródłowego bezpośrednio komunikuje się z pakietem przy użyciu interfejsów pakietu kontroli źródła zestawu SDK programu Visual Studio. Pakiet kontroli źródła jest odpowiedzialny za hostowanie własnego interfejsu użytkownika kontroli źródła.
W przypadku pakietu kontroli źródła program Visual Studio nie dostarcza kodu kontroli źródła ani interfejsu API do integracji. Porównaj to z podejściem opisanym w temacie Tworzenie wtyczki kontroli źródła, w której wtyczka kontroli źródła musi implementować sztywny zestaw funkcji i wywołań zwrotnych.
Podobnie jak w przypadku dowolnego pakietu VSPackage pakiet kontroli źródła jest obiektem COM, który można utworzyć przy użyciu polecenia
CoCreateInstance
. Pakiet VSPackage udostępnia środowisko IDE programu Visual Studio przez zaimplementowanie polecenia IVsPackage. Po utworzeniu wystąpienia pakiet VSPackage otrzymuje wskaźnik lokacji i IServiceProvider interfejs, który zapewnia pakiet VSPackage dostęp do dostępnych usług i interfejsów w środowisku IDE.Pisanie pakietu kontroli źródła opartego na pakiecie VSPackage wymaga bardziej zaawansowanej wiedzy programistycznej niż pisanie wtyczki opartej na interfejsie API kontroli kodu źródłowego.