Depuis quelque temps, mon équipe et moi enveloppons notre couche d'accès aux données dans une façade de service Web (à l'aide de WCF) et l'appelons depuis la couche logique métier . En attendant, nous pourrions simplement utiliser le modèle de référentiel où la couche logique métier consomme la couche d'accès aux données localement via une interface, et à tout moment, nous pouvons changer les choses pour qu'elle frappe un service à la place (si nécessaire).Envelopper ou ne pas envelopper: habillage d'un accès aux données dans une façade de service
La question est: Quand est-ce le bon moment pour envelopper la couche d'accès aux données dans une façade de service et quand n'est-ce pas? À l'heure actuelle, il semble que le principal avantage est que d'autres applications peuvent consommer le service, mais s'il s'agit d'applications internes écrites en .NET, elles peuvent simplement consommer l'assembly .NET à la place. Y a-t-il d'autres avantages à ce que le DAL soit intégré à un service que je ne connais pas?
Même pour une application interne, consommer directement l'assembly .NET pourrait être un PITA à mettre à jour si vous avez beaucoup d'utilisateurs de votre assembly, mais un webservice serait beaucoup plus rationalisé. – Nate
C'est une bonne question ... La dépense liée à la sérialisation/au transport/à la désérialisation peut être très coûteuse, donc il est logique de considérer d'autres modèles. D'un autre côté, avoir une façade de services peut faciliter l'enrichissement et la transformation des données. Un autre aspect intéressant de ce modèle est la possibilité d'intégrer des points de terminaison mis en file d'attente pour les besoins de stockage fire-and-forget. – JoeGeeky