Condividi tramite


Cenni preliminari sui componenti aggiuntivi

Aggiornamento: novembre 2007

Il modello di programmazione di .NET Framework per i componenti aggiuntivi supporta lo sviluppo di una pipeline di comunicazione che consente l'hosting di componenti aggiuntivi in numerosi scenari adattabili.

Nota:

Per ulteriori esempi di codice e anteprime di tecnologie di clienti riguardanti strumenti di creazione di pipeline per componenti aggiuntivi, vedere Managed Extensibility and Add-In Framework on CodePlex (informazioni in lingua inglese).

Modello di componente aggiuntivo

Il modello di componente aggiuntivo si basa su una serie di segmenti che costituiscono la pipeline del componente aggiuntivo, detta anche pipeline di comunicazione, responsabile di qualsiasi comunicazione tra il componente aggiuntivo e l'host. La pipeline è un modello di comunicazione simmetrico costituito da segmenti che scambiano dati tra un componente aggiuntivo e il relativo host. Lo sviluppo di questi segmenti tra l'host e il componente aggiuntivo fornisce i livelli di astrazione necessari per supportare il controllo della versione e l'isolamento del componente aggiuntivo

Nella figura seguente viene illustrata la pipeline.

Pipeline di componenti aggiuntivi

Modello pipeline di componenti aggiuntivi

Gli assembly per questi segmenti non devono necessariamente appartenere allo stesso dominio applicazione. È possibile caricare un componente aggiuntivo in un nuovo dominio applicazione, in un dominio applicazione esistente o nel dominio applicazione dell'host. Inoltre più componenti aggiuntivi possono essere caricati nello stesso dominio applicazione per consentire la condivisione di risorse e contesti di sicurezza.

Nel modello di componente aggiuntivo è supportato, ed è consigliabile utilizzare, un limite facoltativo tra l'host e il componente aggiuntivo, detto limite di isolamento o anche limite remoto. Può essere un limite del dominio applicazione o del processo.

Il segmento del contratto al centro della pipeline viene caricato sia nel dominio applicazione dell'host che nel dominio applicazione del componente aggiuntivo. Il contratto definisce i metodi virtuali utilizzati dall'host e dal componente aggiuntivo per lo scambio dei tipi.

Per passare attraverso il limite di isolamento i tipi devono essere contratti o tipi serializzabili. I tipi che non sono contratti o tipi serializzabili devono essere convertiti in contratti dai segmenti dell'adattatore nella pipeline.

I segmenti di visualizzazione della pipeline sono classi base o interfacce astratte che forniscono all'host e al componente aggiuntivo una visualizzazione dei metodi condivisi, secondo quanto definito dal contratto.

Per ulteriori informazioni sullo sviluppo di segmenti di pipeline, vedere Sviluppo pipeline.

Nelle sezioni che seguono vengono descritte le funzionalità del modello di componente aggiuntivo.

Controllo delle versioni indipendente

Il modello di componente aggiuntivo consente a host e componenti aggiuntivi di controllare le versioni in modo indipendente. Di conseguenza, il modello di componente aggiuntivo attiva gli scenari seguenti:

  • Creazione di un adattatore che consente a un host di utilizzare un componente aggiuntivo compilato per una versione precedente dell'host.

  • Creazione di un adattatore che consente a un host di utilizzare un componente aggiuntivo compilato per una versione successiva dell'host.

  • Creazione di un adattatore che consente a un host di utilizzare componenti aggiuntivi compilati per un host diverso.

Individuazione e attivazione

È possibile attivare un componente aggiuntivo utilizzando un token da un insieme che rappresenta i componenti aggiuntivi trovati in un archivio informazioni. La ricerca dei componenti aggiuntivi viene effettuata in base al tipo che definisce la visualizzazione host del componente aggiuntivo. È inoltre possibile cercare un componente aggiuntivo specifico in base al tipo che lo definisce. L'archivio informazioni è costituito da due file di cache: l'archivio della pipeline e l'archivio dei componenti aggiuntivi.

Per informazioni sull'aggiornamento e la ricompilazione dell'archivio informazioni, vedere Individuazione di componenti aggiuntivi. Per ulteriori informazioni sull'attivazione di componenti aggiuntivi, vedere Attivazione di componenti aggiuntivi e Procedura: attivare componenti aggiuntivi con livelli diversi di isolamento e di sicurezza.

Livelli di isolamento e processi esterni

Il modello di componente aggiuntivo supporta diversi livelli di isolamento tra un componente aggiuntivo e il relativo host o tra componenti aggiuntivi. A partire da quello meno isolato, di seguito sono descritti tali livelli:

  • Il componente aggiuntivo e l'host vengono eseguiti nello stesso dominio applicazione. Questo livello non è consigliato in quanto si perdono l'isolamento e le funzionalità di scaricamento disponibili quando si utilizzano domini applicazione diversi.

  • Più componenti aggiuntivi vengono caricati nello stesso dominio applicazione, che è diverso dal dominio applicazione utilizzato dall'host.

  • Ogni componente aggiuntivo viene caricato esclusivamente nel proprio dominio applicazione. Si tratta del livello di isolamento più comune.

  • Più componenti aggiuntivi vengono caricati nello stesso dominio applicazione in un processo esterno.

  • Ogni componente aggiuntivo viene caricato esclusivamente nel proprio dominio applicazione in un processo esterno. È lo scenario con il livello di isolamento più elevato.

Per ulteriori informazioni sull'utilizzo di processi esterni, vedere Procedura: attivare componenti aggiuntivi con livelli diversi di isolamento e di sicurezza.

Gestione della durata

Poiché il modello di componente aggiuntivo si estende sui limiti del dominio applicazione e del processo, l'operazione di Garbage Collection di per sé non è sufficiente per rilasciare e recuperare oggetti. Il modello di componente aggiuntivo fornisce un meccanismo di gestione della durata che utilizza token e conteggio dei riferimenti e generalmente non richiede programmazione aggiuntiva. Per ulteriori informazioni, vedere Gestione della durata.

Distinzione tra componenti aggiuntivi e host

La differenza tra un componente aggiuntivo e un host è semplicemente che l'host attiva il componente aggiuntivo. L'host può essere il più grande dei due elementi, ad esempio un'applicazione di elaborazione di testo e i relativi correttori ortografici, oppure il più piccolo, ad esempio un client di messaggistica immediata che incorpora un lettore multimediale. Il modello di componente aggiuntivo supporta componenti aggiuntivi in scenari client e server. Tra gli esempi di componenti aggiuntivi per server sono inclusi quelli che forniscono ai server di posta funzionalità antivirus, filtri per la posta indesiderata e protezione IP. Tra gli esempi di componenti aggiuntivi per client sono inclusi quelli per elaboratori di testo, funzionalità specializzate per programmi di grafica e giochi e funzionalità antivirus per i client di posta elettronica locali.

Vedere anche

Concetti

Domini applicazione e assembly

Altre risorse

Componenti aggiuntivi ed Extensibility