web-dev-qa-db-fra.com

Quel framework MVVM est le meilleur framework pour les applications WPF

Je suis un débutant avec WPF. Avant de développer un projet de moyenne et grande taille sur WPF, je dois travailler avec un framework MVVM open source/gratuit pour WPF, alors s'il vous plaît dites-moi quel cadre MVVM serait le bon choix pour les applications WPF avec l'aide desquelles je peux développer une interface utilisateur très attrayante pour les applications d'entreprise, et qui est livré avec un bon didacticiel et de nombreux exemples de code pour se familiariser avec le flux du cadre. Veuillez en discuter en détail. Merci.

55
Thomas

Il est vraiment difficile de répondre objectivement à cette question, car ce qui vous convient le mieux dépend beaucoup de vos besoins et de vos préférences. J'ai moi-même utilisé deux cadres, donc ce sont ceux dont je peux parler.

L'un des frameworks MVVM les plus populaires est MVVM Light Toolkit , qui est un framework polyvalent qui vous permet de construire des applications comme vous le souhaitez. Il fournit de l'aide pour contourner certains des principaux problèmes rencontrés dans la création d'applications MVVM, mais il vous oblige toujours à écrire vous-même une grande partie du code standard. Cela pourrait être bon pour un nouveau développeur WPF, car il ne cache pas une grande partie de l'infrastructure WPF.

Mon préféré est Caliburn.Micro , qui est un framework MVVM pour WPF, Silverlight et Windows Phone 7. Il utilise une approche de convention sur configuration, ce qui vous évite d'écrire beaucoup de choses ennuyeuses , code de plomberie fastidieux. Cela signifie également qu'il vous oblige à être d'accord avec l'avis du cadre - si vous ne respectez pas les conventions qu'il prescrit, vous devrez mener une bataille difficile pour que tout fonctionne.

Caliburn.Micro a également la qualité de juste fonctionner , et si vous ne comprenez pas vraiment ce qui se passe sous le capot, les choses peuvent sembler un peu magiques . C'est super, tant que les choses fonctionnent. Mais lorsqu'ils ne le font pas, ou si vous devez faire quelque chose que le cadre n'est pas conçu pour faire, vous aurez besoin d'une compréhension assez solide de WPF pour trouver vos repères.

Vous devez évaluer les fonctionnalités de différents cadres et boîtes à outils et décider par vous-même.

66
jevakallio

Il existe de nombreux frameworks MVVM open source populaires.

Les trois plus populaires seraient probablement MVVM Light , Caliburn , ou Prism (qui, à partir de la v4, prend en charge et fournit des exemples de MVVM). Tous les trois ont des forces et des faiblesses, et tous sont bons.

Prism a l'avantage d'être un produit "Microsoft" (sponsorisé), tel qu'il est présenté par le groupe Microsoft Patterns and Practices. Cela tend à favoriser l'adoption dans de nombreuses grandes entreprises. Cela étant dit, il est également beaucoup plus grand et plus compliqué que les autres options populaires, d'autant plus que son objectif n'est pas seulement d'être un "MVVM Framework", mais plutôt une bibliothèque à usage général pour le développement d'applications composites.


Je suis débutant pour WPF.

Je pensais également que je mentionnerais - avant de choisir un cadre, je passerais un peu de temps à vraiment essayer d'apprendre et de comprendre MVVM. J'ai écrit une série pour aider transition vers WPF avec MVVM à partir de Windows Forms qui peut être utile.

Souvent, il est difficile de choisir un cadre jusqu'à ce que vous compreniez ce qu'il accomplit vraiment. La plupart de MVVM peut être fait, très facilement, sans aucun cadre. Les "frameworks" ajoutent des utilitaires qui facilitent la gestion de certains problèmes liés au développement de MVVM - par exemple, MVVM Light possède une excellente classe Messenger qui facilite la communication entre ViewModels, ce qui peut parfois être délicat. Caliburn a d'excellents outils pour aider à la conception, etc. Cependant, jusqu'à ce que vous compreniez les bases, le choix d'une boîte à outils peut en fait vous rendre la vie plus compliquée, pas plus simple.

95
Reed Copsey

Peut-être que pour avoir un avant-goût de MVVM, vous n'avez pas besoin du tout d'utiliser des bibliothèques? Il est facile d'implémenter des éléments de base (DelegateCommand et classe pour générer des notifications de propriété - c'est tout ce dont vous avez besoin), mais cela vous aidera à comprendre MVVM sans introduire de bibliothèque. Vous rencontrerez probablement certains obstacles au cours de cette implémentation et vous devrez le résoudre vous-même, sans aucune bibliothèque tierce. Je crois que cela peut vous aider à élaborer une vision plus claire sur le modèle MVVM (bien sûr, si vous avez de bons conseils) mais sans introduire les détails fournis par les bibliothèques.

Je suis peut-être un peu un inventeur de roues, mais je n'utilise toujours pas de bibliothèques MVVM. Je ne vois tout simplement pas grand-chose qu'ils peuvent fournir afin d'introduire une autre bibliothèque dans le projet. Il ne prend généralement pas beaucoup de temps pour implémenter les éléments de base dont vous avez besoin pour MVVM, mais à la fin, vous recevez un code très flexible (car tout le code est à vous).

27
Snowbear