J'ai travaillé mon chemin à travers le guidage Prism et je pense avoir compris la plupart de leurs véhicules de communication.EventAggregator vs CompositeCommand
La commande est très simple, il est donc clair que DelegateCommand sera utilisé uniquement pour connecter la vue à son modèle.
Il est un peu moins clair, quand il s'agit de la communication entre modules, d'utiliser spécifiquement EventAggregation par rapport aux commandes composites.
L'effet pratique est le même, par ex.
- Vous publiez un événement -> tous les abonnés reçoivent un avis et d'exécuter du code en réponse
- Vous exécutez une commande composite -> toutes les commandes enregistrées sont exécutées et avec elle leur code ci-joint
Les deux travaux sur le modèle de "fire and forget", c'est-à-dire qu'ils ne se soucient pas des réponses de leurs abonnés après le déclenchement de l'événement/l'exécution des commandes.
J'ai du mal à voir une différence pratique dans l'utilisation bien que je comprenne que la mise en œuvre des deux (sous le capot) est très différente.
Alors devrions-nous penser à ce que cela signifie réellement - Événement? Est-ce quand quelque chose arrive (un événement se produit)? Quelque chose que l'utilisateur n'a pas demandé directement comme une «demande Web terminée»?
Et la commande? Est-ce que cela signifie qu'un utilisateur a cliqué sur quelque chose et a donc émis une commande à notre application, demandant un service directement?
Est-ce cela? Ou existe-t-il d'autres moyens de déterminer quand utiliser l'un de ces moyens de communication plutôt que l'autre? Les conseils, bien que l'une des meilleures documentations que je lis, ne donne aucune explication spécifique. Donc, j'espère que les personnes impliquées dans/utilisant Prism peuvent aider à faire la lumière sur ce sujet.
Je suis d'accord avec vous, j'ai Prism 4 contre pdf est livré avec prisme. Ca a l'air bien mais cette section compositecommand ne nous offre pas les bonnes choses. Il dit donner le datacontext sur codebehind. Je ne peux pas croire que les gens codé prisme préparé ce docs. Merci d'avoir posé la question. –