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

NHibernate Discussion :

[Nhibernate] MVC et Data Access Layer : besoin d'une précision


Sujet :

NHibernate

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    837
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2003
    Messages : 837
    Points : 377
    Points
    377
    Par défaut [Nhibernate] MVC et Data Access Layer : besoin d'une précision
    Bonjour à tous

    J'étudie la manière dont je pourrais me servir du modèle n-tiers avec NHibernate (d'ailleurs ca ne touche pas que NHibernate mais toute partie touchant au DAL) et je me pose une question.
    Dans la question qui suit, nous ne parlerons pas de la couche présentation mais uniquement couche métier et couche données.
    Imaginons un projet avec quelques classes métier et un autre projet avec la partie accès aux données.
    Afin de respecter la séparation entre les couches et éviter de coupler fortement les deux, il est assez simple d'imaginer la chose suivante pour les opérations CRUD :
    Une simple classe DALCRUD qui possèderait ce genre de méthodes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Void Create(object item)
    {
    SessionFactory.CurrentSession.Save(item);
    }
    Avec SessionFactory.CurrentSession retournant la session nhibernate courante si elle est créée ou alors la créant le cas echéant et retournant cette nouvelle instance.
    Bref cette fameuse classe permettrait de réaliser les opérations CRUD sans se soucier du type de l'objet passé en paramètre, donc jusqu'ici tout va bien.

    Maintenant, là ou ça me titille, c'est pour les requetes un peu plus ciblées. Comment feriez vous ? Imaginons que l'on veuille récupérer les objets dont telle propriété est < à 50, c'est ultra spécifique comme demande. Or cette demande devrait se faire coté DAL et non coté métier.

    Que feriez vous ? avez vous des retours d'expérience ?
    Merci d'avance

    @ +

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    837
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2003
    Messages : 837
    Points : 377
    Points
    377
    Par défaut
    En fait je pense que je vais finir par utiliser ce schéma :

    - Gui : Vue - Controlleur
    - Buisness Logic Layer : logique métier
    - Data Access Layer : Accès aux données

    - Buisness objects : beans

    Grosso modo, BLL possède des services concernant mes BO. Il permet au controlleur d'appeler ce dont il a besoin (getList, CRUD...)
    Le BLL s'adresse au DAL pour récupérer les infos (ou les créer en base). Dans le DAL il y a une classe par classe BLL.

    Ce qui nous donne ceci :

    GUI->CustomerBLL.GetList->CustomerDAL.GetList = retourne Arraylist plein d'objets CustomerBO que GUI peut afficher.

    A savoir que CustomerBLL a un constructeur avec paramètre attendant l'instance de CustomerDAL afin de la stocker dans un coin et s'en servir pour chaque appel. Cela permet de router CustomerBLL vers un autre projet DAL en cas de changement de type de base ou autre.

    Qu'en pensez vous ?

Discussions similaires

  1. Best practice Data Access Layer
    Par touftouf57 dans le forum Accès aux données
    Réponses: 11
    Dernier message: 09/08/2013, 13h07
  2. [DC] Architecture Data Access Layer
    Par GoldenToad dans le forum Diagrammes de Classes
    Réponses: 3
    Dernier message: 25/02/2008, 08h44
  3. Réponses: 5
    Dernier message: 10/01/2007, 09h38
  4. Data access layer (DAL) en DotNet
    Par Wurlitzer dans le forum Oracle
    Réponses: 1
    Dernier message: 18/08/2006, 01h17
  5. Besoin d'une précision pour try/catch, svp
    Par hallek60 dans le forum C++
    Réponses: 9
    Dernier message: 05/01/2006, 21h15

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