Sviluppo pipeline

La pipeline del componente aggiuntivo è il percorso di segmenti della pipeline che l'applicazione host e il relativo componente aggiuntivo devono utilizzare per comunicare.

Nella figura seguente è illustrata una semplice pipeline di comunicazione con i relativi segmenti.

Pipeline di componenti aggiuntivi

Modello pipeline di componenti aggiuntivi

Su un lato della pipeline è collocata l'applicazione host e sull'altro lato il componente aggiuntivo. A partire da ogni lato e spostandosi verso il centro, sia l'applicazione host che il componente aggiuntivo dispongono di una classe base astratta che definisce una visualizzazione del modello a oggetti condiviso da entrambi. Questi tipi (classi) costituiscono il segmento di pipeline della visualizzazione del componente aggiuntivo e la visualizzazione host del segmento di pipeline del componente aggiuntivo. Il segmento di pipeline della visualizzazione del componente aggiuntivo contiene spesso più di una classe astratta, ma la classe da cui eredita il componente aggiuntivo è nota come base del componente aggiuntivo.

Il segmento di pipeline dell'adattatore sul lato componente aggiuntivo e il segmento di pipeline dell'adattatore sul lato host convertono il flusso dei tipi tra i rispettivi segmenti di pipeline della visualizzazione e il segmento di pipeline del contratto. Il segmento centrale della pipeline è un contratto derivato dall'interfaccia IContract. Questo contratto definisce i metodi utilizzati sia dall'applicazione host che dal componente aggiuntivo.

Se l'host e il componente aggiuntivo vengono caricati in domini applicazione separati, si crea un limite di isolamento che separa l'ambito dell'applicazione host da quello del componente aggiuntivo. Il contratto è il solo assembly caricato nei domini applicazione dell'host e del componente aggiuntivo. L'host e il componente aggiuntivo fanno entrambi riferimento solo alla rispettiva visualizzazione dei metodi del contratto, pertanto sono separati dal contratto mediante un livello di astrazione.

Per sviluppare segmenti di pipeline, è necessario creare una struttura di directory che li conterrà. Per ulteriori informazioni sui requisiti di sviluppo e linee guida relative agli ambiti, vedere Requisiti di sviluppo delle pipeline.

Nella figura seguente sono illustrati i tipi che costituiscono i segmenti della pipeline. I nomi dei tipi illustrati nella figura sono arbitrari, ma tutti i tipi eccetto l'host e la visualizzazione host del componente aggiuntivo richiedono attributi per consentirne l'individuazione da parte dei metodi che costruiscono un archivio informazioni.

Pipeline del componente aggiuntivo con tipi

Modello di componente aggiuntivo con gli attributi obbligatori per i tipi

Nella tabella seguente vengono descritti i segmenti di pipeline per l'attivazione di un componente aggiuntivo. Per ulteriori informazioni su tali segmenti, vedere Contratti, visualizzazioni e adattatori.

Segmento di pipeline

Descrizione

Host

Assembly dell'applicazione che crea un'istanza di un componente aggiuntivo.

Visualizzazione host del componente aggiuntivo

Rappresenta la visualizzazione dell'applicazione host dei tipi di oggetti e dei metodi utilizzati per comunicare con il componente aggiuntivo. La visualizzazione host è una classe base o un'interfaccia astratta.

Adattatore sul lato host

Assembly con una o più classi che adatta i metodi da e verso il contratto.

Questo segmento di pipeline viene identificato utilizzando l'attributo HostAdapterAttribute.

Gli assembly con più moduli non sono supportati.

Contratto

Interfaccia derivata dall'interfaccia IContract che definisce il protocollo per la comunicazione dei tipi tra l'host e il componente aggiuntivo.

Questo segmento di pipeline viene identificato mediante l'impostazione dell'attributo AddInContractAttribute.

Adattatore sul lato componente aggiuntivo

Assembly con una o più classi che adatta i metodi da e verso il contratto.

Questo segmento di pipeline viene identificato utilizzando l'attributo AddInAdapterAttribute.

Ogni assembly nella directory dell'adattatore sul lato componente aggiuntivo che contiene un tipo con un attributo AddInAdapterAttribute viene caricato nel dominio applicazione del componente aggiuntivo.

Ogni assembly nella directory sul lato componente aggiuntivo viene caricato nel proprio dominio applicazione.

Gli assembly con più moduli non sono supportati.

Visualizzazione del componente aggiuntivo

Assembly che rappresenta la visualizzazione del componente aggiuntivo dei tipi di oggetti e dei metodi utilizzati per comunicare con l'host. La visualizzazione del componente aggiuntivo è una classe base o un'interfaccia astratta.

Questo segmento di pipeline viene identificato utilizzando l'attributo AddInBaseAttribute.

Ogni assembly nella directory AddInViews che contiene un tipo con un attributo AddInBaseAttribute viene caricato nel dominio applicazione del componente aggiuntivo.

Componente aggiuntivo

Tipo di cui è stata creata un'istanza che esegue un servizio per l'host.

Percorso di attivazione della pipeline

Nella figura seguente è illustrata l'attivazione dei tipi quando viene attivato un componente aggiuntivo. Viene illustrato il passaggio di oggetti all'host, ad esempio i risultati di un calcolo o un insieme di oggetti. È lo scenario più comune.

Percorso di attivazione dal componente aggiuntivo all'host

Modello di componente aggiuntivo con percorso di attivazione

Il percorso di attivazione della pipeline è il seguente:

  1. L'applicazione host attiva il componente aggiuntivo con il metodo Activate.

  2. Nel dominio applicazione del componente aggiuntivo vengono caricati il componente aggiuntivo, la visualizzazione del componente aggiuntivo, l'adattatore sul lato componente aggiuntivo e gli assembly del contratto.

  3. Viene creata un'istanza dell'adattatore sul lato componente aggiuntivo utilizzando la visualizzazione del componente aggiuntivo come costruttore, dove la classe deve essere identificata con l'attributo AddInBaseAttribute. L'adattatore sul lato componente aggiuntivo eredita dal contratto.

  4. L'adattatore sul lato componente aggiuntivo, tipizzato come contratto, viene passato attraverso il limite di isolamento al costruttore dell'adattatore sul lato host (facoltativo).

  5. Nel dominio applicazione dell'host vengono caricati la visualizzazione host del componente aggiuntivo, l'adattatore sul lato host e gli assembly del contratto.

  6. Viene creata un'istanza dell'adattatore sul lato host utilizzando il contratto come costruttore. L'adattatore sul lato host eredita dalla visualizzazione host del componente aggiuntivo.

  7. L'host dispone del componente aggiuntivo, che viene tipizzato come visualizzazione host del componente aggiuntivo, quindi può continuare a chiamare i relativi metodi.

Procedure dettagliate

Sono disponibili tre argomenti con procedure dettagliate in cui viene descritto come creare pipeline utilizzando Visual Studio:

Vedere anche

Concetti

Scenari con pipeline di componenti aggiuntivi

Componenti aggiuntivi ed estensibilità