Estoy de acuerdo con crunchdog: para todas las aplicaciones web menos triviales, debe tener una forma plana de sus objetos comerciales específicamente para su capa de interfaz de usuario/vista. A veces esto se conoce como una clase de modelo de vista y generalmente no contiene más que varias propiedades de cadena que la capa de interfaz de usuario puede obtener y poner directamente sin preocuparse por la validación. (Ver asp.net mvc)
Por un lado, esto mantiene el limpiador capa de interfaz de usuario y más simple, dejando a la puso es esfuerzos hacia la visualización de los datos en lugar de atravesar estructuras de objetos, la revisión y la interpretación de los nulos, etc.
Esto también le da a la capa empresarial la oportunidad de validar esos valores de cadena, devolviendo los valores tal como se ingresaron si no son válidos. Esto puede ahorrar frustración de codificación cuando, por ejemplo, su servidor tiene que manejar una fecha no válida en un campo de fecha. La capa empresarial, que reconoce los valores no válidos, puede devolverlos exactamente como se recibieron junto con los mensajes de error adecuados. Si todo lo que manejaste fueron objetos de negocios/dominio, entonces algunos valores ingresados pueden no ajustarse a los objetos destinados a contenerlos.
También puede ayudar tener una clase designada para mapear valores hacia atrás y hacia adelante entre los objetos de negocios/dominio y el modelo de objeto/vista de UI. Esto ayuda a mantener las preocupaciones de la capa empresarial separadas.
gracias a todos por sus comentarios - muy apreciado – Nick