Pregunta

Al codificar una aplicación MVC tradicional, ¿cuál es la mejor práctica para codificar validaciones de formularios del lado del servidor?¿El código pertenece al controlador o a la capa del modelo?¿Y por qué?

¿Fue útil?

Solución

De Wikipedia:

Controlador de vista de modelo (MVC) es un patrón arquitectónico utilizado en ingeniería de software.El uso exitoso del patrón aísla la lógica empresarial de las consideraciones de la interfaz de usuario, lo que da como resultado una aplicación en la que es más fácil modificar la apariencia visual de la aplicación o las reglas comerciales subyacentes sin afectar a las demás.En MVC, el modelo representa la información (los datos) de la aplicación y las reglas de negocio utilizadas para manipular los datos;la vista corresponde a elementos de la interfaz de usuario como texto, elementos de casilla de verificación, etc.;y el controlador gestiona detalles relacionados con la comunicación con el modelo de acciones del usuario, como pulsaciones de teclas y movimientos del mouse.

Por tanto, el modelo contiene la aplicación y las reglas de negocio.

Otros consejos

Estoy completamente de acuerdo con Josh.Sin embargo, puede crear una especie de capa de validación entre el Controlador y el Modelo para que la mayoría de las validaciones sintácticas se puedan realizar en los datos antes de que lleguen al modelo.

Por ejemplo,

La capa de validación validaría el formato de fecha, formato de monto, campos obligatorios, etc...

Entonces, ese modelo se concentraría exclusivamente en validaciones comerciales, como que la cantidad x debería ser mayor que la cantidad y.

Mi experiencia con MVC hasta ahora consiste enteramente en rieles.

Rails hace su validación al 100% en el Modelo.
En su mayor parte esto funciona muy bien.Yo diría que 9 de cada 10 veces es todo lo que necesitas.

Sin embargo, hay algunas áreas en las que lo que envía desde un formulario no coincide correctamente con su modelo.Es posible que haya algún filtrado/reorganización adicional, etc.

La mejor manera de resolver estas situaciones que he encontrado es crear objetos de modelo falso, que básicamente actúan como objetos de modelo pero se asignan 1 a 1 con los datos del formulario.Estos objetos de modelo falso en realidad no guardan nada, son solo un depósito para los datos con validaciones adjuntas.
Un ejemplo de tal cosa (en rieles) es Forma activa

Una vez que los datos ingresan (y son válidos), generalmente es un paso bastante simple transferirlos directamente a sus modelos reales.

La verificación de sintaxis básica debe estar en el control, ya que traduce la entrada del usuario para el modelo.El modelo necesita realizar la validación de datos reales.

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