2009-04-22 9 views
2

J'ai une application avec 2 composants principaux + autres DLL:Quelle couche devrait être responsable du chargement des plugins?

  1. noyau DLL (a toutes les fonctionnalités de base)
  2. GUI
  3. 3rd Party et totalement DLLs indépendants qui exige de DI, etc.

Maintenant, j'implémente le support de plugin.

Quelle DLL devrait être responsable du chargement de ces plugins? GUI ou la DLL Core? J'utilise MEF donc je ne sais pas trop où le coller.

Répondre

2

Je pense que la réponse dépend de la façon dont les parties (en utilisant la terminologie MEF) sont utilisées par l'application. Je créer et remplir les conteneurs en fonction de l'endroit où/comment les pièces sont exploitées.

Exemple:

Si vous créez des pièces qui contiennent des vues pour l'interface graphique, je pense que la couche d'interface graphique dans l'application serait de les charger et de gérer le conteneur.

J'ai un framework d'application que j'ai construit pour les plug-ins d'application client et il y a une classe de gestionnaire d'application statique qui charge des Parts pour l'application, mais je charge aussi Parts dans un conteneur utilisé par mon core logique. L'intention des deux est complètement différente parce que certains d'entre eux sont des concepts de base que je voulais pouvoir facilement échanger plus tard et certains sont des plugins d'interface utilisateur qui étendent la fonctionnalité client quand ils sont déposés et disponibles pour l'application.

De plus, ils sont chargés en utilisant différentes approches ... le noyau est seulement au démarrage en utilisant des règles spécifiques et l'autre charge tout à partir d'un répertoire (plugins).

0

Je pense que Core DLL, comme c'est probablement la logique métier qui sera des plugins.

Questions connexes