Anthony Moore
Microsoft Corporation
Octubre de 2000
Resumen: una explicación detallada sobre el uso de ASP+ para verificar los controles web
Introducción
Este artículo explica en detalle cómo funcionan los controles de verificación ASP+. Si desea generar una página compleja con controles de verificación, o desea extender el marco de verificación, se le aconseja que lea este artículo. Si desea aprender a usar controles de verificación o decidir si utilizar controles de verificación, consulte "Verificación de entrada del usuario en ASP+ (inglés)".
empezando
Sabemos que a lo largo del proceso de desarrollo ASP+, es importante comprender la verificación. Mirando la mayoría de los sitios web comerciales hoy en día, verá que hay muchos formularios en estos sitios que obviamente se validan al ejecutar mucho código escrito a mano. Escribir código de verificación no es un trabajo interesante. Puede ser atractivo si desea escribir código para mostrar tablas de datos o generar gráficos sobre la marcha, pero nadie puede confirmar a sus colegas que este enfoque "genial" puede prohibir los valores nulos en el campo de nombre.
Por otras razones, la verificación de aplicaciones web también es muy problemática. HTML 3.2 tiene muchas restricciones en el contenido que puede controlar o comentarios que puede obtener de los usuarios, por lo que no puede aplicar técnicas que puedan usarse en clientes más funcionales, como prohibir a los usuarios ingresar ciertos caracteres o pitidos. El uso de scripts de navegador puede dar lugar a una verificación más poderosa. Sin embargo, este método es difícil de probar porque no hay necesariamente scripts en el navegador del cliente, y los usuarios maliciosos pueden evitarlo. Por lo tanto, para garantizar la seguridad del sitio, es necesario realizar la misma inspección en el servidor.
Al desarrollar ASP+, nuestra intención original era usar solo un control para manejar la verificación, lo que podría haber sido un control de cuadro de texto que podría mostrar errores. Pero cuando estaba diseñando el control, descubrí que este deseo no podía realizarse. Observamos una gran cantidad de formularios de entrada de datos, tratando de encontrar una solución que podría funcionar con tantos formularios como sea posible. Encontramos que los formularios de entrada de datos tienen muchas características interesantes:
Aunque los mensajes de error o los iconos a menudo son adyacentes al elemento de entrada, casi siempre se encuentran en diferentes celdas de la tabla.
A menudo hay un área en la página para resumir todos los errores.
Muchos sitios incluyen scripts de clientes para proporcionar comentarios más rápidos al tiempo que evitan que Vain vaya y vaya con el servidor.
Muchos sitios que contienen scripts de clientes muestran cuadros de información cuando ocurren errores.
La entrada de texto no solo valida, sino también listas desplegables y botones de radio.
Si un campo está vacío, el sitio generalmente mostrará un mensaje o icono diferente que cuando la entrada no es válida.
Muchos controles de validez son buenos reemplazos para expresiones de uso común.
La verificación generalmente se basa en la comparación entre dos entradas.
El 90% o más de las tareas de verificación son operaciones comunes, como verificar los nombres o los códigos postales. La mayoría de los sitios todavía parecen estar haciendo este trabajo repetidamente.
Porque las diferencias entre los sitios a menudo son demasiado grandes para obtener una solución perfecta para manejar todas las tareas de verificación para cada sitio.
Teniendo en cuenta todo lo anterior, la solución final incluyó cinco controles de validador, el control de las validaciones y la integración con el objeto de página. También es obvio que la solución debe extenderse y se necesita una API tanto en el cliente como en el servidor para cooperar.
Encontramos a través de varias validaciones realizadas en nuestra investigación que parecíamos necesitar una caja de herramientas más grande. En la mayoría de los entornos de componentes, como Microsoft® ActiveX®, podríamos haber intentado integrar toda la funcionalidad del control de verificación en un control, manejando diferentes propiedades en diferentes modos. Afortunadamente, sin embargo, existe una herencia mágica en el marco .NET de Microsoft®, que proporciona un conjunto de controles para realizar una validación específica de propiedades específicas, porque el esfuerzo adicional requerido para derivar cada nuevo control es muy pequeño.
La mayor parte del trabajo realizado por estos controles se implementa en su Validator Base Base Common. También puede derivar de BaseValidator u otros controles para hacer todo el trabajo. De hecho, incluso BaseValidator es demasiado vago para implementar su propia propiedad de texto, pero hereda de la propiedad de la etiqueta.
¿Cuándo y qué pasó?
Comprender la secuencia de eventos es muy efectiva cuando se trabaja con páginas que contienen controles web de validación. Si una condición de verificación es opcional, debe saber exactamente cuándo se realiza la verificación en el cliente y el servidor. Si desea escribir su propia rutina de verificación, puede llevar mucho tiempo o tener efectos secundarios. Al mismo tiempo, también es importante comprender el momento de llamar a la rutina de verificación.
Primero, echemos un vistazo al servidor.