Mi sono fatto strada attraverso la guida Prism e penso di aver afferrato la maggior parte dei loro veicoli di comunicazione.EventAggregator vs CompositeCommand
Il comando è molto semplice, quindi è chiaro che il DelegateCommand verrà utilizzato solo per collegare la vista con il relativo modello.
È un po 'meno chiaro quando si tratta di cross Module Communication, in particolare quando utilizzare EventAggregation su Composite Commands.
L'effetto pratico è lo stesso ad es.
- Si pubblica un evento -> tutti gli abbonati ricevono preavviso e eseguire codice in risposta
- si esegue un comando composito -> tutti i comandi registrati vengono eseguiti e con essa il loro codice allegato
Entrambi lavorano sulla falsariga di "fire and forget", cioè non si preoccupano delle risposte dei propri abbonati dopo l'attivazione dell'evento/l'esecuzione dei comandi.
Ho difficoltà a vedere una differenza pratica nell'uso anche se capisco che l'implementazione di entrambi (sotto il cofano) è molto diversa.
Quindi dovremmo pensare a cosa significa in realtà - Evento? È così quando succede qualcosa (si verifica un evento)? Qualcosa che l'utente non ha richiesto direttamente come una "richiesta web completata"?
E comando? Significa che un utente ha fatto clic su qualcosa e quindi ha emesso un comando per la nostra applicazione, richiedendo direttamente un servizio?
È tutto? Oppure ci sono altri modi per determinare quando utilizzare uno di questi veicoli di comunicazione rispetto all'altro. La guida, sebbene sia una delle migliori documentazioni che ho letto, non fornisce alcuna spiegazione specifica.
Quindi spero che le persone coinvolte/nell'utilizzo del Prisma possano aiutare a far luce su questo.
Sono d'accordo con te, ho Prism 4 contro pdf fornito con prisma. Sembra buono ma questa sezione compositecommand non ci offre le cose giuste. Dice dare il datacontext sul codebehind. Non posso credere che il prisma codificato della gente abbia preparato questo documento. Grazie per avermelo chiesto –