Ho cercato diversi metodi per fornire supporto plug-in per la mia applicazione. Idealmente, creerò una funzionalità di base e basata su diversi clienti che sviluppano plug-in/add-on diversi come l'importazione, l'esportazione di dati, ecc ... Quali sono i metodi disponibili per rendere l'applicazione C# estendibile tramite un'architettura plug-in?Come sviluppare funzionalità basate su plug-in dinamico in C#
Facciamo un esempio. Se abbiamo un programma che consiste in un menu principale (File, Modifica, Visualizza, ecc.) Insieme a un TreeView che mostra diverse marche di automobili raggruppate per costruttore (Ford, GM, per ora). Facendo clic con il tasto destro su un'auto, viene visualizzato un menu di scelta rapida con l'unica opzione "elimina la macchina".
Come si può sviluppare l'applicazione in modo che i plug-in possano essere implementati in modo da consentire a un cliente di vedere un nuovo marchio nel TreeView, diciamo Honda, e anche estendere il menu di scelta rapida dell'automobile in modo che possano ora 'dipingere una macchina'?
Nello sviluppo Eclipse/RCP questo è facilmente gestibile da punti di estensione e plug-in. Come lo gestisce C#? Ho cercato di sviluppare la mia architettura plug-in e di leggere su MEF.
Ho visto un certo numero di video MEF che mostrano l'uso di caricamento di assiemi, cateloghi e contenitori, tuttavia devo ancora comprendere appieno come MEF consente di distribuire un plug-in che modifica il menu principale o un menu di scelta rapida per dato controllo. Immagino che mi manchi il salto finale da ciò che i video ritraggono e che consente alla mia applicazione di rispondere ai regali dei plugin i, e. per esempio, aggiungendo un nuovo pulsante di menu al menu principale. – Matthew
Questo dovrebbe diventare più facile da capire se si utilizza MVVM (http://msdn.microsoft.com/en-us/magazine/dd419663.aspx). Ciò consentirebbe di associare Menu e MenuItem a un modello di oggetto sottostante (collegabile). –