Supongamos que tiene un formulario web con algunos campos que desea validar como un subconjunto de longitud alfanumérica, mínima o máxima, etc.¿Dónde se registran las reglas de validación para los datos del formulario en una aplicación web?
Puede validar en el cliente con javascript, puede volver a publicar los datos al servidor e informar al usuario, ya sea a través de ajax o no. Puede tener las reglas de validación en la base de datos y enviar mensajes de error al usuario de esa manera.
O cualquier combinación de todo lo anterior.
Si desea un lugar único para mantener las reglas de validación para los datos de usuario de la aplicación web que persisten en una base de datos, ¿cuáles son algunas de las mejores prácticas, patrones o buenos consejos generales para hacerlo?
[editar]
He editado el título de la pregunta para reflejar mejor mi pregunta real! Algunas buenas respuestas hasta ahora, por cierto.
Esto es cierto, pero no aborda el problema de definir las reglas en un lugar central. – pkaeding
La pregunta no especificaba la necesidad de definir reglas en un lugar central. Además, muchas reglas se duplican mejor. P.ej. un campo de caracteres en una base de datos tiene un tamaño máximo de 50 caracteres. Esta es una regla, pero sería mejor para el usuario si no la deja hasta que la inserción de DB lo indique. – AnthonyWJones
Para el punto de vista, un debate interesante en los comentarios (http://thedailywtf.com/Comments/The-Mythical-Business-Layer.aspx). En medio de todo el ruido, pensé que el siguiente comentario era sensato: http://thedailywtf.com/Comments/The-Mythical-Business-Layer.aspx?pg=5#184346 – micahwittman