2008-09-05 10 views
4

Je cherche à réécrire une partie de notre application en C# (actuellement le code VB6 hérité). Le module que je commence avec est responsable de l'importation de données provenant de divers systèmes dans notre base de données. Environ 5-6 fois par an, un nouveau client nous demande d'écrire une nouvelle importation pour le système qu'ils utilisent. Actuellement, cela nous oblige à publier une nouvelle version de notre logiciel pour chaque nouvelle option d'importation que nous ajoutons à l'application.Plug In Design pour l'application .NET

L'un des objectifs de la réécriture est de rendre les plug-ins de support d'application. Chaque nouvelle importation peut devenir un assemblage distinct que l'application hôte reconnaîtra et permettra à l'utilisateur final d'interagir avec. Cela devrait dans une certaine mesure simplifier la vie car nous pouvons simplement déposer un nouvel assemblage dans le répertoire et le faire reconnaître et utiliser par l'application principale (hôte).

L'un des points qui me préoccupe concerne les différences entre les options d'importation que nous prenons actuellement en charge. Dans certains cas, nous laissons l'utilisateur pointer sur un répertoire et lire tous les fichiers du répertoire dans notre système. Dans d'autres cas, nous leur permettons de pointer vers un seul fichier et d'importer son contenu. En outre, certaines importations ont une restriction de plage de dates que l'utilisateur applique tandis que d'autres ne le font pas. Ma question est, comment puis-je concevoir l'application de manière à permettre une certaine flexibilité parmi les importations que nous construisons et supportons tout en implémentant une interface commune qui permettra à l'application hôte de reconnaître facilement le plug-in. ins et les options que chacun expose à l'utilisateur?

Répondre

3

Je vous recommande de jeter un coup d'œil sur le cadre de gestion intégré livré avec .NET 3.5. Le Add-In team a également affiché des échantillons et des outils au CodePlex site.

0

pour la théorie jeter un oeil à la plugin pattern dans martin Fowlers modèles d'entreprise Architecture d'application

pour un intéressant exemple, jetez un oeil à ce tutoriel: Plugin Architecture using C#