Je travaille sur un projet MVC où je suis l'architecture en couches. Après avoir lu et fait des recherches sur le web, j'ai compris que l'utilisation de couches séparées est une approche optimale. Donc, mes couches sont:Dépendance circulaire de la logique métier et de la couche d'accès aux données
- couche de présentation a: Contrôleurs, Vues
- Business Layer: projet de bibliothèque de classes séparées (Comprend les modèles de domaine (représentant les entités de table), les services de logique métier, dossier séparé pour ViewModels)
- données couche d'accès: A des appels à la base de données (instructions SQL, connexions)
maintenant, le problème se pose:
BLL appelle à la couche d'accès aux données:
public PartnerOperation(IDataAccess dataRepository)
{
_dataAccess = dataRepository;
}
public void InsertRequest(PartnerRequestModel partnerRequestModel)
{
_dataAccess.InsertIntoDB(partnerRequestModel); //Domain object passed to DLL method
}
Maintenant, mon BLL dépend sur la couche d'accès aux données qui est en fonction de BLL parce que les objets de domaine sont à l'intérieur BLL. Donc, les deux ont des références les uns aux autres. Je suis rigoureusement à la recherche pendant quelques semaines, mais je n'ai pas trouvé de solution.
J'ai déjà traversé Business Logic Layer and Data Access layer: circular dependency mais cela ne résout pas complètement mon problème.
Certains sites Web prennent en charge l'architecture de couche, une certaine approche d'oignon revendiquée est meilleure. Par exemple: this article affirme que toute cette approche (Controller -> BLL -> DLL) n'est pas optimale.
- Comment puis-je surmonter la dépendance circulaire?
- Mon approche pour la construction de cette application Web est-elle valide?
Moyens: contrôleur appelle la couche de persistance (DLL) -> appelle la couche de gestion (a la logique métier, classes de modèle de domaine). Si oui, alors est-il fiable de suivre cette approche? Veuillez me corriger si l'interprétation était fausse. – Rishu
J'ai élargi ma réponse. J'espère que ça va aider. Je viens juste de me rendre compte qu'il pourrait y avoir beaucoup d'autres termes que vous aurez besoin de connaître avant qu'une architecture d'oignon ait du sens. –