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 :

Structure du Model dans une architecture MVC


Sujet :

ASP.NET MVC

  1. #1
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 95
    Points : 264
    Points
    264
    Par défaut Structure du Model dans une architecture MVC
    Bonjour!

    Ayant pour objectif de passer la certification .NET ASP.NET MVC, on a monté une petite équipe au boulot où on se forme mutuellement avec des livres officiels etc.
    Et par rapport à ce qu'on a vu, je me posais une question, qui à mon avis est au niveau de la sensibilité du programmeur

    J'ai remarqué que dans certains livres, la couche Model était composé de plusieurs types de modèles :

    - Un Data Model, donc le modèle classique avec Entity Framework par exemple
    - Un Business Model, qui contiendra toutes la logique, spécifique au modèle, fera les accès BDD pour récupérer les données etc (plutôt que dans le contrôleur)
    - Un View Model, qui fera le lien entre la vue et le DataModel, et qui contiendra tout ce qui est DataAnnotations, ou encore des propriétés non prévues dans la base de données (puisque le Data Model est généré par la base)

    Mais dans d'autres on ne parle pas du tout de cette notion là, ou à la rigueur juste de la partie Data/Business.

    Comment gérer vous la partie Model dans vos projets MVC? Quelle(s) méthode(s) vous semble la plus propre?
    De mon côté j'ai bien tendance à privilégier Data/Business/View, mais je suis conscient que sur de petits projets ça peut être lourd...

    Voilà, merci pour votre partage d'expertise

  2. #2
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2014
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Salut,

    Je commence a m'auto former a l'ASP MVC, et je viens de voir ton sujet. Je n'avais pas encore entendu parler des différents modèles Data/Business/View , mais cela me semble très interressant.

    Aurais tu des liens qui expliquent ce principe? Si possible en VB, car je ne comprend rien au C# sinon tant pis, je me débrouillerais avec du C# ^^

  3. #3
    Membre éprouvé Avatar de Momoth
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2013
    Messages
    318
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2013
    Messages : 318
    Points : 1 236
    Points
    1 236
    Par défaut
    Pour répondre à la première question, j'utilise les trois que tu as cité.

    J'utilise entity framework pour générer mes classes métiers depuis la BDD et pour faire les requetes sur la base sans prise de tête.

    Pour la couche business, je suis pas sur qu'on parle de la même chose mais pour moi il s'agit d'une couche intermediaire entre tes controlleurs et ton data access (Entity Framework). C'est dans cette couche que j'applique mes regles métiers.

    J'utilise les view models pour créer des objets contenant toutes les propriétés de mes vues car je trouve cela plus pratique pour le binding.

    Pour le modèle multi-couche, je te conseil ce lien.
    La Triforce du développement : Fainéantise, Curiosité et Imagination.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'étude
    Inscrit en
    Février 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'étude

    Informations forums :
    Inscription : Février 2014
    Messages : 19
    Points : 29
    Points
    29
    Par défaut
    Bonjour, (j'espère que ce n'est pas un trop gros déterrage...) , pour ma part même travaillant sur un petit projet j'utilise exactement l'architecture décrite :

    - classes de modèles entity framework (appelées POCO il me semble)

    - couche DAL pour uniquement certaines requêtes métier complexes dans des méthodes statiques (que je souhaite donc partager entre tous mes contrôleurs).

    - un viewModel pour pratiquement toutes mes vues (celles-ci étant plutôt complexes, je bénéficie du binding de modèle lors d'un Post ce qui est plutôt agréable...). Lorsque la vue est simple, j'envoie directement le modèle EF.

    Avez vous trouvé plus d'informations sur les best practices à utiliser ??

    Merci.

Discussions similaires

  1. Réponses: 0
    Dernier message: 05/10/2009, 16h25
  2. Utilisation du pattern Observateur dans la mise en place d'une architecture MVC
    Par Guyiom dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 25/09/2009, 17h14
  3. Menu dans une architecture MVC
    Par kendras dans le forum ASP.NET
    Réponses: 1
    Dernier message: 31/07/2009, 16h52
  4. Réponses: 1
    Dernier message: 28/11/2007, 11h52
  5. Où placer les accesseurs dans une architecture MVC ?
    Par fadeninev dans le forum Zend Framework
    Réponses: 4
    Dernier message: 19/11/2007, 11h41

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