6 thoughts on “Mvvm Light : Partie 1 – DataBinding & ViewModel

  1. jojo

    alors là on a fait créer un classe “client ” mais si on avait déja une base de données par exemple sql prête et q’uon veux l’utiliser , il faudrait avoir un moyen pour transformer les tables de cette base en des classes ( fichiers .cs ) pour les manipuler. j’ai cherché et j’avais recours à deux methodes ado.net entity framework et Linkto SQL pour le databinding , je peux pas savoir exactement leurs exactes fonctionalités et j’aimerais bien que vous me les expliquerez et à quel cas on utilise chacun d’eux . et merci 🙂

    Reply
    1. manu404 Post author

      Pour préciser, ceci fait suite au mail que vous m’avez envoyé concernant la création de DAL. Pour partager l’infos, je me permet de le rajouter a la réponse :

      Bonjour
      Tout d’abord, merci de l’intérêt que vous portez à mon blog.
      Pour cela il existe des framework de maping objet-relationnel qui vous permettrons de créer très facilement et de manière très flexible des classes de DAL.
      Vues, procédures, tables, tout y passe avec la conservation des associations, contraintes et cie.
      Entity Framework est celui que j’utilise et est intégré nativement a dotnet.
      Voici quelques ressources :
      http://pmusso.developpez.com/tutoriels/dotnet/entity-framework/introduction/
      Jetez aussi un œil du côté des vidéos des techdays 2009/2010/2011 😉
      Je vais surement faire une petite vidéo et/ou article d’intro sur le sujet courant du week end, stay tuned ^^
      En espérant vous avoir aidé ou, du moins, guidé.

      Et donc pour la suite, soit direction développez, soit attendre samedi ou dimanche que je mette en ligne l’article ^^

      Reply
  2. jojo

    bonjour
    je voudrais savoir quelle est la meilleur solution entre list et observableCollection pour afficher la liste soit disant des clients et avoir la possibilité de faire des opérations CRUD sur cette liste ??
    et aussi j’ai eu recours à des exemple qui fait créer des collection des viewmodel et pas une collection des models alors je me demande quelle est la différence et quand on doit créer une collection des viewmodel et pas des modèles.

    Reply
    1. manu404 Post author

      Les observable Collection. L’avantage est que par exemple quand tu fait Add sur une Observable, l’évent PropertyChanged est levé ^^

      Pour la suite bein le modèle correspond aux données uniquement alors que le viewmodel te servira a “joindre” donnée et view. Par exemple tu utilisera une liste de Model pour afficher dans une listbox des clients. Il y a très peu de cas ou tu utiliseras des liste de viewmodel. (Je pense n’en avoir même jamais eu besoin)

      Reply
      1. Pierre Henri Golard

        Bonjour manu,
        tout d’abord je voudrais, comme bcp d’autres ont du le faire avant moi, vous exprimer ma gratitude envers votre input de “knowledge provider” via ce blog!!!
        Je suis nouveau en mvvm et je me demandais:
        – comment faire coincider un principe cher au mvvm, la séparation des models avec la couche DAL (j’ai lu cela dans un white paper, arretez moi si je fais fausse route!!!), et l’utilisation des Entities avec Entity Framework?
        – dans cet ordre d’idée, pour les opérations CRUD (surtout “C”, “U”, “D”), dans une interface graphique, dois je “binder” mon controle (ex.: textbox wpf) avec:
        – la propriété de mon Objet Model
        OU
        – la propriété (equivalente) de mon Objet Entity ??
        OU
        – la propriété de mon Objet Model, qui doit implémenter INotifyPropertyChanged, et binder mon Objet Model à son equivalent Entity???
        OU
        – la propriété de mon Objet Model,qui doit être repris dans une collection Observable, et binder cette collection d’Objet Model à la collection d’Entity???

        Je suis désolé pour le coté profane de ma question ;-)), mais je n’ai pas trouvé jusqu’ici de tuto/exemples CLAIRS combinant EF & MVVM résolvant ce probléme ;-((
        Si vous disposez, en plus, d’un exemple simple en code illustrant cette problématique, je vous en serais très reconnaissant!!!!!!! 😀
        Merci d’avance!

      2. Emmanuel Istace Post author

        J’avoue ne pas avoir bien compris vos 4 cas… Mais à la question de comment lier votre “DAL” EF à votre vue c’est assez simple. Cela dépendra de la taille de l’application, on peut avoir toute une série de mapper, factory, facade etc en amont ou entre ces couches. Je prendrai ici le cas simple, à enrichir. Dans Model-View-ViewModel on à 3 éléments et deux besoins de communications. Le modèle de donnée, Entity Framework ou un repository; la vue, du XAML; le viewmodel, une classe C#. La liaison View-ViewModel se fait à travers le Binding. Le ViewModel sert sur les données d’une part à présenter les données en vue du Binding pour la View, d’autre part à faire correspondre les données de la View sur le Model. Si ce n’est pas lui qui fait le mapping entre les types, c’est souvent à ce niveau que l’on appel les mappers. Aussi, il permet d’intégrer la logique fonctionnelle ou les points d’entrées de la logique fonctionnelle de l’écran. Donc techniquement vous avez votre modèle de donnée “EF” et celui de la Vue avec souvent des besoins différents. Les objets sont exposé sur le type requis et on expose les types que sur les layers adjacent.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s