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

C# Discussion :

Ptite question archi


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut Ptite question archi
    Hello tout le monde

    Pour simplifier la chose, j'ai une couche DAL, une couche BLL et un objet métier BO.

    Dans ma couche BLL, j'ai une méthode GetById qui va me retourner une instance de BO.

    J'ai bien évidemment la même méthode dans ma DAL qui va aller lire en base.

    Ma question est:
    Qui doit créer l'instance de BO?
    * Est-ce que c'est ma DAL?
    * Est-ce que ma DAL me retourne un DataReader et c'est ma BLL qui crée l'instance de BO à partir de ce DataReader?
    * Autre chose?

    Merci

  2. #2
    Membre Expert Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Par défaut
    Mon point de vue : un DataReader est fortement lié au concept de BDD (même s'il existe des providers ADO pour du Excel). Une couche métier n'a pas à savoir que sa DAL pêche des données en base.

  3. #3
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Citation Envoyé par Guulh Voir le message
    Mon point de vue : un DataReader est fortement lié au concept de BDD (même s'il existe des providers ADO pour du Excel). Une couche métier n'a pas à savoir que sa DAL pêche des données en base.
    Yep je suis d'accord là dessus.
    Mais pour moi, une DAL ne devrait pas non plus savoir quels objets elle manipule non? Ca devrait juste se limiter à un ensemble de valeurs

  4. #4
    Membre chevronné Avatar de npuzin
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2007
    Messages : 265
    Par défaut
    A mon avis ta BLL utilise la DAL mais pas l'inverse. Donc ta DAL ne connait pas ton BO, donc ce n'est pas ta DAL qui instancie le BO.

    Tu devrais creer ton BO dans ta BLL a partir d'une datatable ou dataset retourne par ta DAL.

    La datatable (ou dataset peu importe) est je trouve un bon moyen de communication entre les differentes couches.

  5. #5
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Citation Envoyé par npuzin Voir le message
    A mon avis ta BLL utilise la DAL mais pas l'inverse. Donc ta DAL ne connait pas ton BO, donc ce n'est pas ta DAL qui instancie le BO.

    Tu devrais creer ton BO dans ta BLL a partir d'une datatable ou dataset retourne par ta DAL.

    La datatable (ou dataset peu importe) est je trouve un bon moyen de communication entre les differentes couches.
    Le truc, c'est que c'est lourd un DataSet (ou DataTable)

  6. #6
    Membre éprouvé
    Inscrit en
    Mars 2005
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 131
    Par défaut
    Bonjour,

    Tu peux aussi avoir des BODAL (business object pour la dal) et des BOBLL, cad que tu peux avoir des objets pour un transfert dal vers bll et des objets propres a la BLL, comme ça tu évite un DataTable ou un Dataset.

    Comme ça si par exemple j ai un BO Produit, j'aurai donc deux class : ProductDAO et Product (le deuxiéme c'est pour la BLL).

  7. #7
    Membre chevronné Avatar de npuzin
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2007
    Messages : 265
    Par défaut
    Citation Envoyé par lutecefalco Voir le message
    Le truc, c'est que c'est lourd un DataSet (ou DataTable)
    C'est vrai que le dataset est plus gourmand, mais il a des fonctionnalites sympas dont tu as besoin assez souvent.

    Si tu veux economiser des ressources au maximum, ta 2eme option me parait bonne:

    "Est-ce que ma DAL me retourne un DataReader et c'est ma BLL qui crée l'instance de BO à partir de ce DataReader?"

    A condition d'utiliser le IDataReader, qui je pense n'est pas lie a une DB (possibilite lire excel, xml, etc)

  8. #8
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 700
    Par défaut
    Citation Envoyé par Guulh Voir le message
    Mon point de vue : un DataReader est fortement lié au concept de BDD (même s'il existe des providers ADO pour du Excel). Une couche métier n'a pas à savoir que sa DAL pêche des données en base.
    +1


    La BLL n'a certainement pas à connaitre les Datatruc et machin.. rien, ni meme les Webservices, ni meme le XML, queutchi! Elle fait du METIER, rien d'autre!

    C'est pour ca qu'on dit : "Bonjour l'injection de dépendances"! et qu'on travaille avec des interfaces.

  9. #9
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Citation Envoyé par Chubyone Voir le message
    +1


    La BLL n'a certainement pas à connaitre les Datatruc et machin.. rien, ni meme les Webservices, ni meme le XML, queutchi! Elle fait du METIER, rien d'autre!

    C'est pour ca qu'on dit : "Bonjour l'injection de dépendances"! et qu'on travaille avec des interfaces.
    Ok, DataReader, c'est pas un bon exemple. Prenons DataTable à la place.
    Ton injection de dépendances répond pas pour autant à ma question...

  10. #10
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 2
    Par défaut
    Personnellement, je crois que la création des objets est complètement reliée à la DAL. L'objet sert uniquement à retourner l'information de la DB.

    Citation Envoyé par npuzin Voir le message
    A mon avis ta BLL utilise la DAL mais pas l'inverse.
    Tu devrais creer ton BO dans ta BLL a partir d'une datatable ou dataset retourne par ta DAL.

    La datatable (ou dataset peu importe) est je trouve un bon moyen de communication entre les differentes couches.
    Je ne suis pas vraiment d'accord. En utilisant le Dataset, on se retrouve à créer 2 fois des objets "lourd".

Discussions similaires

  1. [C#] ptite question sur timer
    Par moulefrite dans le forum Windows Forms
    Réponses: 5
    Dernier message: 06/06/2006, 10h24
  2. Ptite question popup IE
    Par zevince dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 15/11/2005, 08h48
  3. ptite question
    Par Andrey dans le forum C
    Réponses: 8
    Dernier message: 12/11/2005, 16h54
  4. ptite question sur le fonctionnement du WSDL
    Par Valarauko dans le forum XMLRAD
    Réponses: 4
    Dernier message: 08/02/2005, 16h07
  5. ptite question sur le having
    Par mic79 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 02/11/2004, 16h43

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