IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET MVC Discussion :

MVC 4 et ViewModel


Sujet :

ASP.NET MVC

  1. #1
    Membre habitué
    Inscrit en
    Décembre 2010
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 92
    Points : 129
    Points
    129
    Par défaut MVC 4 et ViewModel
    Bonjour à tous,

    J'ai pu voir lors de différents tuto ou réponses sur ce forum que beaucoup de développeurs MVC (.Net) utilisent les viewModels et j'aurais aimé comprendre pourquoi.

    En fait, je me demande quel est l'intérêt d'utiliser les viewModels ?
    Et du coup, les annotations que l'on voit dans la plupart des tuto sur les models, ne devraient-elles pas se trouver sur les viewmodels ?

    De façon générale, comment découpez-vous l'architecture de votre application mvc ?

    Merci d'avance !

  2. #2
    Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2013
    Messages : 39
    Points : 59
    Points
    59
    Par défaut
    Citation Envoyé par same66 Voir le message
    Bonjour à tous,

    J'ai pu voir lors de différents tuto ou réponses sur ce forum que beaucoup de développeurs MVC (.Net) utilisent les viewModels et j'aurais aimé comprendre pourquoi.

    En fait, je me demande quel est l'intérêt d'utiliser les viewModels ?
    Et du coup, les annotations que l'on voit dans la plupart des tuto sur les models, ne devraient-elles pas se trouver sur les viewmodels ?

    De façon générale, comment découpez-vous l'architecture de votre application mvc ?

    Merci d'avance !
    Les viewModels ne font pas à proprement parler partie de MVC, sauf si on utilise Knockout.js où là on a de vrais ViewModels COTE CLIENT,mais on déborde largement le cadre de ta question...

    Personnellement, j'utilise le terme ViewModel dans le cadre de MVC pour des classes qui sont des "surclasses" de Models, et pour faire des choses qui, de mon point de vue, ne devraient pas être faites dans le controleur.

    Exemple simple:

    Model: définition d'un objet personne, Nom, adresse, etc, et d'une une liste de Personnes List<Person> Persons
    ViewModel: Instanciation de la liste de personnes, et définition de propriétés pour la pagination, comme nombre total d'entrées dans la liste, max items sur une page, nombre de pages, page courante.

    Le controleur, dans ce cas, va utiliser le view model, et c'est cet objet qui va être passé à la vue, au lieu du model lui-même.

    Les annotation doivent bien être dans le Model lui même, au plus près des données qu'elles annotent.

    Ca répond à ta question? je n'ai pas le temps maintenant, mais je ferais sûrement un article/tuto d'ici quelque temps à ce sujet.

Discussions similaires

  1. 3 tier MVC application & Viewmodel
    Par Ragnarock dans le forum ASP.NET MVC
    Réponses: 1
    Dernier message: 17/08/2011, 12h29
  2. MVC: ViewModel pattern
    Par Desesperados dans le forum MVC
    Réponses: 0
    Dernier message: 09/02/2010, 12h18
  3. [.Net MVC]ViewModel Pattern et gestion des erreurs
    Par manu11 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 17/01/2010, 22h03
  4. Réponses: 4
    Dernier message: 24/02/2009, 12h06
  5. Classe abstraite / MVC
    Par caramel dans le forum MVC
    Réponses: 5
    Dernier message: 01/04/2003, 09h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo