2009-06-24 4 views
1

Comment puis-je organiser plusieurs applications WPF composites afin qu'elles partagent un seul projet Shell, mais remplissent leurs catalogues de modules à partir de différents fichiers App.config? Je suis en train d'écrire une suite d'applications en utilisant Composite Application Guidance pour WPF. La fonctionnalité de chaque application est déterminée par la disponibilité de différents modules, répertoriés dans le fichier App.config du shell. En donnant à chaque application un App.config différent, je peux spécifier les modules que chaque application peut utiliser.Organisation de plusieurs applications WPF composites pour partager un seul Shell

Cependant, je voudrais partager un seul projet Shell entre toutes les applications pour un aspect commun. Au départ, j'ai créé une solution pour chaque application, ajouté le projet Shell, puis ajouté les modules appropriés. Le problème est que le projet Shell commun n'a qu'un fichier App.config et que je ne peux pas le modifier par solution. Le remplissage du catalogue par le code n'évite pas ce problème - il y aurait toujours du code spécifique à l'application dans le Shell qui doit d'une manière ou d'une autre être activé par la Solution que j'utilise.

Répondre

1

Ce que j'ai décidé de faire était de traiter le Shell comme son propre module. Chaque application a sa propre solution et son propre projet, qui contiennent les fichiers App.config individuels. Ils ont aussi leurs propres classes Bootstrapper. Le Bootstrapper dans chaque application instancie le Shell.

0

Outre les modules de codage dur et le chargement des modules à partir de la configuration, vous pouvez également charger des modules dynamiquement à partir d'un répertoire donné. Donc, pour configurer différentes "applications" qui utilisent toutes le même shell, je créerais un fichier batch qui copiera les bons modules pour chaque application dans des dossiers séparés, créant ainsi les différentes applications.

La documentation de la Composite Guidance Library contient davantage d'informations sur la configuration de votre projet pour charger des modules dynamiquement à partir d'un répertoire.

Questions connexes