39 votes

MVVM Lumière - Unité ou Prism?

Je suis un peu out-of-date, dans WPF dès maintenant et serait intéressé à entendre les peuples avis sur la dernière version de Prism (que j'ai utilisé un couple de versions en arrière) vs un MVVM Light + Unité approche (que je n'ai jamais fait décents exemples Url serait bien).

Mon projet sera un grand composé de plusieurs modules écrits par plusieurs développeurs. Il est également le fonds pour l'amener à une 3ème contrôle du parti suite afin de mettre en place un agréable espace de travail en utilisant l'un de la fantaisie d'Accueil/espace de travail de gestionnaires de disposition là-bas (et je sais que certains jouent mieux avec le Prisme régions que dans d'autres).

Si vous avez été le démarrage d'un projet à partir de zéro en ce moment, ce iriez-vous et pourquoi? Les détails spécifiques recommandé modèles d'architecture serait utile (par exemple, la détection automatique des modules dll? L'injection de service de journalisation?). Fondamentalement, tous les conseils et les pensées serait bon. J'aimerais avoir une bonne discussion. Peut-être il ya une autre direction complètement que vous suggère d'aller dans? Je suis très en phase de recherche et aimeriez le plus de commentaires possible.

J'ai mis ça ici parce que je pensais que ce serait obtenir moins biaisée de points de vue que le Prisme/MVVM Light forums, mais, si il ya un endroit plus approprié pour cette question, merci de me diriger dans cette direction.

55voto

Anderson Imes Points 18093

Si vous avez besoin de modularité, vous voulez regarder Prisme. Prism a quelques éléments qui peuvent vous aider avec MVVM (DelegateCommand et CompositeCommand, par exemple), mais je pense que c'est plus complet avec un autre framework MVVM.

Il a été question il y a quelques jours sur la façon de modèle de Prisme. Vérifier que pour une explication détaillée de la façon de les examiner du Prisme de la fonctionnalité. De haut Niveau de la Modélisation des Conseils pour Prism MVVM

L'unité est une mise en œuvre d'une inversion de contrôle conteneur et c'est certainement bonne, mais Prisme a la possibilité d'utiliser d'autres récipients. Il a la prise en charge intégrée pour le MEF (qui, à son tour, est intégré à .NET 4.0), mais ce n'est pas votre seul choix. Regardez quelques-uns des échantillons inclus dans le Prisme et de décider ce que vous aimez mieux. L'unité n'est pas terminée sur sa propre pour la composition de l'INTERFACE utilisateur, à mon avis. MEF pourrait être une meilleure choix si vous voulais essayer de composite d'une INTERFACE utilisateur avec le Framework MVVM + Cio Cadre de l'approche.

MVVM Light est en fait un petit cadre de Prism. D'autres frameworks MVVM à prendre en compte:

  • MVVM Fondation (très léger... bon pour les petits projets)
  • Caliburn (très robuste cadre)
  • Caliburn Micro (actions d'un nom et d'un auteur de Caliburn, mais il s'apparente à MVVM Light avec quelques belles conventions)
  • ReactiveUI (Anciennement "ReactiveXAML". C'est un peu le cerveau du fondoir, mais si vous apprenez Réactif Extensions .NET (Rx), ce cadre est tout simplement incroyable... magique à mon avis.)

Si je devais commencer un nouveau projet: je voudrais aller avec Prisme et ReactiveUI.

Le prisme parce que vous devez avoir de la modularité avec de grands projets et j'aime la possibilité de supprimer et d'ajouter des grandes unités de fonctionnalités à une application juste en supprimant ou en ajoutant des Dll (et vous n'avez pas à mettre en œuvre la DLL renifler caractéristique, comme vous le feriez avec juste un Cio + MVVM approche). Plus facile à tester, plus facile à déboguer, plus facile à se développer séparément. Sympa tout autour.

ReactiveUI parce qu'avec l'INTERFACE de programmation de ces jours, la plupart de votre temps est consacré à la gestion de votre temps sur le thread d'INTERFACE utilisateur. Le blocage n'est pas... les utilisateurs ne veulent pas voir une INTERFACE utilisateur gel; ils veulent voir que les GIF animés attendre symbole de la filature, de sorte qu'ils savent qu'ils peuvent travailler sur autre chose pendant que vos données est en cours de chargement. En outre, une grande partie de la valeur des applications de fournir ces jours-ci est prise de données provenant de systèmes disparates et les mettre ensemble dans l'INTERFACE utilisateur... non seulement aurez-vous besoin d'un bon système de composition (Prism), mais vous aurez également besoin d'un bon framework MVVM qui traite les opérations asynchrones comme son pain et le beurre... ReactiveUI est-il.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X