-
[Linq to Sql] BLL ou DAL
Salut,
je me demande quel est le meilleur abordage de possitioné ma class LINQ to SQL. Dans mon project BLL (BusinessComponentsLayer) ou dans mom project DAL (DataAccessLogicComponents).
Car j'ai un problem au moment de acedé au metode insertonsubmit e les outres dans mon project win32 ou web.
Que recomendez-vous mois?
-
logiquement si tu vas jusqu a faire des couches DAL et BLL (Business Logic Layer) ta couche UI ne devrait pas avoir a appeller les méthodes "insertonsubmit"
-
Si tu as bien les deux couches BLL et DAL, je te conseille de mettre tous les objets LinQ To SQL dans la DAL. Fait ensuite une BLL faisant appel à la classe DataContext de LinQ To SQL. Ta BLL fera office d'interface (+logique métier) avec LinQ To SQL.
Personnellement, je prefère un design plus simple avec une seule couche (BLL + DAL) lorsqu'on travaille avec LinQ To SQL ou Entity Framework. La classe DataContext et LinQ To SQL/Entities suffit dans la plupart des cas. Au pire, on peut étendre les classes métiers et la classe DataContext.
-
Hello,
Je travaille actuellement sur une application WEB dont l'architecture de dev est la suivante
ASP.NET
BLL
DAL
Dans la DAL je code les fonctions en Linq to entité ou en Entité to SQL (mon contexte se trouve ici)
Dans la BLL Je consolide en fonction de la fonctionnalité les différentes fonctions de la DAL
La couche ASP.NEt fait appel à la BLL
De façon tranverse je donne accès au modèle de données pour pouvoir accéder aux entités manipulées
-
Pour ma part, j'ai trois couches :
- UI (Interfaces utilisateurs Win32)
- Core (BLL)
- Data (DAL)
Mes entitées linq-to-sql sont dans la couche DAL, et j'ai créé les objets de mon modèle de domain dans la couche DLL (presqu'identiques aux entitées linq-to-sql, mais seront utilisés par la couche présentation).
Comme je ne veux pas avoir de lien direct entre ma couche UI et ma couche BLL, j'ai créé des DAO (data access objects) dans la couche BLL, qui contiennent les méthodes dont la couche UI aura besoin, du genre GetByID(int Id), GetByFirstName(string firstName), etc. La vocation de mes DAO est d'interroger la DAL et retourner les objets concrets de ma BLL aux couches supérieures.
Mon problème est que les DAO de ma couche BLL, utilisent les expressions LINQ pour retirer l'information nécessaire de la couche DAL. Je crois qu'il serait plus sage de garder ces expressions LINQ au niveau de la couche DAL, mais j'ai aucune idée comment faire cela.
Est-ce que quelqu'un peut m'aider ?
Merci d'avance,