2008-10-08 17 views
6

J'ai regardé le modèle Model-View-ViewModel qui est suggéré par plusieurs personnes (surtout John Gossman, jetez un oeil à ce post et ce podcast), mais quels autres modèles (le cas échéant) ont des gens utilisés et aimé ... et où ajoutent-ils de la valeur?Quels modèles de design avez-vous utilisés dans vos efforts WPF et qui aimez-vous?

J'ai aussi trébuché à travers:

J'aimerais une discussion active sur ces ci-dessus et ceux que je n'ai peut-être pas encore découverts.

Répondre

1

J'ai utilisé une variante du modèle Model-View-Presenter. Il a bien servi nos objectifs en développant de nombreuses interfaces utilisateurs. Ce n'est pas parfait mais ça fait bien le travail. L'un des problèmes que j'ai rencontrés est que je ne suis jamais satisfait des scénarios multithread. Nous avons récemment rendu plusieurs de nos présentateurs multithread. Étant donné que ces threads de travail, à la fin, mettent à jour l'interface utilisateur, nous avons dû envoyer des actions à l'interface utilisateur via le répartiteur de View. Le code devenait vraiment verbeux si chaque propriété View vérifiait le répartiteur. En raison des contraintes de temps, nous avons fini par exposer le répartiteur de View au Presenter. Nous n'utilisons pas le plus grand mouvement si vous me demandez ...

Nous utilisons une structure d'interface modulaire similaire à CAB et Prism, donc beaucoup de ces modèles s'appliquent à nous aussi. Je suis également un grand fan des commandes dans WPF. Je n'ai pas encore pu jouer avec DelegateCommand et CompositeCommand de Prism, mais ils ont l'air vraiment sympa.

+0

Vous pouvez vérifier le modèle DataModel-View-ViewModel en utilisant le lien ci-dessus. Ma compréhension est que ce modèle prend spécifiquement en compte les scénarios multi-thread. En fait, on pourrait dire qu'il est trop difficile de l'utiliser autrement. – cplotts

2

Un autre modèle que nous avons utilisé et aimé est le Modèle de comportement joint ... en utilisant le mécanisme d'extensibilité des propriétés jointes dans WPF. Il y a aussi quelques articles sur ce modèle utile.