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

Développement Windows Discussion :

Couches DAL - BLL - BOL - UI


Sujet :

Développement Windows

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2002
    Messages
    291
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 291
    Points : 81
    Points
    81
    Par défaut Couches DAL - BLL - BOL - UI
    Bonjour,

    Avant de partir dans le code du projet, j'aimerai avoir votre avis sur mon raisonnement.

    Dans ma solution j'ai 4 projets :
    - UI (qui contient les views et les modelview)
    - DAL (qui contient mon contrat d'accès au données)
    - BLL (qui contient toute la logique métier)
    - BOL (qui contient mes objets - utilisation de Entity Framework)


    La couche UI :
    pas grand chose à dire... ce sont les XAML et les ModelView... cette couche a accès a la couche BLL et BOL.

    La couche DAL :
    Contient une interface IRepository qui dérive de IDispose.
    Pour chaque objet dans ma base, j'ai une interface IObjetRepository qui dérive de IRepository et qui contient les méthodes CRUD...

    La couche BLL:
    Contient toute la logique métier ainsi que les appels vers les méthodes de validation. Cette couche a accès a la couche BOL et DAL

    La couche BOL:
    Contient mes objets (fichier edmx), mes collections ainsi que les classes/méthode de validation..
    Questions :
    - les validations doivent elles se trouver dans les classe des objets ou dans des classes indépendantes ?
    - Est il utilise d'avoir des classes spécifique aux collections d'objets ? est ce que utiliser "List<MonObject>" suffit il ?



    Et enfin j'ai un 5eme projet qui contient l'implémentation concret de ma couche DAL... Par exemple ObjectEntity qui dérive que IObjectRepository et qui utilise l'entity framework pour enregistrer/sauver dans la base de données.

    Ce qui m’intéresse dans ce projet c'est de pouvoir modifier facilement la base de données (BDD, fichier XML, WebService) et de pouvoir intégrer MVVM et MEF.

    Qu'en pensez vous ?

    Merci de votre aide

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mars 2007
    Messages : 127
    Points : 131
    Points
    131
    Par défaut
    Je te conseil de commencer par jeter un oeil à cet article http://www.codeproject.com/KB/silver...lverlight.aspx

    C'est du silverlight, donc ne prends pas en compte la partie RIA, mais ce qui est intéressant est sa séparation de la view des View Models. Car oui les ViewModels sont censés être bien bien détachés de la vue (pour être facilement plug-able à d'autres UI)

    Ensuite que la couche de données soit accessible à l'UI me parait un peu tendue. A moins que ça ne soit uniquement pour utiliser les objets d'EF. C'est plus ton répository qui devrait être attaqué par tes VM.

    Clairement je procède comme ça :
    1 Projet contenant le model edmx avec les entités générés (POCO ou pas)
    1 Projet contenant mes repositories
    1 Projet contenant de la logique métier si nécessaire
    1 Projet avec les vues modèles
    1 Projet UI

    Après ça n'est qu'un avis personnel

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2002
    Messages
    291
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 291
    Points : 81
    Points
    81
    Par défaut
    Merci pour ta réponse,

    finalement ce que tu proposes ressemble à ce que je pensais si ce n'est que tu as dissocié les Views et les ViewModels... en sachant que pour moi je sais très bien que je ne les "plugerai" pas à d'autres UI.

    Par contre, l'UI n'a accès qu'a la couche "BOL" (Model) qui ne contient "que" les objets. La couche d'accès aux données, elle, ne peut être accédée que depuis la couche logique métier (BLL).
    Par contre est ce la couche BOL (Model) contient les "validateurs" ? dois définir 2 fois mes contrôles ? une fois dans le modelview lorsque l'utilisateur veux enregistrer par exemple (et ainsi lui indiquer les erreurs) et une fois dans ma couche métier pour être sur que mes données soient cohérentes ?
    Ou seulement dans la couche "BLL" et je génère des exceptions en cas de problèmes...

    Quelles est votre avis sur ces sujets ?

    MErci

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mars 2007
    Messages : 127
    Points : 131
    Points
    131
    Par défaut
    Avis personnel :
    Je fais mes validations simples dans les vues modèles (champs vides, test de file exists ou path exist, regex validator ...)
    Et je décharge sur la couche du dessous les autres validations si besoin (mettons la consultation d'une source distante pour vérifier la cohérence de données par exemple). Avec génération d'exceptions dans le cas d'une erreur.
    Mais je tends à limiter la remontée d'erreur par exception, et donc bien valider dans mes vues modèles

    Après je tiens à noter que c'est un avis personnel, et en aucun cas une marche à suivre.

    Il serait plus avantageux que d'autres personnes se joignent à tes questions pour que tu ais différents points de vue

    EDIT : Si tu es en SL, regarde du côté de INotifyDataError, c'est plutôt nice

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Application Asp.net et c# avec trois couches Dal Bll et présentation
    Par najma dans le forum ASP.NET
    Réponses: 2
    Dernier message: 12/10/2011, 15h50
  2. Conseil sur DAL->BLL->WCF->WPF
    Par roxytbl dans le forum Windows Communication Foundation
    Réponses: 8
    Dernier message: 29/12/2010, 14h43
  3. Livre - Application en couche (GUI, BLL, DAL)
    Par Kiboumz dans le forum Architecture
    Réponses: 3
    Dernier message: 20/07/2009, 14h44
  4. DAL+BLL que choisir?
    Par fixis dans le forum ASP.NET
    Réponses: 3
    Dernier message: 15/05/2009, 01h13
  5. [Architecture n-tier] Conception DAL & BLL
    Par lapanne dans le forum C#
    Réponses: 5
    Dernier message: 10/07/2007, 17h12

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