2009-03-31 10 views
9

Je suis en train d'étoffer une application métier WPF et une chose qui a suscité mon intérêt a été la façon dont je devrais gérer ce qui la rend incroyablement modulaire. Par exemple, mon application principale contiendrait simplement les bases pour démarrer l'interface, charger les modules, se connecter au serveur, etc. Ces modules, sous la forme de bibliothèques de classes, contiendraient leur propre logique et leurs fenêtres WPF. Les modules peuvent définir leurs propres dictionnaires de ressources et tous tirer du dictionnaire de ressources de l'application principale pour les brosses communes et autres.Construire une application métier hautement modulaire avec WPF?

Quelle est la meilleure façon de mettre en œuvre un système de cette nature? Comment l'interface principale doit-elle être construite pour que les modules qu'elle charge puissent modifier pratiquement n'importe quel aspect de son interface utilisateur et de sa logique? Je me rends compte que c'est une question assez vague, mais je cherche simplement une contribution générale et un remue-méninges.

Merci!

Répondre

8

Découvrez Composite Client Application Guidance

La bibliothèque Composite Application est conçu pour aider les architectes et les développeurs à atteindre les objectifs suivants:

Créer une application complexe de modules qui peuvent être construits, assemblés, et, éventuellement, déployés par équipes indépendantes utilisant WPF ou Silverlight.

Limitez les dépendances entre équipes et permettez aux équipes de se spécialiser dans différents domaines, tels que la conception de l'interface utilisateur, l'implémentation de la logique métier et le développement de code d'infrastructure.

Utilisez une architecture qui favorise la réutilisation dans des équipes indépendantes.

Augmentez la qualité des applications en faisant abstraction des services communs disponibles pour toutes les équipes.

Intégrez progressivement de nouvelles fonctionnalités.

1

Jetez un oeil à Prism

+0

Prism est le «guide d'application client composite» mentionné par Gulzar –

+0

Denis: Les deux réponses ont été postées presque au même moment. –

2

Tout d'abord, vous pourriez être intéressé par la mise en œuvre SharpDevelop. Il est basé sur son propre système addin connu sous le nom AddInTree. C'est un projet séparé et peut être utilisé dans vos propres solutions gratuitement. Tout est divisé entre différents addins où les addins sont facilement ajoutés/supprimés/configurés au moyen de fichiers xml. SharpDevelop est un projet open source donc vous aurez une chance d'examiner comment l'infrastructure est introduite, ainsi que les intégrations de bus de service et d'ajouts croisés. L'arborescence addin principale peut être facilement déplacée vers le projet WPF sans implications.

L'option suivante prend "Composite Client Application Guidance" (alias Prism, alias CompositeWPF) déjà mentionné plus haut. Vous obtiendrez la prise en charge Unity (Object builder) prête à l'emploi, l'agrégation d'événements ainsi que l'ensemble des modèles de conception valables implémentés.

Si vous souhaitez effectuer vous-même un design et une architecture de bas niveau, le MEF sera le meilleur choix (bien que je travaille avec les trois personnes que j'aime personnellement). C'est sur cette base que sera basé VS 2010, donc vous pouvez être sûr que le projet ne perdra pas de soutien à l'avenir. Mon conseil élabore sur ces approches et sélectionne le meilleur et efficace qui correspond parfaitement à vos besoins et les besoins de votre projet.