Requisiti di sviluppo delle pipeline
Per poter essere individuati e attivati, i segmenti delle pipeline e i componenti aggiuntivi devono soddisfare i requisiti relativi all'ambito, agli attributi e alla struttura di directory specificati.
Assembly e segmenti di pipeline
I componenti aggiuntivi, i contratti e le visualizzazioni devono essere pubblici. Gli adattatori e i relativi costruttori possono essere interni.
In genere, i segmenti delle pipeline sono contenuti all'interno del rispettivo assembly. È tuttavia possibile combinare nello stesso assembly i segmenti seguenti:
Visualizzazioni host di componenti aggiuntivi e visualizzazioni sul lato del componente aggiuntivo.
Adattatori sul lato host e adattatori sul lato del componente aggiuntivo.
È possibile combinare gli adattatori sul lato host e quelli sul lato del componente aggiuntivo solo se si combinano anche le visualizzazioni nello stesso assembly.
Se si combina un segmento su uno lato della pipeline con la controparte sull'altro lato della pipeline, ad esempio le visualizzazioni host di componenti aggiuntivi con le visualizzazioni di componenti aggiuntivi, è necessario distribuire l'assembly su entrambi i lati della pipeline per tale segmento.
Se le visualizzazioni non vengono combinate nello stesso assembly, è possibile combinare l'host con la visualizzazione host del componente aggiuntivo nello stesso assembly.
Requisiti relativi agli attributi
Nei segmenti di pipeline seguenti sono richiesti attributi che definiscono le classi:
I componenti aggiuntivi richiedono AddInAttribute.
I contratti richiedono AddInContractAttribute.
Le visualizzazioni dei componenti aggiuntivi richiedono AddInBaseAttribute.
Gli adattatori sul lato del componente aggiuntivo richiedono AddInAdapterAttribute.
Gli adattatori sul lato host richiedono HostAdapterAttribute.
La visualizzazione host del segmento della pipeline di componenti aggiuntivi non richiede alcun attributo in quanto tale oggetto viene passato al metodo AddInStore.FindAddIns(Type, String, String[]), pertanto non deve essere individuato.
Nell'illustrazione riportata di seguito vengono mostrati i segmenti di pipeline con i rispettivi attributi obbligatori.
Modello di componente aggiuntivo con attributi obbligatori sui tipi
Requisiti relativi alla directory della pipeline
Per consentire l'individuazione dei segmenti di pipeline e l'attivazione dei componenti aggiuntivi mediante .NET Framework, è necessario inserire i segmenti della pipeline in una directory specificata. I nomi di directory specificati sono obbligatori ma non fanno distinzione tra maiuscole e minuscole. Gli unici nomi non specificati sono il nome della directory radice della pipeline (che viene specificata per i metodi di individuazione) e i nomi delle sottodirectory contenenti i componenti aggiuntivi. Tutti i nomi di segmento specificati devono essere sottodirectory allo stesso livello al di sotto della radice della pipeline.
Nell'illustrazione riportata di seguito vengono mostrati i requisiti di directory appena descritti.
Directory obbligatorie per lo sviluppo dei componenti aggiuntivi
Nella tabella riportata di seguito viene descritta la struttura di directory obbligatoria.
Directory |
Descrizione |
---|---|
Radice della pipeline |
Directory contenente le sottodirectory dei segmenti di pipeline. Questa directory può avere qualsiasi nome e trovarsi in qualsiasi percorso. Esempio: ..\Pipeline |
AddIns |
Facoltativo. Directory contenente una o più sottodirectory, contenenti ognuna un componente aggiuntivo. A tale directory è necessario assegnare il nome AddIns. Esempio: ..\Pipeline\AddIns I componenti aggiuntivi possono trovarsi anche in altri percorsi del sistema. |
AddInSideAdapters |
Directory contenente l'assembly di adattatori sul lato del componente aggiuntivo. A tale directory è necessario assegnare il nome AddInSideAdapters. Esempio: ..\Pipeline\AddInSideAdapters |
AddInViews |
Directory contenente l'assembly di visualizzazioni dei componenti aggiuntivi. A tale directory è necessario assegnare il nome AddInViews. Esempio: ..\Pipeline\AddInViews |
Contracts |
Directory contenente l'assembly dei contratti. A tale directory è necessario assegnare il nome Contracts. Esempio: ..\Pipeline\Contracts |
HostSideAdapters |
Directory contenente l'assembly di adattatori sul lato host. A tale directory è necessario assegnare il nome HostSideAdapters. Esempio: ..\Pipeline\HostSideAdapters |
I metodi AddInStore.Update e AddInStore.Rebuild che ne eseguono l'overload accettano una variabile di stringa che rappresenta la radice della pipeline o un valore PipelineStoreLocation. Questi metodi consentono di individuare i componenti aggiuntivi e i segmenti di pipeline disponibili nel sistema, nonché gestire le informazioni memorizzate nella cache in un archivio informazioni. Per ulteriori informazioni sui metodi di individuazione, vedere Individuazione di componenti aggiuntivi.
L'applicazione host e la visualizzazione host del segmento della pipeline di componenti aggiuntivi vengono in genere distribuiti nella stessa directory, che può trovarsi in qualsiasi percorso. L'applicazione host richiede un riferimento alla visualizzazione host del segmento del componente aggiuntivo che rappresenta il componente aggiuntivo da attivare.
La pipeline può trovarsi in qualsiasi percorso, incluso all'interno della struttura di directory della soluzione Visual Studio. È necessario copiare i segmenti di pipeline nelle rispettive directory all'interno della pipeline. La directory della pipeline e le relative sottodirectory sono state progettate per poter contenere più pipeline. Per ulteriori informazioni sui diversi scenari delle pipeline, vedere Scenari con pipeline di componenti aggiuntivi.
Componenti aggiuntivi in altri percorsi
Non è necessario che i componenti aggiuntivi siano contenuti nella struttura di directory della pipeline. Se non si trovano in tale struttura, è necessario chiamare il metodo AddInStore.UpdateAddIns o RebuildAddIns che accetta il percorso della directory contenente i componenti aggiuntivi come parametro.
Quando si chiama il metodo AddInStore.FindAddIns, è necessario includere anche il parametro addInPaths.
Se l'applicazione host riconosce i percorsi e i nomi di tipo completi dei relativi componenti aggiuntivi, può utilizzare il metodo FindAddIn per individuare uno specifico componente aggiuntivo, in modo da evitare query sulla struttura di directory della pipeline. È tuttavia obbligatorio specificare una struttura di directory della pipeline.
Riferimenti ai segmenti di pipeline in Visual Studio
Quando in un progetto si aggiunge un riferimento a un altro segmento di pipeline, ad esempio l'adattatore sul lato del componente aggiuntivo che richiede un riferimento al segmento di contratto, è necessario inserire un riferimento al progetto del segmento anziché al relativo assembly. In questo esempio il riferimento sarebbe al progetto del contratto. Un riferimento al progetto impedisce che gli assembly a cui si fa riferimento vengano distribuiti alla pipeline, generando in questo modo possibili conflitti. È possibile evitare conflitti anche non copiando i file in locale.
Per aggiungere un riferimento a un progetto
In Esplora soluzioni fare clic con il pulsante destro del mouse sul nodo Riferimenti e scegliere Aggiungi riferimento.
Nella scheda Progetti scegliere il progetto desiderato e fare clic su OK.
Nella cartella Riferimenti fare clic sul riferimento al progetto appena aggiunto.
Nel riferimento Proprietà impostare Copia localmente su False.
Riferimenti obbligatori
Nella tabella riportata di seguito sono elencati i segmenti di pipeline che richiedono riferimenti ad assembly per System.AddIn.dll e System.Contract.dll. Alcuni segmenti richiedono anche riferimenti ad altri segmenti compilati.
Segmento di pipeline |
Riferimenti ad assembly e progetti |
Riferimenti a spazi dei nomi e tipi |
---|---|---|
Contratto |
System.AddIn.dll System.AddIn.Contract.dll |
System.AddIn.Pipeline System.AddIn.Contract |
Visualizzazione del componente aggiuntivo |
System.AddIn.dll |
System.AddIn.Pipeline |
Adattatore sul lato componente aggiuntivo |
System.AddIn.dll System.AddIn.Contract.dll Segmento di visualizzazione del componente aggiuntivo Segmento di contratto |
System.AddIn.Pipeline |
Adattatore sul lato host |
System.AddIn.dll System.AddIn.Contract.dll Segmento di visualizzazione host Segmento di contratto |
System.AddIn.Pipeline |
Host |
System.AddIn.dll Segmento di visualizzazione host |
System.AddIn.Hosting visualizzazione host |
Componente aggiuntivo |
System.AddIn.dll Segmento di visualizzazione del componente aggiuntivo |
System.AddIn visualizzazione del componente aggiuntivo |
La visualizzazione host del componente aggiuntivo non presenta requisiti di riferimento ma è obbligatoria per l'applicazione host.
Distribuzione alla pipeline in Visual Studio
In Visual Studio è possibile compilare segmenti di pipeline nella struttura di directory della pipeline modificando il percorso di compilazione di output.
Per eseguire la distribuzione alla pipeline in Visual Studio
Dal menu Strumenti scegliere le Proprietà del progetto, quindi selezionare la scheda Compila.
Modificare il Percorso output dei segmenti di pipeline con le rispettive directory nella struttura di directory della pipeline.
L'applicazione host e la visualizzazione host vengono generalmente distribuite nella stessa directory. La directory della pipeline può trovarsi in qualsiasi percorso ma in genere corrisponde alla directory dell'applicazione host.
Vedere anche
Concetti
Contratti, visualizzazioni e adattatori