martes, 17 de abril de 2007

Validacion de Ingreso de datos en Asp.net

Hola a todos nuevamente, esta ves quisiera compartir con ustedes una de las posibilidades de crear una aplicación en asp.net el cual se encargará de validar los datos de entrada de un usuario, un interfáz muy simple, común pero de mucha importancia ya que si los datos ingresados no fuesen los correctos en una aplicación, nos crearía un gran dolor de cabeza mas adelante.

Esto está hecho con .Net 2005 en breve les haré con la versión mas actual.
Bien aquí vamos, lo primero es que tienen que hacer es crear un nuevo proyecto asp.net (asumo que tienen instalado visual basic.net o de no ser asi pueden descargar aqui todos los diferentes lenguajes que Microsoft nos ofrece en su versión "Express", estas descargas son totalmente gratuitas y contienen las herramientas básicas para poder crear una aplicación, por ejemplo seleccionen Visual Basic express y Visual Web developer Express, una ves descargados e instalados correctamente procederemos con la aplicación,(Yo particularmente suelo programar en Visual Basic así que éste será nuestro lenguaje predeterminado para el resto de aplicaciones que les iré mostrando, hasta que aprenda un poco mas del resto de lenguajes que nos ofrece Visual Studio.net 2005)
Bueno nos dejamos de tanta teoría y aquí vamos, sigamos estos pasos para el inicio de esta aplicación:


Como en cualquier formulario de entrada de datos, en las páginas de formularios Web Forms es necesario comprobar que los usuarios escriben información válida, con un formato correcto, etc. Para facilitar esta tarea, puede utilizar controles de validación creados especialmente para páginas de formularios Web Forms. Los controles de validación le permiten comprobar entradas necesarias, tipos de datos, intervalos, diseños y valores específicos simplemente configurando las propiedades. Los controles realizan la comprobación automáticamente e incluyen distintas formas de mostrar la información del error a los usuarios.
En este ejemplo se muestra cómo crear una página de formularios Web Forms que actúe como una sencilla página de registro. La página incluye cuadros de texto para que los usuarios escriban el nombre de inicio de sesión, la fecha de nacimiento, la contraseña y la repetición de la contraseña. Se agregarán controles de validación a la página para asegurar que los usuarios rellenan todos los cuadros y que los valores tienen un formato correcto.
El ejemplo está dividido en varias partes más pequeñas:
· Crear el formulario básico mediante la creación de un proyecto y una página de formularios Web Forms y agregando los controles de entrada y las etiquetas.
· Agregar los controles de validación. Se validarán las entradas necesarias, que el usuario ha escrito un nombre de inicio de sesión y una fecha válidos y que las contraseñas coinciden.
· Pruebas.
Cuando haya finalizado el ejemplo, tendrá un formulario simple que se parecerá al siguiente.



Crear el formulario
El primer paso es crear un formulario al que posteriormente se le agregarán los controles de validación. Cree un nuevo proyecto de aplicación Web y una página de formularios Web Forms.
Para crear el proyecto y el formulario
1. En el menú Archivo, seleccione Nuevo y, a continuación, haga clic en Proyecto.
2. En el cuadro de diálogo Nuevo proyecto, haga lo siguiente:
a. En el panel Tipos de proyecto, elija Proyectos de Visual Basic
b. En el panel Plantillas, seleccione Aplicación Web ASP.NET.
Cuando hace clic en Aceptar, se crea un nuevo proyecto de formularios Web Forms en el directorio raíz del servidor Web especificado. Además, se muestra una nueva página de formularios Web Forms denominada WebForm1.aspx en la vista Diseño del Diseñador de Web Forms.




Agregar controles de entrada
En este ejemplo, cuyo objetivo es crear una página de registro sencilla, agregará controles para que los usuarios puedan escribir su nombre (una dirección de correo electrónico), fecha de nacimiento y contraseña. Los usuarios deben escribir dos veces la contraseña para confirmarla.
Para agregar los controles
1. Desde la ficha Web Forms del Cuadro de herramientas, agregue los siguientes controles al formulario, estableciendo su correspondiente propiedad Id. de la siguiente forma:



2. Establezca la propiedad TextMode de los dos cuadros de contraseña en Password para que se muestren asteriscos (*) mientras los usuarios escriben en ellos.
3. Agregue etiquetas delante de los cuadros de texto para indicar su función. Si la página de formularios Web Forms está en modo cuadrícula, agregue controles Label delante de cada cuadro de texto y establezca su propiedad Text. Si la página está en modo flujo, simplemente escriba texto estático delante de cada cuadro.
4. Ajuste la fuente, el tamaño y el diseño de los controles como prefiera.

Agregar controles de validación
Una vez creado el formulario de entrada, puede agregar la validación. Para ello, agregue controles de validación al formulario, un control por cada prueba de validación que desea realizar. (En total, agregará siete controles de validación para cubrir todas las pruebas que se deben realizar más un control que muestre los errores). Las pruebas de validación son las siguientes:
· Campos necesarios. Para comprobar que los usuarios escriben valores en los cuatro cuadros.
· Formato del nombre. Para este ejemplo, comprobará que el nombre de inicio de sesión del usuario tiene el formato típico de los nombres de correo electrónico: nombre@dominio.xxx. En este ejemplo, no validará que el nombre que proporciona el usuario pertenece a una cuenta de correo electrónico válida.
· Formato de fecha. Validará que la fecha de nacimiento es una fecha válida. (En este ejemplo, no se validará si la fecha está dentro de un intervalo concreto).
· Coincidencia de contraseña. Validará que las contraseñas que el usuario escribe en los dos cuadros de contraseña coinciden.
Buscar campos necesarios
El objetivo es asegurarse de que los usuarios escriben valores en los cuatro cuadros de texto. Esto significa que los cuatro cuadros de texto son campos necesarios.
Para comprobar campos necesarios
1. Desde la ficha Web Forms del Cuadro de herramientas, arrastre un control RequiredFieldValidator al formulario, al lado del cuadro de texto txtnombre.
2. En la ventana Propiedades, seleccione el control de validación y establezca las propiedades siguientes.




3. Establezca las propiedades de fuente, de color y de formato del control de validación si lo desea. Estas propiedades afectan al modo en que se muestran los errores.
4. Repita los pasos 1 a 3 para los otros tres cuadros de texto, creando tres controles RequiredFieldValidation más con la siguiente configuración.




Comprobar el formato del nombre
En este ejemplo, se considera que el usuario escribe una dirección de correo electrónico como nombre de registro. Aunque no puede comprobar si el nombre representa una cuenta de correo válida, sí que puede validar que el nombre cumple el formato típico de dirección de correo (nombre@dominio.com). Así se capturan errores de entrada que suelen cometer los usuarios, como olvidar la cadena ".com" de la dirección de correo.
Para comprobar modelos de este tipo, puede incluir una expresión regular en un control de validación. Si conoce la sintaxis de expresiones regulares, puede crear sus propias expresiones de coincidencia de modelos. Sin embargo, también puede seleccionar una expresión de una lista de expresiones regulares predefinidas, que, por ejemplo, comprueban direcciones de correo, números de teléfono y códigos postales.
Cuando agregue este control de validación, tendrá dos controles para el cuadro de nombre. El contenido del cuadro debe pasar ambas comprobaciones para ser considerado válido. Cuando existen varios elementos de validación para un mismo control, se suele preferir que cada uno muestre su propio texto (normalmente, un asterisco) en la misma ubicación, independientemente de la validación que no se cumpla. Puede especificar esto estableciendo la propiedad Display del control de validación..
Para comprobar el formato del nombre
1. Desde la ficha Web Forms del Cuadro de herramientas, arrastre un control RegularExpressionValidator al lado del cuadro txtnombre.
2. En la ventana Propiedades, seleccione el control de validación y establezca las propiedades siguientes.





Comprobar el formato de la fecha
El objetivo es comprobar que los usuarios escriben una fecha válida en el campo de fecha de nacimiento. Para ello, se utiliza un control de validación que realiza dos funciones al mismo tiempo: comprueba que el usuario ha escrito una fecha (mediante el tipo de dato) y que ésta es posterior a una fecha especificada.
Para comprobar el formato de la fecha
1. Desde la ficha Web Forms del Cuadro de herramientas, arrastre un control CompareValidator al lado del cuadro txtcumpleaños.
2. En la ventana Propiedades, seleccione el control de validación y establezca las propiedades siguientes.


Comprobar la coincidencia de contraseñas
El formulario de registro le pide a los usuarios que escriban la contraseña dos veces para confirmarla. Puede hacer esta comprobación utilizando el mismo control de validación que para la fecha, un control de comparación, pero en lugar de comparar con un valor específico, se comparará el valor de un campo, el segundo cuadro de contraseña, con el valor escrito en el primer cuadro de contraseña.
Para comprobar la coincidencia de contraseñas
1. Desde la ficha Web Forms del Cuadro de herramientas, arrastre un control CompareValidator al lado del cuadro txtrepcontraseña.
2. En la ventana Propiedades, seleccione el control de validación y establezca las propiedades siguientes.



Mostrar errores de validación
Queda un paso. Ha configurado los controles de validación para que muestren un asterisco rojo al lado de un cuadro de entrada que contenga un error. Sin embargo, puede que no sea suficiente información para el usuario. Por ejemplo, éste puede darse cuenta de que ha escrito un nombre de registro incorrecto pero no saber cuál es el error.
Para mostrar detalles sobre errores de validación, existe un control que nos facilita la vida enormemente y nos muestra un resumen de todos los errores que se haya causado. El control muestra el valor de la propiedad ErrorMessage de cualquier control de validación que haya detectado un error. Si existe más de un error, el control de resumen puede mostrar todos ellos, bien en una lista de elementos con viñetas o bien como un párrafo de texto.
Para mostrar errores de validación
1. Desde la ficha Web Forms del Cuadro de herramientas, arrastre un control ValidationSummary al formulario. Coloque el control en un lugar donde haya espacio suficiente para mostrar varias líneas de texto.
2. Si desea mostrar los errores en un formato distinto a elementos con viñetas, seleccione una opción diferente en la propiedad DisplayMode.
3. Configure las propiedades Font y ForeColor para dar formato al texto del mensaje de error.
4. Ya ha terminado de agregar los controles de validación. Ahora puede hacer una prueba para ver qué tal funcionan.
Probar la validación
El objetivo es probar la página de formularios Web Forms con valores diferentes para ver el efecto de los controles de validación.
Para probar los controles de validación
1. En el Explorador de soluciones, haga clic con el botón secundario en el nombre del formulario y elija Ver en el explorador.
2. Cuando se muestre la página, escriba varios valores en los cuadros. Para comprobar la fecha de nacimiento, escriba una fecha incorrecta para la configuración regional del servidor Web.
Cada vez que cometa un error, debería aparecer un asterisco al lado del cuadro que contiene el error.
3. Haga clic en Registrar.
Si existe algún error, aparecerá el texto del mensaje de error en el control de resumen. (Los asteriscos rojos aparecen y desaparecen mientras escribe en los campos).
Si no aparecen los errores esperados, revise la configuración de cada control de validación y pruebe de nuevo.

Conclusión: En esta esta interfaz se puede apreciar cómo funcionan algunos de los controles en ASP.NET, como habran notado todo se ha hecho de modo visual (sin código) podríamos decir que para ir adentrándonos en el mundo de ASP.NET está bien pero si queremos hacer aplicaciones mucho mas robustas confiables se tendría que trabajar netamente con código, esto señores no lo digo yo lo dicen los expertos que dominan la materia en este caso le he consultado a un amigo, Carlos Anampa quien lleva desarrollando algunos años con herramientas .Net

Daniel Adriano Chávarry
Ing. de Sistemas