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 :

ASP.Net MVC rend-il la logique métier portable?


Sujet :

ASP.NET MVC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut ASP.Net MVC rend-il la logique métier portable?
    Salut,

    J'avoue je suis plus "multicouche" que "MVC". Comme on parle beaucoup de ce dernier je me renseigne et m'interroge.

    MVC a été inventé en 1979 bien avant donc l'apparition du net, des histoires de routage d'url etc.. MVC permet de développer une application (client lourd, léger) en distribuant des rôles. Dans ce contexte, l’UI se contente d’afficher et la logique est déportée dans les contrôleurs.

    "ASP.Net MVC" est une des réponses à la question:
    How do you modularize the user interface functionality of a Web application so that you can easily modify the individual parts?
    Que je traduirai par: Dans une interface utilisateur web, comment rendre les fonctionnalités modulaires afin de les modifier facilement?

    Si MVC peut cohabiter avec d’autres modèles, avec "ASP.Net MVC" on est clairement orienté web. Toutefois, il se pourrait que votre client vous dise: « Je veux réaliser les mêmes opérations de gestion sur mon Windows Phone ». Ou bien vous pouvez avoir besoin de développer une application console pour réaliser certaines opérations avec un batch.




    Mes questions :
    1. Quelles précautions prenez-vous pour être certain que votre logique métier est indépendante de l’interface?
    2. Est-ce que le controleur n'est pas à la vue ce que le code behind est à la page?
    Immobilis
    "Winter is coming" (ma nouvelle page d'accueil)

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    1 377
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 377
    Par défaut
    Citation Envoyé par Immobilis Voir le message
    J'avoue je suis plus "multicouche" que "MVC".
    L'un n'empêche pas l'autre

    MVC n'est qu'un pattern de Présentation, il ne dis pas comment il faut structurer ton domaine. Libre à toi d'utiliser une archi multicouche, DDD ou autre... Le comment construire le modèle que tu utilise dans ta structure MVC, le pattern ne le dit pas ^^

    1. Ben c'est simple la logique métier n'est pas dans mon application de présentation

    Pour te donner une idée voici une architecture DDD où la UI applique le pattern MVC.

    http://blogs.businesssoftwareengineering.com/?p=28

    2. le pattern MVC sert à séparer la présentation, les traitements et les données, donc si tes traitements étaient dans le code-behind le controller le remplace en ça
    Échouer, c'est avoir la possibilité de recommencer de manière plus intelligente.

    Twitter Blog Mon site

    Mon article sur l'agilité

  3. #3
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Tu ne mets pas de logique métier dans tes contrôleurs?
    "Winter is coming" (ma nouvelle page d'accueil)

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    1 377
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 377
    Par défaut
    Citation Envoyé par Immobilis Voir le message
    Tu ne mets pas de logique métier dans tes contrôleurs?
    Non par définition du pattern non, voici la définition Wikipedia de MVC :

    The pattern isolates "domain logic" (the application logic for the user) from the user interface (input and presentation), permitting independent development, testing and maintenance of each (separation of concerns).
    Il n y a aucune raison pour que de la logique métier soit présente dans le controller ce n'est pas son rôle, son rôle est :

    The controller interprets the mouse and keyboard inputs from the user, informing the model and/or the view to change as appropriate.
    Tirer de : http://msdn.microsoft.com/en-us/library/ff649643.aspx
    Échouer, c'est avoir la possibilité de recommencer de manière plus intelligente.

    Twitter Blog Mon site

    Mon article sur l'agilité

  5. #5
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Citation Envoyé par rad_hass Voir le message
    L'un n'empêche pas l'autre
    Dans une architecture multicouche, UI n'est pas sensé s'adresser directement au fournisseur de données (model du MVC). A moins qu'on considère que le model est une sorte de BLL + DAL. Sinon, cela parait difficile.
    Citation Envoyé par rad_hass Voir le message
    Non par définition du pattern non, voici la définition Wikipedia de MVC :
    Je trouve pas que l'article de Wikipedia soit génial. De plus, ASP.Net MVC implémente le modèle Front Controller (http://dotnet.developpez.com/mvc/ape...overview/#LC-A). Ca ne change pas forcement le fond, mais cela peut complexifier le modèle. Sinon,
    You have decided to use the Model-View-Controller(MVC) pattern to separate the user interface logic from the business logic of your dynamic Web application. You have reviewed the Page Controller pattern, but your page controller classes have complicated logic, are part of a deep inheritance hierarchy, or your application determines the navigation between pages dynamically based on configurable rules.
    Je serai quand même curieux de voir combien de projets intègrent la logique métier dans les contrôleurs.
    Citation Envoyé par rad_hass Voir le message
    Il n y a aucune raison pour que de la logique métier soit présente dans le controller ce n'est pas son rôle, son rôle est
    On est d'accord. Simplement, ce n'est pas super explicite dans la doc ni dans le modèles "out of the box" de VS.

    Si je comprend ce que tu dis, il faut créer des projets en plus du projet web pour implémenter la partie métier.
    "Winter is coming" (ma nouvelle page d'accueil)

  6. #6
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Par défaut
    Si je comprend ce que tu dis, il faut créer des projets en plus du projet web pour implémenter la partie métier.
    Exactement, pour une appli 3-tiers, mvc ne représente que la couche présentations.

    Je serai quand même curieux de voir combien de projets intègrent la logique métier dans les contrôleurs.
    Comme toujours entre la théorie/best practices et les fait , il y souvent un gros écart.

    En résumé aspnet.mvc ne sert qu'à faciliter le traitement des formulaires web, ne pas avoir de postbacks ou de viewState à gérer. De plus en aspmvc on écrit directement le html généré, ce qui facilite grandement le javascript ensuite.

    Si tu veux intégrer ta logique métier dans le controlleur ou dans le modèle, rien ne t'en empêche, comme en aspnet ou rien ne t'empêche de définir tes requêtes directement sur la page.

Discussions similaires

  1. Sortie de Microsoft ASP.NET MVC Beta
    Par Jérôme Lambert dans le forum Général Dotnet
    Réponses: 17
    Dernier message: 06/11/2008, 23h12
  2. [ASP.NET MVC] C'est quoi ?
    Par DranDane dans le forum ASP.NET
    Réponses: 2
    Dernier message: 05/09/2008, 11h48
  3. ASP.NET MVC Preview 4
    Par hollywood dans le forum Général Dotnet
    Réponses: 0
    Dernier message: 22/07/2008, 11h57
  4. Framework ASP.NET MVC
    Par superbobo dans le forum Général Dotnet
    Réponses: 5
    Dernier message: 02/07/2008, 16h11
  5. ASP.NET MVC Preview 2
    Par cereal59 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 04/04/2008, 16h41

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