web-dev-qa-db-fra.com

Exemple de bonne pratique Silverlight-MVVM

J'ai lu un certain nombre de bons articles sur le modèle Model-View-ViewModel et mon équipe a l'intention d'implémenter ce modèle dans la dernière version de notre application. Je ne comprends toujours pas TOUS les éléments qui vont de pair pour que cela fonctionne. Je voudrais trouver un bon exemple de ce modèle sur lequel je peux travailler. Quelque chose à petite échelle, un peu comme Jason Dolinger le fait dans sa vidéo ici , mais j'aimerais quelque chose que je puisse travailler par moi-même à un rythme plus lent.

Merci d'avance pour votre aide.

47
Steve Brouillard

Fondamentalement, un ViewModel est un modèle enveloppant. Maintenant, cela pourrait ne pas être encore très utile :-) Considérez le modèle comme les données avec lesquelles votre application fonctionne, par exemple une personne. Maintenant, une personne a un anniversaire et vous voudrez peut-être avoir un formulaire pour entrer l'anniversaire de la personne. Supposons que nous n'utilisions qu'une simple TextBox, la date apparaît quelque chose comme 01-02-2009 12:00:00 AM. Pour commencer, nous ne voulons pas de la partie temps et nous pourrions également ne pas être satisfaits de la partie 01-02-2009 car cela dépend de vos paramètres régionaux.

Voici donc le ViewModel vient im. Il encapsule la classe Person et expose la date sous la forme de trois valeurs entières, année, mois et jour. Dans le jeu de propriétés, il essaie de construire une date à partir des différentes valeurs et affiche toutes les erreurs qui pourraient se produire.

Donc, simplement dit, un ViewModel est un wrapper de modèle spécifiquement adapté à une vue particulière (affichage). Il élimine la plupart des convertisseurs IValue en même temps.

Josh Smith a une belle explication ici: http://joshsmithonwpf.wordpress.com/2008/11/14/using-a-viewmodel-to-provide-meaningful-validation-error-messages et un grande discussion ici: http://groups.google.com/group/wpf-disciples/browse_thread/thread/3fe270cd107f184f?pli=1

28
Maurice

En voici un autre à ajouter à la liste: Simple MVVM Toolkit par Tony Sneed (vraiment le vôtre): http://simplemvvmtoolkit.codeplex.com .

La boîte à outils se compose de classes d'assistance, de modèles d'éléments Visual Studio et d'extraits de code. En plus de la boîte à outils réelle, il existe un exemple d'application avec des instructions étape par étape sur la façon de créer une application Silverlight de base à l'aide du modèle MVVM.

2
Anthony Sneed

Prism 4.0 inclut désormais une documentation pour la création d'applications MVVM. Ceci est destiné à l'utilisation des bibliothèques Prism mais les concepts fonctionnent pour le modèle MVVM en général.

http://compositewpf.codeplex.com/releases

2
Andy May

La meilleure explication d'un ViewModel a été donnée par Scott Hanselman lors de sa conférence MVC en Europe.

Une réponse unilatérale est - Il s'agit d'un modèle (classe) créé dans le seul but d'envoyer toutes les données nécessaires dont une vue particulière a besoin et également pour recevoir des données modifiées de la vue en cas de liaisons bidirectionnelles.

1
Rahul Misra
1
Michael Washington

Nikhil Kothari a un article sur la façon d'utiliser ce modèle avec sa bibliothèque Silverlight.FX. Découvrez-le ici: http://www.nikhilk.net/ViewModel-Pattern-DLR.aspx

1
Guillaume Gros

J'en ai traversé beaucoup récemment, les deux qui se démarquent sont:

Dan Wahlin (LIDNUG):

http://www.lidnug.org/Archives.aspx

John Papa (PDC 2010):

http://player.microsoftpdc.com/Session/76864d75-b4da-4858-aac7-786c5f28e344

1
Tom

Jetez un œil à mon article sur la MVVM réelle dans Silverlight. Bien que ce ne soit pas pour les nouveaux arrivants, il cible principalement les développeurs experts travaillant sur des projets réels.

http://alexburtsev.wordpress.com/2011/03/05/mvvm-pattern-in-silverlight-and-wpf/

0
Alex Burtsev