2010-05-11 6 views
7

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?

+0

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

+0

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

Répondre

2

Cela dépend vraiment de quoi/comment le service de données va être utilisé. S'il n'y a que quelques applications, ce n'est pas un gros problème, mais si vous avez beaucoup d'applications et beaucoup de changements du côté des données, il pourrait être problématique de déployer des versions mises à jour et de ne pas casser applications existantes. Avec WCF, vous pouvez mettre à disposition des services de version qui aideront à atténuer ce risque. Donc, en réalité, cela dépend en grande partie du nombre de consommateurs, de l'emplacement des consommateurs (internes/externes) et de la fréquence des mises à jour.

C'est au moins ce que j'utilise lors de l'évaluation.

Questions connexes