web-dev-qa-db-fra.com

Qu'est-ce que Prism pour WPF?

Je suis tombé sur quelque chose appelé Prism beaucoup récemment. Microsoft, qui gère le projet, le décrit comme

Instructions pour les applications composites dans WPF et Silverlight.

Même après avoir lu les descriptions plus détaillées, je n'ai aucune idée de ce dont il s'agit réellement, j'ai bien peur.

J'espère ici que quelqu'un pourra me donner une explication claire et succincte de ce qu'est Prism et de la raison pour laquelle je devrais l'apprendre. Je suis développeur WPF depuis quelques années maintenant, j'utilise MVVM à ma juste place, et j'ai récemment rencontré des utilisateurs de Prism, mais je me sens personnellement un peu en retrait ici.

En particulier, je m'interroge sur les points suivants:

  • Prism est-il littéralement juste (ou principalement) un livret, tel que donné sur le site MSDN ? Inclut-il des bibliothèques, si oui pour quoi exactement?

  • Prism est-il un framework MVVM? Devrais-je l'utiliser comme "framework officiel Microsoft MVVM" par rapport à d'autres ou par le mien?

  • Fournit-il une injection de dépendance? Cela concerne-t-il le MEF de cette manière?

  • Tout ce que je devrais savoir sur ce que fait Prism en tant que développeur WPF/Silverlight.

131
Noldorin

Prism est le Microsoft Patterns and Practices Team guide officiel pour la construction "d'applications composites" dans WPF et Silverlight.

Son objectif est de fournir des conseils sur les meilleures pratiques pour la construction d'applications à grande échelle flexibles en termes de développement et de maintenabilité.

Cela inclut des conseils sur l’injection de dépendance (via Unity ou MEF), la présentation (y compris l’utilisation de MVVM), la gestion des événements composites, etc.


Prism est-il littéralement juste (ou principalement) un livret, tel que présenté sur le site MSDN? Inclut-il des bibliothèques, si oui pour quoi exactement?

C'est un livre, mais inclut également les bibliothèques pour le support (sur le site GitHub ).

Prism est-il un framework MVVM? Devrais-je l'utiliser comme "framework officiel Microsoft MVVM" par rapport à d'autres ou par le mien?

Oui et non. Il inclut des instructions pour l’utilisation de MVVM, mais il est bien plus qu’une infrastructure MVVM. Ce n’est vraiment pas, en soi, un "framework MVVM" - bien qu’il inclue un guidage MVVM.

Fournit-il une injection de dépendance? Cela concerne-t-il le MEF de cette manière?

Oui. Il incluait à l'origine Unity, mais la dernière version inclut l'utilisation de MEF pour DI.

Tout ce que je devrais savoir sur ce que fait Prism en tant que développeur WPF/Silverlight.

Cela vaut la peine de jeter un coup d'œil à la façon dont ils font les choses. Ils ont un concept très élaboré de "région", ainsi qu'un bon support pour l'agrégation d'événements. Il inclut également les bonnes pratiques de développement simultané sur WPF, Silverlight et Windows Phone.

88
Reed Copsey

C'est un framework pour la construction d'applications WPF et Silverlight.

http://compositewpf.codeplex.com/

Il s'appelait auparavant "Prism" avant que Microsoft ne le renomme "CompositeWPF".

Réponses:

1) Prism est un framework MVVM à utiliser comme base pour vos applications

2) Je suggère donc en fonction de vos besoins spécifiques. Vous devriez poster une autre question avec des détails spécifiques afin que vous puissiez obtenir des réponses spécifiques.

3) Prism utilise l'injection de dépendance (Unity) mais ne la "fournit" pas

4) À mon avis, Prism fournit beaucoup de fonctionnalités, mais demande beaucoup d’apprentissage. Pour les petits projets avec vous en tant que développeur unique, vous n'aurez peut-être pas besoin de l'abstraction et des outils fournis.

18
rboarman