Condividi tramite


Architettura dei pacchetti VSPackage di controllo del codice sorgente

Un pacchetto di controllo del codice sorgente è un PACCHETTO VSPackage che usa servizi forniti dall'IDE di Visual Studio. In cambio, un pacchetto di controllo del codice sorgente fornisce la relativa funzionalità come servizio di controllo del codice sorgente. Inoltre, un pacchetto di controllo del codice sorgente è un'alternativa più versatile rispetto a un plug-in di controllo del codice sorgente per l'integrazione del controllo del codice sorgente in Visual Studio.

Un plug-in di controllo del codice sorgente che implementa l'API plug-in di controllo del codice sorgente rispetta un contratto rigoroso. Ad esempio, un plug-in non può sostituire l'interfaccia utente predefinita di Visual Studio. Inoltre, l'API Plug-in del controllo del codice sorgente non consente a un plug-in di implementare il proprio modello di controllo del codice sorgente. Un pacchetto di controllo del codice sorgente, tuttavia, supera entrambe queste limitazioni. Un pacchetto di controllo del codice sorgente ha il controllo completo sull'esperienza di controllo del codice sorgente di un utente di Visual Studio. Inoltre, un pacchetto di controllo del codice sorgente può usare il proprio modello di controllo del codice sorgente e la logica e può definire tutte le interfacce utente correlate al controllo del codice sorgente.

Componenti del pacchetto di controllo del codice sorgente

Come illustrato nel diagramma dell'architettura, un componente di Visual Studio denominato Stub del controllo del codice sorgente è un pacchetto VSPackage che integra un pacchetto di controllo del codice sorgente con Visual Studio.

Lo Stub del controllo del codice sorgente gestisce le attività seguenti.

  • Fornisce l'interfaccia utente comune necessaria per la registrazione del pacchetto di controllo del codice sorgente.

  • Carica un pacchetto di controllo del codice sorgente.

  • Imposta un pacchetto di controllo del codice sorgente come attivo/inattivo.

    Lo Stub del controllo del codice sorgente cerca il servizio attivo per il pacchetto di controllo del codice sorgente e instrada tutte le chiamate al servizio in ingresso dall'IDE a tale pacchetto.

    Il pacchetto dell'adattatore del controllo del codice sorgente è un pacchetto speciale di controllo del codice sorgente fornito da Visual Studio. Questo pacchetto è il componente centrale per supportare i plug-in di controllo del codice sorgente in base all'API plug-in del controllo del codice sorgente. Quando un plug-in del controllo del codice sorgente è il plug-in attivo, lo Stub controllo del codice sorgente invia i relativi eventi al pacchetto dell'adapter di controllo del codice sorgente. A sua volta, il pacchetto dell'adattatore del controllo del codice sorgente comunica con il plug-in del controllo del codice sorgente tramite l'API Plug-in del controllo del codice sorgente e fornisce anche un'interfaccia utente predefinita comune per tutti i plug-in di controllo del codice sorgente.

    Quando un pacchetto di controllo del codice sorgente è il pacchetto attivo, invece, lo Stub del controllo del codice sorgente comunica direttamente con il pacchetto usando le interfacce del pacchetto di controllo del codice sorgente di Visual Studio SDK. Il pacchetto di controllo del codice sorgente è responsabile dell'hosting della propria interfaccia utente del controllo del codice sorgente.

    Source Control Architecture graphic

    Per un pacchetto di controllo del codice sorgente, Visual Studio non fornisce il codice di controllo del codice sorgente o un'API per l'integrazione. In contrasto con l'approccio descritto in Creazione di un plug-in di controllo del codice sorgente in cui il plug-in del controllo del codice sorgente deve implementare un set rigido di funzioni e callback.

    Come qualsiasi VSPackage, un pacchetto di controllo del codice sorgente è un oggetto COM che può essere creato tramite CoCreateInstance. Il VSPackage si rende disponibile per l'IDE di Visual Studio implementando IVsPackage. Quando è stata creata un'istanza di , un VSPackage riceve un puntatore al sito e un'interfaccia IServiceProvider che fornisce al VSPackage l'accesso ai servizi e alle interfacce disponibili nell'IDE.

    La scrittura di un pacchetto di controllo del codice sorgente basato su VSPackage richiede competenze di programmazione più avanzate rispetto alla scrittura di un plug-in basato su API di controllo del codice sorgente.