Pregunta

Estoy tratando de envolver mi cabeza alrededor de validación de entrada del usuario y validar un objeto comercial. Digamos que estoy trabajando con un objeto cliente. Se tiene las siguientes propiedades: CustomerId, nombre y apellido. Nombre y apellido son necesarios, y su longitud no pueden contener más de 50 caracteres de longitud.

Estoy utilizando ASP.NET MVC 3. También estoy experimentando con Fluido de validación (pero no tiene que ser este marco de validación).

Cuando estoy en la vista Crear al cliente, que paso por el punto de vista de un CustomerViewModel:

[Validator(typeof(CustomerViewModelValidator))]
public class CustomerViewModel
{
   public string FirstName { get; set; }
   public string LastName { get; set; }
}

En CustomerViewModelValidator I establecer las reglas necesarias para la validación como se describe anteriormente. Todo esto valida bien en la vista. Ahora tengo una pregunta. En mi aplicación tengo una capa de servicio, aquí quiero aplicar toda la lógica de la aplicación. Digamos que desea guardar un nuevo cliente entonces voy a tener un método al cliente guardar en la que se pide a Cliente Guardar método de CustomerRepository.

Yo podría tener otra aplicación (aparte de la aplicación web se ha descrito anteriormente) que hará uso de mi capa de servicio. Así que esto va a significar que voy a tener que validar un objeto Cliente si se crea uno. surgen las siguientes preguntas:

  • ¿Es necesario para validar un objeto al Cliente en el Servicio a Cliente, así comprobar nombre y apellido?
  • ¿Sería mejor para crear una nueva clase de validador para validar la clase de atención al cliente? O debería compartirlo?
  • ¿Es necesario para validar CustomerId así? Me refiero a que debe ser mayor que cero, pero ¿cómo iba a un nuevo cliente válida donde ID es 0?

Si alguien puede compartir una cierta penetración / artículos en esta sería apreciado.

Me gustaría añadir algunas reglas de negocio, así, donde sería esto? ¿Dónde y cómo puedo implementar reglas de negocio?

¿Fue útil?

Solución

¿Es necesario para validar un objeto al Cliente en el Servicio a Cliente, así comprobar nombre y apellido?

Puede haber diferentes opiniones sobre este asunto y la mía es que si va a crear un servicio reutilizable, entonces sería más correcto para validar el objeto de cliente en el nivel de servicio.

¿Sería mejor para crear una nueva clase de validador para validar la clase de atención al cliente? O debería compartirlo?

Se debe crear un nuevo validador. Recuerde que CustomerViewModel y Customer son dos clases diferentes. El modelo de vista es específico para una vista determinada y puede contener un subconjunto o un superconjunto de propiedades de la clase modelo. La validación en la capa de servicio debe validar único negocio rules.If está utilizando el servidor SQL esta validación, incluso se podría realizar a nivel de base de datos (mediante el establecimiento de la longitud de las columnas) y una excepción será lanzada si algunas de esas reglas de negocio es violados.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top