2012-10-25 2 views
3

Je viens de recevoir la tâche de commencer à supporter une application WPF qui utilise Prism et la boîte à outils GalaSoft. Après avoir examiné la technologie pour les deux cadres, il me semble que le concepteur de l'application était redondant parce que Prism fournit un cadre qui facilite MVVM, et un conteneur qui permet l'intégration de modules. La façon dont je le vois est que chaque module peut implémenter son propre Model-View-VIewModel. Prism aurait pu fournir tout ce qui était nécessaire pour cela, pour la communication et la navigation entre les modules. J'ai également remarqué que la version de GalaSoft que l'application utilise n'existe pas dans la page de téléchargement officielle de la boîte à outils. Se pourrait-il que cette version ait été modifiée à partir de la version officielle de téléchargement?Est-il redondant d'utiliser Prism et GalaSoft MVVM toolkit dans la même application?

C'est la première fois que je m'occupe de la technologie WPF. c'est-à-dire un débutant, et j'apprécierais tous les commentaires sur cette question, et une recommandation sur la meilleure façon d'aborder cette mise en œuvre. Merci!

Répondre

0

Les deux ont des objectifs différents. Prism vise à faciliter les applications composites, tandis que MVVMLight a pour objectif de fournir un support MVVM simple. Prism inclut nécessairement son propre support MVVM, donc je suis d'accord que l'utilisation des deux est redondante. J'ajouterais également que l'utilisation de Prism dans une application non composite est probablement exagérée.

1

Ils sont redondants de manière: Prism fournit presque tout ce que vous avez dans MVVMLight. Presque, parce que je suis sûr qu'il y a des fonctionnalités spécifiques à MVVMLight que vous n'avez pas dans Prism. Prism est beaucoup plus grand, il fournit un cadre complet et une approche pour construire votre application MVVM tandis que MVVMLight vous donne juste des outils (il n'est pas nécessaire de façonner votre architecture) pour traiter les problèmes MVVM plus facilement.

Je ne pense pas que l'on aurait besoin des deux pour une seule application, mais peut-être que qui l'a fait utilise une caractéristique spécifique de MVVMLight. par exemple tous ViewModel utilise la base de Prism mais pour la messagerie (modèle de médiateur) il utilise MVVMLight parce que je sais que beaucoup de gens aime MVVMLight Messenger sur Prism's EventAggregator. Mais il y a probablement une meilleure raison, c'est juste un exemple, je ne vois pas votre code.

De toute façon je pense qu'il serait plus propre d'utiliser seulement l'un d'entre eux. Si cette application nécessite la puissance de Prism alors utilisez seulement cela, mais si c'est une application légère, alors je suggère MVVMLight (donc le nom de cette bibliothèque :)).

Pour la version MVVMLight: c'est peut-être seulement une ancienne version que vous avez, mais vous devriez demander à l'auteur de cette application.

Questions connexes