2010-05-11 6 views
7

Desde hace un tiempo, mi equipo y yo hemos envuelto nuestra capa de acceso a datos en una fachada de servicio web (utilizando WCF) y llamándola desde la capa de lógica de negocios . Mientras tanto, podríamos simplemente usar el patrón de repositorio donde la capa de lógica de negocios consume la capa de acceso a datos localmente a través de una interfaz, y en cualquier momento, podemos cambiar las cosas para que lleguen a un servicio (si es necesario).Para envolver o no: ajustar el acceso a datos en una fachada de servicio

La pregunta es: ¿Cuándo es un buen momento para envolver la capa de acceso a datos en una fachada de servicio y cuándo no? En este momento, parece que la principal ventaja es que otras aplicaciones pueden consumir el servicio, pero si son aplicaciones internas escritas en .NET, pueden consumir el ensamblado .NET en su lugar. ¿Hay otras ventajas de tener el DAL envuelto en un servicio que desconozco?

+0

Incluso para una aplicación interna, consumir directamente el conjunto .NET podría ser un PITA para actualizar si tiene muchos usuarios de su ensamblado, pero un servicio web sería mucho más flexible. – Nate

+0

Esta es una gran pregunta ... El gasto relacionado con la serialización/transporte/deserialización puede ser realmente costoso, por lo que tiene sentido considerar otros modelos. Por otro lado, tener una fachada de servicios puede hacer que sea más fácil enriquecer y transformar datos. Otro aspecto agradable de este patrón es la capacidad de integrar puntos finales en cola para evitar el almacenamiento. – JoeGeeky

Respuesta

2

Esto realmente depende de qué/cómo se va a usar el servicio de datos. Si solo hay unas pocas aplicaciones, no es una gran oferta, pero si tiene muchas aplicaciones y muchos cambios en el lado de los datos, podría ser problemático implementar versiones actualizadas y asegurarse de que no se rompa. aplicaciones existentes.

Con WCF puede versionar los servicios que ayudarán a mitigar ese riesgo. Entonces, en realidad, mucho depende del número de consumidores, la ubicación de los consumidores (internos/externos) y la frecuencia de las actualizaciones.

Esto es al menos lo que uso al evaluar.

Cuestiones relacionadas