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 :

Architecture d'une application ASP.NET MVC4


Sujet :

ASP.NET MVC

  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2014
    Messages : 1
    Par défaut Architecture d'une application ASP.NET MVC4
    Bonjour
    je suis en train de faire une recherche sur l'architecture d'une application asp.net mvc4 et je n'ai rien trouvé

    merci de me répondre

  2. #2
    Membre Expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Par défaut
    Cadeau, ça vient directement de ma formation sur ASP.Net MVC 5

    Nom : Illustrations.png
Affichages : 4012
Taille : 26,8 Ko

  3. #3
    Invité
    Invité(e)
    Par défaut
    Il y a un truc qui cloche dans ton schéma. Dans ASP.Net MVC il y a MVC et dans MVC il M pour Model. Donc ma question est simple pourquoi le bloc Model n'est pas un sous-bloc du bloc ASP.Net MVC ? Je ne parle pas du contenu du bloc Model qui est tout à fait correct.

  4. #4
    Membre Expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Par défaut
    Dans MVC il y a Modèle en effet mais celui-ci est externe à la tuyauterie du MVC lui-même.

    Le principe est simple : tu as un modèle métier (souvent existant) et tu veux le projeter visuellement sans induire de couplage => tu intercales une couche de contrôle.

    Cependant tu remarqueras que dans mon schéma il y a une partie modèle de vue (view-model) qui est une projection non visuelle du modèle, dans l'idéal c'est un mapping direct d'un sous-ensemble du modèle.
    Donc au sein du modèle d'exécution ASP.Net MVC c'est là que tu retrouves des morceaux plus ou moins bruts du modèle métier.
    Le rôle de projecteur visuel est tenu par le moteur de templates Razor qui va générer une partie de la vue.

    Et d'ailleurs quand tu développes un projet MVC le modèle est toujours isolé dans son propre projet et assembly.
    Même s'il n'existait pas auparavant il y a (au moins) 3 bonnes raisons :
    - permettre la réutilisation future du modèle : si tu développes un nouvelle UI en client lourd (WPF, WinRT...) tu ne veux pas dépendre d'un projet ASP.Net MVC
    - faciliter les tests unitaires : tu as typiquement un projet de test du modèle métier et un de l'application MVC
    - séparer logiquement les différentes parties de l'application est toujours une bonne pratique même si techniquement tu n'en tires pas profit : quelqu'un débarquant a tout de suite une vision plus claire de l'architecture.

    J'espère que c'est clair désormais.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Pragmateek Voir le message
    Le principe est simple : tu as un modèle métier (souvent existant) et tu veux le projeter visuellement sans induire de couplage => tu intercales une couche de contrôle.
    [...]
    J'espère que c'est clair désormais.
    Pas besoin de toutes ces explications. Je connais le but du pattern MVC et ce que veut dire un modèle dans le pattern MVC et ce que cela apporte comme avantages. Ce qui pose problème c'est ton schéma pour expliquer le pattern d'architecture

    Ta réponse à ma question c'est ça si j'ai bien compris :
    Citation Envoyé par Pragmateek Voir le message
    Dans MVC il y a Modèle en effet mais celui-ci est externe à la tuyauterie du MVC lui-même.
    MVC n'est pas une tuyauterie mais un pattern. C'est ASP.net MVC la tuyauterie pour moi.

    Citation provenant de Wikipedia (elle est à peu près la même dans tous les bouquins traitant du sujet) :
    Citation Envoyé par Wikipedia
    Le modèle représente le cœur (algorithmique) de l'application : traitements des données, interactions avec la base de données, etc. Il décrit les données manipulées par l'application. Il regroupe la gestion de ces données et est responsable de leur intégrité.
    Et c'est ce que fait ton bloc Model dans ton schéma. Ce n'est pas parce que le Model existe la plupart du temps que celui-ci doit être exclus du pattern d'architecture MVC. Que ton modèle existe ou pas, quand tu implémentes MVC, alors ton modèle fait partie du M dans le MVC. Sinon les VM (View models) sont des modèles juste simplifiés. Ils sont créés la plupart du temps pour ne pas exposer trop de données à la vue (éviter l'over-posting et utilisation de AutoMapper ou EmitMapper pour mapper le modèle à la vue modèle etc) et parfois vu qu'une vue n'est associé qu'avec un seul type de modèle et que les données à afficher peuvent provenir de plusieurs modèles alors les vue-modèles viennent à la rescousse.

    Pour répondre à la question initiale de saber07 :
    MVC est un pattern d'architecture. ASP.Net MVC est juste une technologie (ce n'est pas une architecture), c'est la tuyauterie intégrée à la plateforme .Net facilitant l'implémentation du pattern MVC. Il faut d'abords comprendre le but initial de MVC et une fois cela fait alors il faut étudier comment ASP.Net MVC permet de l'appliquer et cela il y a plein de site dont http://asp.net/mvc qui te faciliteront la tâche.
    Dernière modification par Invité ; 27/05/2014 à 09h32.

  6. #6
    Membre Expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Par défaut
    Donc dans ce cas on est d'accord.

    C'est un schéma de l'architecture du framework ASP.Net MVC pas du design pattern MVC.

    Donc c'est pour cela qu'il y a un bloc ASP.Net MVC avec juste sa tuyauterie (routage, contrôle et vue) qui est bien distincte du modèle.

Discussions similaires

  1. Réponses: 4
    Dernier message: 24/08/2011, 09h30
  2. Réponses: 8
    Dernier message: 18/08/2005, 18h42

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