2009-07-13 8 views
13

Je suis intéressé à faire une application WPF décente qui sera assez énorme. Quelqu'un a suggéré d'utiliser PRISM, que nous étudions actuellement. Nous utilisons peut-être le modèle MVVM pour implémenter cette application. J'ai vu quelques screencasts de PRISM et il semble que PRISM soit principalement utilisé pour injecter les régions avec des vues différentes. Est-ce le but principal de l'utilisation de PRISM?Pourquoi utiliser Prism?

Je peux toujours utiliser WPF MasterPages en utilisant ContentPresenter, alors pourquoi devrais-je utiliser PRISM pour la région?

+0

Une question similaire que j'ai posée - http://stackoverflow.com/questions/6251821/custom-mvvm-implementation-vs-prism – akjoshi

Répondre

12

Prism offre un peu plus que le système de région. Non exhaustive:

  • la vue-modèle système de commande
  • aggrégateur de l'événement, pour l'événement découplé de manutention (avec beaucoup d'options intégrées, comme fil GUI appel, références faibles, etc.)
  • une norme façon de charger des modules, si vous avez besoin de ce type de flexibilité

Le système de région est également plus qu'un simple "wrapper de présentateur de contenu". Il peut être utilisé pour "pousser" (mettre une vue dans une région) ou "tirer" (laisser les modules déclarer la région qu'ils peuplent). Il prend également en charge beaucoup plus que de simples régions contentpresenter (régions basées sur ItemsControl par exemple) et est extensible via des adaptateurs de régions. Enfin, lorsque vous adoptez le formalisme de Prism, vous pariez sur un «langage» commun (et presque un cadre, même si l'équipe prisme ne l'appelle pas comme ça) que les gens de l'extérieur connaissent peut-être déjà. de réinventer le vôtre, ce qui obligerait quelqu'un à apprendre un tout nouvel ensemble de choses. Cela peut être une bonne chose pour un projet de longue durée (à condition que Prism ne meure pas trop jeune évidemment).

3

Si vous composez déjà vos pages de manière à ce que les différents sous-composants de la page soient indépendants, alors PRISM (ou le bloc d'application UI Composite) ne vous achètera pas vraiment autre chose qu'un "standard" reconnu façon de composer qui est documentée.

L'avantage de la composition est que chacun des composants de l'interface utilisateur peut être développé individuellement, puis lié ensemble à la fin du cycle de production. Cela signifie que vous avez généré des composants facilement utilisables à plusieurs endroits et que votre communication entre les composants se fait via une interface bien définie plutôt que par l'approche typique «Lancer les composants sur la page et parler à l'état». Donc, si ce que vous faites maintenant fonctionne, je continuerais probablement avec cela. Si ce que vous avez est sous-développé, pensez à quelque chose comme PRISM si vous avez beaucoup de développeurs qui travaillent sur les pièces et les pièces et un autre développeur ou groupe rassemblant ces pièces dans des interfaces utilisateur complètes pour l'utilisateur. Mon expérience est avec le bloc d'application de l'interface utilisateur composite et il a apporté beaucoup à la table dans les grands projets, mais les simplifications promises semblent bonnes même pour un projet de taille modeste.

0

Si vous connaissez Composite Application Block, c'est en gros le même. L'objectif principal de PRISM est d'avoir une application composite WPF, dans laquelle chaque partie (c'est-à-dire la partie d'écran ou le composant non visible) de l'application est faiblement couplée avec une autre partie de l'application.

2

Je soulignerais la compartimentation des modules de développement ici. Cela permet à des équipes plus petites et séparées de développer des parties d'une application et de les assembler à la fin.Je voudrais aussi dire que MVVM est certainement le moyen d'aller ici, mais le CAG vous encourage également à utiliser l'injection de dépendance pour vos ViewModels, les rendant plus testables qu'ils ne le seraient autrement. Bien sûr, vous pouvez utiliser l'injection de dépendance sans le CAG, mais c'est agréable d'avoir cet encouragement formel.

Questions connexes