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 multicouches et modèles


Sujet :

ASP.NET MVC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Architecture multicouches et modèles
    Bonjour,

    Je me suis intéressé à l'architecture multicouches pour la réalisation d'une application mais il subsiste quelques questions.

    La communication entre la couche présentation et métier est (si j'ai bien compris) effectuée au moyen de DTO (Data Transfert Object) qui sont de simples structures de données.

    Qui doit s'assurer que les données sont valides ?

    Dans les applications Web MVC, il y a moyen d’annoter les modèles ou d'utiliser ModelState pour le ModelBinder (mais celà requiert de référencer System.Web.Mvc ce qui est à mon sens illogique pour la couche métier).

    Faut-il que la validation se fasse sur la couche métier et signaler les erreurs avec la levées d'exceptions qui seraient traitées par la couche présentation ?
    Ou faut-il faire une première passe dans la couche présentation (au moyen des outils que proposent ASP.NET MVC) puis une seconde dans la couche métier ?

    Si quelqu'un pouvait m'éclairer j'en serais ravi.

    Merci :-)

  2. #2
    Membre éclairé Avatar de Nadinette
    Femme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2012
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Octobre 2012
    Messages : 264
    Par défaut
    Salut,

    J'ai trouvé ça : http://innovacallframework.codeplex.com/

    Je n'ai pas eu le temps de le tester mais à priori, ça a été développé par une boite Française, c'est du MVC 4 et du multicouches.
    J'ai un peu regardé, c'est du lourd... D’ailleurs, je n'ai certainement pas compris toutes les subtilités.

    Ca pourrait peut-être répondre à tes attentes ou à une partie de tes questions.

    A pluche

  3. #3
    Membre éclairé Avatar de Nadinette
    Femme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2012
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Octobre 2012
    Messages : 264
    Par défaut Article dans Programmez N° 159
    Salut,

    Je viens d'acheter le Programmez du mois de décembre, il y a un article sur le Framework Innovacall.

    Bon reveillon

  4. #4
    Membre averti
    Inscrit en
    Août 2010
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 45
    Par défaut
    Dans ta couche présentation tu as une partie model.
    Pour moi dans ton architecture seule la partie model soit être valides par rapport aux données saisies par l'utilisateur.
    En effet la couche métier ne se préoccupe pas de ce que saisit l'utilisateur.

  5. #5
    Membre éclairé Avatar de Nadinette
    Femme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2012
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Octobre 2012
    Messages : 264
    Par défaut
    Salut, tu réponds à qui ?

  6. #6
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 193
    Par défaut
    Citation Envoyé par plouiserre Voir le message
    Dans ta couche présentation tu as une partie model.
    Pour moi dans ton architecture seule la partie model soit être valides par rapport aux données saisies par l'utilisateur.
    En effet la couche métier ne se préoccupe pas de ce que saisit l'utilisateur.
    Euh c'est du n'importe quoi ca
    La couche metier peut et doit faire des vérifications.

    Part contre elle peut se basé sur le modele pour faire une partie de ses vérifications.

    Exemple bateau :
    La classe Etudiant.
    Le modèle vérifie que le nom, prenom date de naissance sont bien remplis.
    Dans la méthode CreerEtudiant, tu vérifieras que le le model est correcte.
    Dans la méthode InscriptionAUnCours,tu vérifiras que l'etudiant n'a pas plus de 18 ans .


    Sans compter que tes données peuvent venir de n'importe qui WebService , donc si ta couche métier ne fait pas de vérification tu peux insérer des données corrompues

  7. #7
    Membre éclairé Avatar de Nadinette
    Femme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2012
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Octobre 2012
    Messages : 264
    Par défaut
    Salut,

    Ben si tu as correctement gaulé ton modèle, la validation est déterminée par les annotations.

    La validation des champs ne permet que de vérifier la compatibilité des données saisies avec les données attendues.

    La validation dans la couche métier est plutôt limité à des règles métier mais on peut tester sir le model est valide côté serveur.

    A bientôt

  8. #8
    Membre averti
    Inscrit en
    Août 2010
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 45
    Par défaut
    Citation Envoyé par BenoitM Voir le message
    Euh c'est du n'importe quoi ca
    La couche metier peut et doit faire des vérifications.

    Part contre elle peut se basé sur le modele pour faire une partie de ses vérifications.

    Exemple bateau :
    La classe Etudiant.
    Le modèle vérifie que le nom, prenom date de naissance sont bien remplis.
    Dans la méthode CreerEtudiant, tu vérifieras que le le model est correcte.
    Dans la méthode InscriptionAUnCours,tu vérifiras que l'etudiant n'a pas plus de 18 ans .


    Sans compter que tes données peuvent venir de n'importe qui WebService , donc si ta couche métier ne fait pas de vérification tu peux insérer des données corrompues
    Désolé je me suis mal exprimé.
    Bien sur que le métier doit vérifier les données.
    J'avais oublié de préciser sur le "format" des données je le voyais vérifier dans la partie présentation tandis que si la saisie était conforme au métier c'était vérifié dans la couche métier.

  9. #9
    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
    Salut
    Citation Envoyé par BenoitM Voir le message
    Euh c'est du n'importe quoi ca
    La couche metier peut et doit faire des vérifications.
    Ca se discute. Les contrôles de "surface" sont très importants pour que l'interface soit conviviale (rapide, explicite).

    Certain modèles (POCO) intègre directement la validation des valeurs de leurs propriétés: http://skalp.developpez.com/traducti...e-dto-et-poco/

    Est-ce que la couche métier doit vérifier une saisie? Pas forcement. C'est important si cela peut faire planter un processus par la suite. Par exemple, l'envoi d'un mail. Toutefois, si cela a déjà été contrôlé en surface est-il nécessaire de refaire cette vérification?

    A mon avis, il faut faire un contrôle en fonction des responsabilités. Si il s'agit d'insérer simplement des données en base, ce pourrait être à la base de données de le faire. "Exemple bateau": une base de données cliente est alimentée par plusieurs interfaces (Web, Phone, Windows), le point commun entre tout ces canaux c'est la base de données. La dernière couche à même de vérifier qu'on a bien un email est la base de données.

    Après, c'est une question d'architecture, de maîtrise, de sensibilité.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

Discussions similaires

  1. Réponses: 21
    Dernier message: 31/10/2012, 21h09
  2. Réponses: 0
    Dernier message: 22/10/2008, 10h28
  3. [Architecture] Comment s'approcher du modèle mvc ?
    Par nikalkal dans le forum EDI/Outils
    Réponses: 4
    Dernier message: 21/06/2006, 17h46
  4. Architecture J2EE et modèle MVC
    Par alexd dans le forum Développement Web en Java
    Réponses: 4
    Dernier message: 23/02/2005, 15h59

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