Estamos creando un servicio web WCF usando WSSF. La idea es que expondrá nuestra base de datos principal a través del servicio y nos permitirá construir varias aplicaciones y sitios web sobre el servicio. Por el momento estoy construyendo una aplicación cliente simple que descargará algunos datos de este servicio, manipúlalo y luego entrégalo al usuario como un archivo CSV de informe.Aplicaciones WCF/Cliente: ¿a dónde debe ir la lógica comercial?
Ahora la pregunta es ¿dónde debería ubicarse la lógica de negocios (que manipula los datos)? Pensé que lo pondría dentro del servicio. Ya tengo una capa de negocios con objetos simples que mapean casi uno a uno con la base de datos (cliente, orden, etc.). Pensé que haría algunos objetos de "nivel superior" para manipular los datos. Por ejemplo, al usar el cliente, el pedido y otros objetos y producir un informe, etc., pensé que el mejor lugar para esto sería en la capa de negocios para el servicio. De esa manera podríamos reutilizar esta lógica para varias aplicaciones diferentes si es necesario.
Desafortunadamente mi jefe no está de acuerdo. Él quiere una "separación de preocupaciones" y dijo que el lugar correcto para esta lógica sería en una capa empresarial dentro de la aplicación cliente en lugar de en el servicio. Supongo que esto podría ser más simple, pero me gustaría utilizar mi poderoso modelo de objetos dentro de la capa de negocios de servicios para escribir este código. Los objetos expuestos por el servicio no son objetos "reales" y en realidad son estructuras de datos ligeras sin la potencia del modelo de objetos completo que existe dentro de la capa de negocios de servicios.
¿Qué piensan? Muchas gracias por la ayuda.
Saludos Marcos
preguntele: si necesitamos otro cliente, ¿deberíamos duplicar toda la lógica comercial o usar una versión centralizada? –
Continuando con la lógica de @Rubens Farias, si la lógica de negocio necesita ser arreglada y reside en el cliente, entonces * todos los clientes deben ser actualizados. Si está en el servicio, solo debe actualizarse el servicio. –
Gracias por las respuestas. Sí, también creo que la reutilización es genial. Supongo que el principal inconveniente es que la actualización del servicio podría afectar a todos los clientes existentes. –