Domanda

Sto cercando di riscrivere una parte della nostra applicazione in C# (attualmente codice VB6 legacy).Il modulo con cui sto iniziando è responsabile dell'importazione dei dati da una varietà di sistemi nel nostro database.Circa 5-6 volte l'anno, un nuovo cliente ci chiede di scrivere una nuova importazione per il sistema che utilizza.Attualmente, ciò richiede il rilascio di una nuova versione del nostro software per ogni nuova opzione di importazione che aggiungiamo all'applicazione.

Uno degli obiettivi della riscrittura è fare in modo che l'applicazione supporti i plug-in.Ogni nuova importazione può diventare un assieme separato che l'applicazione host riconoscerà e con cui consentirà all'utente finale di interagire.Si spera che ciò semplifichi la vita in una certa misura poiché possiamo semplicemente inserire un nuovo assembly nella directory e farlo riconoscere e utilizzare dall'applicazione principale (host).

Uno degli elementi con cui ho difficoltà riguarda le differenze tra le opzioni di importazione che attualmente supportiamo.In alcuni casi lasciamo effettivamente che l'utente punti a una directory e legga tutti i file all'interno della directory nel nostro sistema.In altri casi consentiamo loro di puntare a un singolo file e importarne il contenuto.Inoltre, alcune importazioni prevedono una restrizione dell'intervallo di date applicata dall'utente, mentre altre no.

La mia domanda è: come posso progettare l'applicazione in modo da consentire una certa flessibilità tra le importazioni che creiamo e supportiamo e allo stesso tempo implementare un'interfaccia comune che consentirà all'applicazione host di riconoscere facilmente i plug-in e le opzioni che ognuno espone all'utente?

È stato utile?

Soluzione

Ti consiglio di dare un'occhiata al framework dei componenti aggiuntivi gestiti fornito con .NET 3.5.IL Squadra aggiuntiva ha pubblicato alcuni esempi e strumenti su Sito CodePlex anche..

Altri suggerimenti

.Net 3.5 ha lo spazio dei nomi system.Addin.

Questo thread contiene anche alcune buone informazioni per le versioni precedenti del framework:
Http://forums.devshed.com/net-development-87/system-plugin-532149.html

per la teoria dai un'occhiata a modello di plug-in in Martin Fowlers Modelli di architettura applicativa aziendale

per un esempio interessante dai un'occhiata a questo tutorial: Architettura dei plugin utilizzando C#

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top