Sviluppo pipeline
Aggiornamento: novembre 2007
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
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
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
Il percorso di attivazione della pipeline è il seguente:
L'applicazione host attiva il componente aggiuntivo con il metodo Activate.
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.
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.
L'adattatore sul lato componente aggiuntivo, tipizzato come contratto, viene passato attraverso il limite di isolamento al costruttore dell'adattatore sul lato host (facoltativo).
Nel dominio applicazione dell'host vengono caricati la visualizzazione host del componente aggiuntivo, l'adattatore sul lato host e gli assembly del contratto.
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.
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:
Procedura dettagliata: creazione di un'applicazione estendibile
Viene descritto un componente aggiuntivo di tipo calcolatrice che esegue calcoli di somma, sottrazione, moltiplicazione e divisione per l'host.
-
Viene descritto un componente aggiuntivo di tipo calcolatrice con funzionalità di calcolo avanzate e viene spiegato come gestire la compatibilità con il primo componente aggiuntivo di tipo calcolatrice.
Procedura dettagliata: passaggio di insiemi tra host e componenti aggiuntivi
Viene descritto come passare le raccolte dati sulla pipeline utilizzando un scenario di archivio per libri.