fluentvalidation aspnetcore
¿Por qué usar fluentvalidation en lugar de la validación ASP.NET MVC? (1)
La validación fluida es una forma de configurar objetos validadores dedicados, que usaría cuando quiera tratar la lógica de validación como algo separado de la lógica empresarial. El paradigma de la programación orientada a aspectos (AOP) permite la separación de las preocupaciones transversales dentro de un sistema, y la validación es una de esas preocupaciones. La validación de separación ayuda a limpiar el código de su dominio y lo hace más cohesivo, además de brindarle un lugar único para buscar la lógica de validación.
La validación basada en anotaciones de MVC es una forma muy "barata" de obtener una validación básica en una aplicación, sin tener que preocuparse por crear objetos validadores dedicados, creando un sistema de validación que los organiza y los conecta todos juntos. Es muy fácil de configurar, pero puede hacer que los objetos de su dominio sean menos limpios.
Para sistemas pequeños donde toda la lógica de validación se puede manejar usando anotaciones, recomendaría usar solo anotaciones, porque son muy fáciles de configurar. Para sistemas más grandes y complejos, recomendaría separar el problema de validación utilizando objetos validadores.
Personalmente, me gusta usar ambos enfoques: agregar atributos de validación a las clases de ViewModel (lo que significa que las anotaciones no saturan los objetos de mi dominio), así como tener objetos de validación dedicados dentro de la capa de mi dominio. Esta es una pequeña cantidad de duplicación, pero el uso de anotaciones es tan rápido y fácil que el costo de mantenimiento adicional vale la pena.
¿En qué circunstancias elegiría FluentValidation (FV) sobre ASP.NET MVC 3 ?
¿Cuáles son las ventajas de FV sobre MVC? Me doy cuenta de que con este último tenemos que escribir mucho más código y podemos ensuciar el código con anotaciones de datos. Además, parece ser más fácil escribir la validación personalizada con FV que con MVC. Sin embargo, con MVC es posible hacer uso de la anotación de datos y conectar la validación jQuery en.
Entonces, ¿qué en tu opinión te haría elegir uno sobre el otro? ¿Hay circunstancias en las que incluso utilizarías ambos?