Martin Fowler suggests usando una capa de servicio como un límite entre el modelo de dominio y y "Cargadores de datos". Sin embargo, Rockford Lhotka sugiere construir validación en el objeto comercial en sí mismo y esto es exactamente lo que hace CSLA.NET.Validación y en la capa de servicio o Business Objects?
Los beneficios de la abstracción de esto en una capa de servicio es, obviamente, que su capa de servicios puede coordinar la actividad/operación a través de múltiples objetos de negocio. Pero, ¿cuáles son las otras ventajas y desventajas de utilizar una capa de servicio directamente utilizando objetos comerciales para la lógica y la validación comercial?
También agregaría que algunos objetos de negocios pueden existir para coordinar también. Por ejemplo, no escribiría los comportamientos necesarios para convertir un pedido en una factura, tendría un OrderConverter que verificará un pedido y si lo convierte valide. Lo que normalmente veo como objetos de "servicio" son básicamente un vertedero de métodos apenas relacionados. Todos hacen algo en una tienda, pero aparte de eso no están relacionados. En Csla estos métodos normalmente se encapsulan en clases separadas que tienen pleno conocimiento del uso del caselthat, es decir, sabe todo sobre cómo hacer un pedido de una factura – Andy