¿Cómo se evita la duplicación de validación en el servidor y el lado del cliente? ¿Existe una plataforma de programación web que genere una de la otra, por lo que no tengo que mantener las dos sincronizadas?¿Cómo se evita la duplicación de validación en el servidor y el lado del cliente?
Respuesta
La mayoría de los scripts de cliente abandonan el lado del servidor y solo lo hacen en el lado del servidor hoy en día. Puede usar ajax al enviar la publicación, de modo que la respuesta sea un poco más ligera que volver a cargar toda la página.
La validación del lado del servidor es necesaria simplemente porque se puede deshabilitar la validación del lado del cliente.
La validación del lado del cliente no es necesaria, pero hace que su aplicación sea más receptiva durante el manejo de errores, ya que no necesita enviar un formulario al servidor y esperar a que la página resultante regrese.
Una aplicación bien diseñada utiliza ambos.
Como nota al margen, Ajax se puede utilizar para ciertos tipos de validación, como la verificación de nombres de usuario duplicados en un formulario de registro de usuario. Sin embargo, la validación básica, como comprobar si un campo contiene solo números, debería realizarse sin ella.
Lo mejor es hacer la validación en el lado del servidor en la mayoría de los casos. Tienes muchas opciones diferentes para hacer esto más fácil, como Ajax o usar formularios adhesivos en PHP. Personalmente tiendo a hacer la validación en el lado del servidor porque el usuario tiene la opción de desactivar JavaScript y no pueden desactivar la validación en el servidor .....
Hay marcos que pueden generar el lado del cliente validación desde la configuración de validación en el servidor.
Ahora no sé qué idioma o marcos que está utilizando, pero tal vez este artículo puede ser de ayuda: http://www.emadibrahim.com/2008/09/08/client-server-side-validation-in-aspnet-mvc/
Está usando Castillo Validador componente junto con jQuery y añade un poco de pegamento para generar la validación del lado del cliente basada en los atributos de validación del lado del servidor. Es para asp.net mvc.
/Asger
Estoy buscando algo que no sea MS, y el ejemplo en realidad no parecía simplificar las cosas en general. – josh
Bueno, también debería ser posible transferir el principio a otras plataformas ... ¿qué idioma/framework/plataforma prefiere? – asgerhallas
Como han mencionado otros, usted debe tener la duplicación, ya que la validación del lado del cliente es para ayudar a la aplicación reaccionar cuanto antes para ayudar al usuario, pero, la validación real es en el lado del servidor, como nunca deberías confiar en algo pasado hasta que haya sido validado. Probablemente hará una validación más extensa en el lado del servidor, especialmente si hay una necesidad de verificar contra una fuente de datos, por ejemplo, si el nombre de usuario es único en el lado del servidor, pero si el nombre de usuario es lo suficientemente largo o dirección de correo electrónico, podría hacerse en el lado del cliente y en el lado del servidor.
Tiendo a poner comentarios cuando hay una duplicación, especialmente si estoy usando una expresión regular, para asegurarme de que los cambios en uno cambien en otro.
Las buenas pruebas unitarias ayudarán a garantizar que estas dos siempre permanezcan sincronizadas.
¿Cómo se escribe una prueba de unidad que probará tanto el validador del lado del servidor como el del validador del lado del cliente? Parece que, en el caso normal, terminarías con un conjunto duplicado de pruebas unitarias (una para cada idioma), y esas pruebas unitarias podrían no sincronizarse. –
Tendrá dos pruebas, pero la del lado del servidor hará más comprobaciones que la del lado del cliente, ya que el cliente solo está mirando para ver si los datos son más o menos correctos, pero la corrección absoluta es un trabajo para el servidor. –
Lo que puede hacer es tener la lógica de validación del lado del servidor ejecutada por los servicios web que su validación del lado del cliente puede llamar a través de AJAX y también cuando se publica nuevamente en su servidor.
Esto no es para responder a su pregunta, pero es posible que desee modificar su título para que no confunda al lector, a algo así como "¿Cómo mantener la validación en el servidor y el cliente sincronizados?"
La idea del título es bien a) dar al lector idea aproximada de lo que están pidiendo o b) hacer que el lector darse cuenta de que él/ella tiene que leer su contenido para entender su pregunta.
pienso la mejor manera es usar un componente que ofrezca ambas cosas. Su código ha sido probado y no es necesario que lo mantenga. He usado controles Peter Blum's en el pasado con gran éxito. Aparte de eso, creo que deberá mantener dos bases de código si desea ofrecer ambas. Hay una herramienta llamada Script# que puede ayudar a compilar C# a Javascript (realiza una traducción, no una compilación real), pero no estoy seguro de lo bien que funcionaría en esta situación.
Asp.net Versión 1 tenía controles de validación de hacer lo que están pidiendo
- 1. ¿Cómo evitar la duplicación de html en tempates del lado del cliente y del servidor?
- 2. DDD y validación del lado del cliente
- 3. Crear validación combinada del lado del cliente y del lado del servidor en Symfony2
- 4. ASP.NET validador propio lado del cliente y la validación del lado del servidor no disparar
- 5. Método del lado del servidor y del lado del cliente
- 6. ¿Cómo usar las reglas de validación tanto del lado del cliente como del lado del servidor?
- 7. ASP.NET Validación lado del servidor
- 8. Validación de entrada de usuario, del lado del cliente o del lado del servidor? [PHP/JS]
- 9. Validación del lado del cliente de Grails
- 10. Validación del lado del cliente de FluentValidation
- 11. Validación del lado del cliente ASP.NET MVC
- 12. Integrar Validación del lado del cliente
- 13. ASP.NET: Sincronización de reglas de validación del lado del cliente y del servidor
- 14. RegisterOnSubmitStatement después de la validación del lado del cliente
- 15. ¿Cómo ejecutar el código del lado del cliente y del servidor para el mismo botón?
- 16. AngularJS: la integración con la validación del lado del servidor
- 17. JSR 303 Validación de frijoles + Javascript Validación del lado del cliente
- 18. ¿Por qué necesitamos la validación del lado del servidor y del lado del cliente para las aplicaciones web?
- 19. librería javascript para el almacenamiento del lado del cliente con la sincronización del lado del servidor
- 20. Método no estático en el lado del servidor desde el lado del cliente usando JavsScript
- 21. Web Charting, lado del servidor o del lado del cliente?
- 22. Evento del servidor ASP.net manejado desde el lado del cliente
- 23. Generar certificados del lado del cliente en el navegador y iniciar sesión en el servidor
- 24. Validación de datos del lado del servidor en Express + node.js
- 25. lado del servidor MVC + lado del cliente MVC
- 26. Acceso a la variable del lado del servidor en el lado del cliente y viceversa Asp.Net y javascript
- 27. Evite el formato duplicado entre la vista Razor del lado del servidor y la plantilla jQuery del lado del cliente
- 28. Ruby: del lado del cliente o del lado del servidor?
- 29. ¿Cómo se determina el NOMBRE del lado del cliente de un control de servidor?
- 30. ASP.Net MVC 3 Modelo JSON Enlace y validación del modelo del lado del servidor mezclado con la validación del lado del cliente
Esta realidad no responder a la pregunta. Es solo una definición de ambos, mientras él pregunta cómo evitar la duplicación de la lógica para ambos. –