Facultad de Ciencias Exactas y Naturales y Agrimensura
DEPARTAMENTO DE INFORMTICA
REA PROGRAMACIN
CTEDRA PROGRAMACIN II
DESARROLLO DE APLICACIONES WEB
AO 2009 PROF. OSCAR A. ZALAZAR Ctedra: Programacin II 2 Los diferentes lenguajes de programaci n para l a web Actualmente existen diferentes lenguajes de programacin para desarrollar en la web, estos han ido surgiendo debido a las tendencias y necesidades de las plataformas. Desde los inicios de Internet, fueron surgiendo diferentes demandas por los usuarios y se dieron soluciones mediante lenguajes estticos. A medida que paso el tiempo, las tecnologas fueron desarrollndose y surgieron nuevos problemas a dar solucin. Esto dio lugar a desarrollar lenguajes de programacin para la web dinmicos, que permitieran interactuar con los usuarios y utilizaran Bases de Datos. A continuacin los lenguajes de programacin para la web mas utilizados. Lenguaj e HTML Desde el surgimiento de internet se han publicado sitios web gracias al lenguaje HTML. Es un lenguaje esttico para el desarrollo de sitios web (acrnimo en ingls de HyperText Markup Language, en espaol Lenguaje de Marcas Hipertextuales). Desarrollado por el World Wide Web Consortium (W3C). Los archivos pueden tener las extensiones (htm o html). Sintaxis: <html> (Inicio del documento HTML) <head> ( Cabecera ) </head> <body>( Cuerpo ) </body> </html>
<b> </b> Negrita <p> </p> Definir prrafo <etiqueta> Apertura de la etiqueta </etiqueta> Cierre de la etiqueta Ventajas: Sencillo que permite describir hipertexto. Texto presentado de forma estructurada y agradable. No necesita de grandes conocimientos cuando se cuenta con un editor de pginas web o WYSIWYG. Archivos pequeos. Despliegue rpido. Lenguaje de fcil aprendizaje. Lo admiten todos los exploradores. Desventajas: Lenguaje esttico. La interpretacin de cada navegador puede ser diferente. Guarda muchas etiquetas que pueden convertirse en basura y dificultan la correccin. El diseo es ms lento. Las etiquetas son muy limitadas. Lenguaj e Javascript Este es un lenguaje interpretado, no requiere compilacin. Fue creado por Brendan Eich en la empresa Netscape Communications. Utilizado principalmente en pginas web. Es similar a Java, aunque no es un lenguaje orientado a objetos, el mismo no Ctedra: Programacin II 3 dispone de herencias. La mayora de los navegadores en sus ltimas versiones interpretan cdigo Javascript. El cdigo Javascript puede ser integrado dentro de nuestras pginas web. Para evitar incompatibilidades el World Wide Web Consortium (W3C) diseo un estndar denominado DOM (en ingls Document Object Model, en su traduccin al espaol Modelo de Objetos del Documento). Sintaxis: <script type="text/javascript"> ... </script> Ventajas: Lenguaje de scripting seguro y fiable. Los script tienen capacidades limitadas, por razones de seguridad. El cdigo Javascript se ejecuta en el cliente. Desventajas: Cdigo visible por cualquier usuario. El cdigo debe descargarse completamente. Puede poner en riesgo la seguridad del sitio, con el actual problema llamado XSS (significa en ingls Cross Site Scripting renombrado a XSS por su similitud con las hojas de estilo CSS). Lenguaje PHP Es un lenguaje de programacin utilizado para la creacin de sitio web. PHP es un acrnimo recursivo que significa PHP Hypertext Pre-processor, (inicialmente se llam Personal Home Page). Surgi en 1995, desarrollado por PHP Group. PHP es un lenguaje de script interpretado en el lado del servidor utilizado para la generacin de pginas web dinmicas, embebidas en pginas HTML y ejecutadas en el servidor. PHP no necesita ser compilado para ejecutarse. Para su funcionamiento necesita tener instalado Apache o IIS con las libreras de PHP. La mayor parte de su sintaxis ha sido tomada de C, Java y Perl con algunas caractersticas especficas. Los archivos cuentan con la extensin (php). Sintaxis: La sintaxis utilizada para incorporar cdigo PHP es la siguiente: <? $mensaje = Hola; echo $mensaje; ?> Tambin puede usarse: <?php $mensaje = Hola; echo $mensaje; ?> Ventajas: Muy fcil de aprender. Se caracteriza por ser un lenguaje muy rpido. Soporta en cierta medida la orientacin a objeto. Clases y herencia. Es un lenguaje multiplataforma: Linux, Windows, entre otros. Capacidad de conexin con la mayora de los manejadores de base de datos: MysSQL, PostgreSQL, Oracle, MS SQL Server, entre otras. Ctedra: Programacin II 4 Capacidad de expandir su potencial utilizando mdulos. Posee documentacin en su pgina oficial la cual incluye descripcin y ejemplos de cada una de sus funciones. Es libre, por lo que se presenta como una alternativa de fcil acceso para todos. Incluye gran cantidad de funciones. No requiere definicin de tipos de variables ni manejo detallado del bajo nivel. Desventajas: Se necesita instalar un servidor web. Todo el trabajo lo realiza el servidor y no delega al cliente. Por tanto puede ser ms ineficiente a medida que las solicitudes aumenten de nmero. La legibilidad del cdigo puede verse afectada al mezclar sentencias HTML y PHP. La programacin orientada a objetos es an muy deficiente para aplicaciones grandes. Dificulta la modularizacin. Dificulta la organizacin por capas de la aplicacin. Seguridad: PHP es un poderoso lenguaje e intrprete, ya sea incluido como parte de un servidor web en forma de mdulo o ejecutado como un binario CGI separado, es capaz de acceder a archivos, ejecutar comandos y abrir conexiones de red en el servidor. Estas propiedades hacen que cualquier cosa que sea ejecutada en un servidor web sea insegura por naturaleza. PHP est diseado especficamente para ser un lenguaje ms seguro para escribir programas CGI que Perl o C, y con la seleccin correcta de opciones de configuracin en tiempos de compilacin y ejecucin, y siguiendo algunas prcticas correctas de programacin. Lenguaj e ASP Es una tecnologa del lado de servidor desarrollada por Microsoft para el desarrollo de sitio web dinmicos. ASP significa en ingls (Active Server Pages), fue liberado por Microsoft en 1996. Las pginas web desarrolladas bajo este lenguaje es necesario tener instalado Internet Information Server (IIS). ASP no necesita ser compilado para ejecutarse. Existen varios lenguajes que se pueden utilizar para crear pginas ASP. El ms utilizado es VBScript, nativo de Microsoft. ASP se puede hacer tambin en Perl and Jscript (no JavaScript). El cdigo ASP puede ser insertado junto con el cdigo HTML. Los archivos cuentan con la extensin (asp). Sintaxis: <% %> Ventajas: Usa Visual Basic Script, siendo fcil para los usuarios. Comunicacin ptima con SQL Server. Soporta el lenguaje JScript (Javascript de Microsoft). Desventajas: Cdigo desorganizado. Ctedra: Programacin II 5 Se necesita escribir mucho cdigo para realizar funciones sencillas. Tecnologa propietaria. Hospedaje de sitios web costosos. Lenguaj e ASP.NET Este es un lenguaje comercializado por Microsoft, y usado por programadores para desarrollar entre otras funciones, sitios web. ASP.NET es el sucesor de la tecnologa ASP, fue lanzada al mercado mediante una estrategia de mercado denominada .NET. El ASP.NET fue desarrollado para resolver las limitantes que brindaba tu antecesor ASP. Creado para desarrollar web sencillas o grandes aplicaciones. Para el desarrollo de ASP.NET se puede utilizar C#, VB.NET o J#. Los archivos cuentan con la extensin (aspx). Para su funcionamiento de las pginas se necesita tener instalado IIS con el Framework .Net. Microsoft Windows 2003 incluye este framework, solo se necesitar instalarlo en versiones anteriores. Ventajas: Completamente orientado a objetos. Controles de usuario y personalizados. Divisin entre la capa de aplicacin o diseo y el cdigo. Facilita el mantenimiento de grandes aplicaciones. Incremento de velocidad de respuesta del servidor. Mayor velocidad. Mayor seguridad. Desventajas: Mayor consumo de recursos. Lenguaj e JSP Es un lenguaje para la creacin de sitios web dinmicos, acrnimo de Java Server Pages. Est orientado a desarrollar pginas web en Java. JSP es un lenguaje multiplataforma. Creado para ejecutarse del lado del servidor. JSP fue desarrollado por Sun Microsystems. Comparte ventajas similares a las de ASP.NET, desarrollado para la creacin de aplicaciones web potentes. Posee un motor de pginas basado en los servlets de Java. Para su funcionamiento se necesita tener instalado un servidor Tomcat. Sintaxis: Caractersticas: Cdigo separado de la lgica del programa. Las pginas son compiladas en la primera peticin. Permite separar la parte dinmica de la esttica en las pginas web. Los archivos se encuentran con la extensin (jsp). El cdigo JSP puede ser incrustado en cdigo HTML. Elementos de JSP Los elementos que pueden ser insertados en las pginas JSP son los siguientes: Cdigo: se puede incrustar cdigo Java. Directivas: permite controlar parmetros del servlet. Ctedra: Programacin II 6 Acciones: permite alterar el flujo normal de ejecucin de una pgina. Ventajas: Ejecucin rpida del servlets. Crear pginas del lado del servidor. Multiplataforma. Cdigo bien estructurado. Integridad con los mdulos de Java. La parte dinmica est escrita en Java. Permite la utilizacin se servlets. Desventajas: Complejidad de aprendizaje. Lenguaj e Python Es un lenguaje de programacin creado en el ao 1990 por Guido van Rossum, es el sucesor del lenguaje de programacin ABC. Python es comparado habitualmente con Perl. Los usuarios lo consideran como un lenguaje ms limpio para programar. Permite la creacin de todo tipo de programas incluyendo los sitios web. Su cdigo no necesita ser compilado, por lo que se llama que el cdigo es interpretado. Es un lenguaje de programacin multiparadigma, lo cual fuerza a que los programadores adopten por un estilo de programacin particular: Programacin orientada a objetos. Programacin estructurada. Programacin funcional. Programacin orientada a aspectos. Sintaxis: Ejemplo de una clase en Phyton: def dibujar_muneco(opcion): if opcion == 1: C.create_line(580, 150, 580, 320, width=4, fill="blue") C.create_oval(510, 150, 560, 200, width=2, fill='PeachPuff') Ventajas: Libre y fuente abierta. Lenguaje de propsito general. Gran cantidad de funciones y libreras. Sencillo y rpido de programar. Multiplataforma. Licencia de cdigo abierto (Opensource). Orientado a Objetos. Portable. Desventajas: Lentitud por ser un lenguaje interpretado. Ctedra: Programacin II 7 Lenguaj e Ruby Es un lenguaje interpretado de muy alto nivel y orientado a objetos. Desarrollado en el 1993 por el programador japons Yukihiro Matz Matsumoto. Su sintaxis est inspirada en Phyton, Perl. Es distribuido bajo licencia de software libre (Opensource). Ruby es un lenguaje dinmico para una programacin orientada a objetos rpida y sencilla. Para los que deseen iniciarse en este lenguaje pueden encontrar un tutorial interactivo de ruby. Se encuentra tambin a disposicin de estos usuarios un sitio con informaciones y cursos en espaol. Sintaxis: puts "hola" Caractersticas: Existe diferencia entre maysculas y minsculas. Mltiples expresiones por lneas, separadas por punto y coma ;. Dispone de manejo de excepciones. Ruby puede cargar libreras de extensiones dinmicamente si el (Sistema Operativo) lo permite. Porttil. Ventajas: Permite desarrollar soluciones a bajo Costo. Software libre. Multiplataforma.
Ctedra: Programacin II 8 Introduccin a Visual Studio Visual Studio es un conjunto completo de herramientas de desarrollo para la generacin de: Aplicaciones web ASP.NET. Aplicaciones de escritorio. Aplicaciones mviles. Visual Basic, Visual C# utilizan todos el mismo entorno de desarrollo integrado (IDE), que habilita el uso compartido de herramientas y hace ms sencilla la creacin de soluciones en varios lenguajes, se pueden incorporar otros lenguajes al entorno de desarrollo. Asimismo, dichos lenguajes utilizan las funciones de .NET Framework, las cuales ofrecen acceso a tecnologas clave para simplificar el desarrollo de aplicaciones web ASP. Entorno de desarrollo integrado La gama de productos de Visual Studio comparte un nico entorno de desarrollo integrado (IDE) que se compone de varios elementos: el Men, barra de herramientas Estndar, varias ventanas de herramientas que se acoplan u ocultan automticamente a la izquierda, parte inferior y a la derecha, as como en el espacio del editor. Las ventanas de herramientas, mens y barras de herramientas disponibles dependen del tipo de proyecto o archivo en el que est trabajando. IDE con la configuracin de desarrollo general aplicada
Dependiendo de la configuracin aplicada y de las subsiguientes personalizaciones que haya realizado, variar la colocacin de las ventanas de herramientas y de otros elementos en el IDE. Puede cambiar la configuracin mediante el Asistente para importar y exportar configuraciones que se encuentra en el Men Herramientas. Ctedra: Programacin II 9 En esta figura tenemos el Men, la barra de herramienta estndar, abajo a la izquierda el cuadro de herramientas, en el centro la pgina de inicio y despus el explorador de soluciones. Explorador de soluciones El Explorador de soluciones proporciona una vista organizada de los proyectos y sus archivos, as como acceso rpido a los comandos relativos a ello. Las soluciones y los proyectos contienen elementos en forma de referencias, conexiones de datos, carpetas y archivos necesarios para crear la aplicacin. Un contenedor de tipo solucin puede contener varios proyectos y un contenedor de tipo proyecto normalmente contiene varios elementos. El Explorador de soluciones muestra soluciones, sus proyectos y los elementos incluidos en dichos proyectos. En el Explorador de soluciones, puede abrir archivos para editar, agregar nuevos archivos a un proyecto y ver las propiedades de las soluciones, proyectos y elementos. Explorador de soluciones
Pgina de Inicio La Pgina de inicio proporciona una manera sencilla de crear o tener acceso a proyectos, obtener informacin acerca de prximas publicaciones de productos y conferencias o leer artculos recientes sobre programacin. Para tener acceso a la Pgina de inicio, en el men Ver, seleccione Otras ventanas y, a continuacin, haga clic en Pgina de inicio. Editores y diseadores En el IDE esta ubicado en el lugar de la pgina de inicio. El editor y los diseadores que utilice dependern del tipo de archivo o documento que est creando. El Editor de texto es el procesador de textos bsico del IDE, mientras que el Editor de cdigo es el editor de cdigo fuente bsico. Otros editores, como el Editor CSS, el Diseador HTML y el Diseador de pginas Web, comparten muchas de las funciones del Editor de cdigo, junto con mejoras especficas en el tipo de cdigo o de marcado admitido. Los editores y diseadores normalmente tienen dos vistas: una vista de diseo grfica y la vista de cdigo subyacente o vista de cdigo fuente. La vista de diseo le permite especificar la ubicacin de los controles y otros elementos en la interfaz de usuario o la pgina web. Puede arrastrar con facilidad un control desde el Cuadro de herramientas y colocarlo en la superficie de diseo. Diseador de pginas Web, vista Diseo Ctedra: Programacin II 10
En la parte de abajo se puede ver que esta seleccionado diseo, es el lugar donde colocamos los distintos controles, imgenes, etc. de nuestra pgina web, tambin podemos ver el cdigo fuente asociado al diseo y si seleccionamos dividir vemos el diseo y el cdigo.
Cuadro de Herramientas El Cuadro de herramientas muestra los iconos de los elementos que puede agregar a los proyectos Visual Studio. El Cuadro de herramientas est disponible en el men Ver. Puede acoplarlo y fijarlo como abierto o establecerlo en Ocultar automticamente. Cada icono del Cuadro de herramientas se puede arrastrar y colocar en una superficie de vista de diseo; o bien, copiarse y pegarse en un editor de cdigo dentro del entorno de desarrollo integrado (IDE) de Visual Studio. Cualquier accin agrega el cdigo bsico para crear una instancia del elemento del Cuadro de herramientas en el archivo del proyecto activo.
Informacin sobre pginas Web ASP.NET Las pginas Web ASP.NET se utilizan como la interfaz de usuario de la aplicacin Web. Este tipo de pginas presenta la informacin al usuario en cualquier explorador o dispositivo cliente e implementa lgica del sistema mediante el software que se encuentra en el servidor. Las pginas Web ASP.NET: Se basan en la tecnologa Microsoft ASP.NET, en la que el cdigo que se ejecuta en el servidor genera de forma dinmica salida de pginas Web en un explorador del cliente. Son compatibles con cualquier explorador o dispositivo mvil. Las pginas Web ASP.NET representan automticamente el cdigo HTML adecuado al explorador para funciones tales como estilos, diseo, etc. Como alternativa, se pueden disear las pginas Web ASP.NET para ejecutarse en un explorador determinado. Admiten cualquier lenguaje compatible con Common Language Runtime de .NET, incluidos Microsoft Visual Basic, Microsoft Visual C#, Microsoft J# y Microsoft JScript.NET. Se crean en el entorno Microsoft .NET Framework. Esto proporciona todos los beneficios del marco de trabajo, incluidos un entorno administrado, seguridad de tipos y herencia. Son flexibles gracias a la posibilidad de incorporar a ellas controles creados por los usuarios y de otros fabricantes. Componentes de pginas Web ASP.NET En las pginas Web ASP.NET, la programacin de la interfaz de usuario se divide en dos partes: el componente visual (diseo) y el lgico (cdigo). Ctedra: Programacin II 11 El elemento visual est compuesto por un archivo que contiene el marcado esttico como HTML o controles ASP.NET o ambos. La pgina Web ASP.NET funciona como un contenedor del texto y los controles estticos que se desea mostrar. La lgica de las pginas Web ASP.NET se compone del cdigo creado para interactuar con la pgina. El cdigo puede residir en un bloque de script en la pgina o en una clase independiente. Si el cdigo est en un archivo de clase independiente, a este archivo se le conoce como archivo de cdigo subyacente. El cdigo del archivo de cdigo subyacente se puede escribir en Visual Basic, Visual C#, Visual J# o JScript .NET. Las pginas Web ASP.NET se compilan en un archivo de biblioteca de vnculos dinmicos (.dll). La primera vez que un usuario examina la pgina .aspx con el explorador, ASP.NET genera automticamente un archivo de clase .NET que representa a la pgina y la compila. El archivo .dll se ejecuta en el servidor y genera dinmicamente la salida HTML para su pgina. Ventajas que aportan las pginas Web ASP.NET Implementacin de una interfaz de usuario Web compleja Puede ser difcil y tedioso disear e implementar una interfaz de usuario utilizando las funciones bsicas de HTML, especialmente si la pgina tiene un diseo complejo, un gran cantidad de contenido dinmico y objetos con muchas funciones y que requieren interaccin con el usuario. Separacin de cliente y servidor En una aplicacin Web, el cliente (explorador) y el servidor son programas diferentes que a menudo se ejecutan en equipos distintos (e incluso en distintos sistemas operativos). Por lo tanto, las dos mitades de la aplicacin comparten muy poca informacin; se pueden comunicar, pero normalmente intercambian slo pequeas porciones de informacin simple. Ejecucin sin estado Cuando un servidor Web recibe una solicitud de una pgina, la busca, la procesa y la enva al explorador y, a continuacin, descarta toda la informacin de dicha pgina. Si el usuario solicita la pgina de nuevo, el servidor repite la secuencia completa, volviendo a procesar la pgina desde el principio. En otras palabras, los servidores no tienen memoria de las pginas que han procesado, no tienen estado. Por consiguiente, si una aplicacin necesita mantener informacin sobre una pgina, su naturaleza sin estado podra ser un problema. Funciones desconocidas del cliente En muchos casos, las aplicaciones Web resultan accesibles a muchos usuarios que usan exploradores diferentes Los exploradores ofrecen distintas funcionalidades, lo que hace muy difcil crear una aplicacin que se ejecute con la misma calidad en todos ellos. Complicaciones con el acceso a datos La lectura de los datos de un origen de datos y la escritura en el mismo puede resultar complicada con las aplicaciones Web tradicionales y requerir la utilizacin de varios recursos. Complicaciones con la escalabilidad En muchos casos, las aplicaciones Web diseadas con los mtodos existentes no pueden cumplir los objetivos de escalabilidad debido a la falta de compatibilidad entre sus distintos componentes. Este es a menudo el origen comn de los errores en aplicaciones sometidas a un ciclo de crecimiento intenso. Vencer estos retos de las aplicaciones Web puede requerir un tiempo y esfuerzo importantes. Las pginas Web ASP.NET y el marco de trabajo de pginas ASP.NET tratan de solucionar estos temas de los modos siguientes: Intuitivo, modelo de objeto coherente El marco de trabajo de pginas ASP.NET presenta un modelo de objetos que permite concebir los formularios como una unidad, no como partes de cliente y servidor independientes. En este modelo, se puede programar la pgina de un modo ms intuitivo que en las aplicaciones Web tradicionales, ya que se incluye la capacidad de establecer las propiedades de los elementos de la pgina y de responder a los eventos. Ctedra: Programacin II 12 Adems, los controladores de servidor ASP.NET son una abstraccin del contenido fsico de una pgina HTML y de la interaccin directa entre el explorador y el servidor. En general, se pueden usar los controles de servidor del mismo modo que se hara con los controles en una aplicacin cliente, pero sin tener que preocuparse por crear el cdigo HTML para presentar y procesar los controles y su contenido. Modelo de programacin controlada por eventos Las pginas Web ASP.NET aportan a las aplicaciones Web un modelo familiar que permite disear controladores de eventos para aquellos eventos que se producen en el cliente o en el servidor. El marco de trabajo de las pginas ASP.NET tienen un mecanismo subyacente de captura de los eventos en el cliente, su transmisin al servidor y la llamada al mtodo apropiado se realiza de modo automtico e invisible para el usuario. El resultado es una estructura de cdigo clara y escrita con facilidad, compatible con el desarrollo controlado por eventos. Aplicaciones independientes del explorador El marco de trabajo de pginas ASP.NET permite crear toda la lgica de la aplicacin en el servidor, lo que elimina la necesidad de confeccionar explcitamente cdigo para las diferencias de los diferentes exploradores. Sin embargo, todava le permite aprovechar las funciones especficas de cada explorador al escribir cdigo para la parte cliente con el fin de mejorar el rendimiento y de proporcionar una experiencia ms enriquecedora en la parte cliente. Compatibilidad de Common Language Runtime de .NET Framework El marco de trabajo de la pgina ASP.NET se genera sobre .NET Framework, por lo que todo el marco de trabajo est disponible para cualquier aplicacin ASP.NET. Sus aplicaciones se pueden escribir en cualquier lenguaje que sea compatible con el tiempo de ejecucin. Adems, el acceso a datos se ha simplificado mediante la infraestructura de acceso a datos que ofrece .NET Framework, incluido ADO.NET. Rendimiento del servidor escalable de .NET Framework El marco de trabajo de pginas ASP.NET permite escalar las aplicaciones Web de un equipo con un nico procesador a una batera de servidores Web con varios equipos perfectamente y sin realizar cambios complicados en la lgica de la aplicacin. Funcionamiento de las Pginas Web de ASP.NET El ciclo de procesamiento de una pgina Web de ASP.NET: 1. El usuario solicita la pgina. (La pgina se solicita utilizando un mtodo GET de HTTP.) La pgina se ejecuta por primera vez, realizando el procesamiento preliminar si la ha programado para hacerlo. 2. La pgina se representa en el explorador dinmicamente y lo que el usuario ve es una pgina Web similar a cualquier otra. 3. El usuario escribe la informacin o la selecciona entre las opciones disponibles y, a continuacin, hace clic en un botn. (Si los usuarios hacen clic en un vnculo en lugar de en un botn, la pgina podra simplemente navegar hasta otra pgina, sin que tenga lugar ningn procesamiento ms en la primera pgina). 4. La pgina se manda al servidor Web. (El explorador ejecuta un mtodo POST de HTTP, que en ASP.NET se denomina devolucin de datos.) Especficamente, la pgina se devuelve datos a s misma. Por ejemplo, si el usuario est trabajando con la pgina Default.aspx (web forms) y hace clic en un botn de la pgina, la devuelve al servidor con un destino de Default.aspx. 5. En el servidor Web, la pgina se ejecuta de nuevo. La informacin que el usuario escribi o seleccion est disponible para la pgina. 6. La pgina realiza el procesamiento que tiene programado hacer. 7. La pgina se representa a s misma en el explorador. Este ciclo contina durante el tiempo que el usuario est trabajando en la pgina. Cada vez que el usuario hace clic en un botn, la informacin de la pgina se Ctedra: Programacin II 13 manda al servidor Web y la pgina se ejecuta de nuevo. Cada ciclo se conoce como accin de ida y vuelta. Dado que el procesamiento de pginas se realiza en el servidor Web, cada accin que la pgina puede hacer requiere un recorrido de ida y vuelta al servidor. Una pgina Web de ASP.NET puede ejecutar script de cliente, lo cual no requiere un recorrido de ida y vuelta al servidor y resulta til para la validacin de la entrada del usuario y para algunos tipos de programacin de la interfaz de usuario.
Crear Sitio y pgina web ASP.NET Las pginas Web ASP.NET proporcionan la interfaz de usuario para sus aplicaciones Web ASP.NET o tambin llamados sitios Web. Para el desarrollo de aplicaciones Web necesitamos el Visual Web Developer que esta incluido en el Visual Studio o se lo puede instalar tambin en forma independiente Para crear un sitio Web de sistema de archivos 1. Abra Visual Web Developer o el Visual Studio 2. En la Pgina de Inicio haga clic en Crear Sitio Web o en el men Archivo, haga clic en Nuevo sitio Web. Aparecer el cuadro de dilogo Nuevo sitio Web, como se muestra en la siguiente captura de pantalla.
3. En Plantillas instaladas de Visual Studio, haga clic en Sitio Web ASP.NET. Cuando se crea un sitio Web, se especifica una plantilla. Cada plantilla crea una aplicacin Web que contiene diferentes archivos y carpetas. En este caso crea los archivos: App_Data: Contiene los archivos de datos de la aplicacin. web.config: Contiene la configuracin del Sitio. Default.aspx: Pgina web vacia. Default.aspx.vb: Cdigo de la pgina web en este caso en el lenguaje Visual Basic. Ctedra: Programacin II 14 4. En el cuadro Ubicacin, seleccione el cuadro Sistema de archivos y escriba el nombre de la carpeta en la que desea conservar las pginas del sitio Web. Por ejemplo, escriba el nombre de carpeta C:\BasicWebSite. Especifica el tipo de aplicacin Web que se desea crear o abrir. El tipo de ubicacin que seleccione determinar el formato de la ubicacin en el cuadro Ubicacin. Los tipos de ubicacin incluyen: Sistema de archivos Una aplicacin Web en una carpeta del equipo local. Los archivos no estn asociados a un servidor, una aplicacin de Internet Information Services (IIS). HTTP Una aplicacin Web de IIS en un equipo local o remoto. Los archivos se almacenan bajo la raz de la aplicacin Web. Si se crea una aplicacin local mediante HTTP, IIS debe estar instalado en el equipo. Si se crea una aplicacin IIS en un equipo remoto, el equipo debe configurarse con Extensiones de servidor de FrontPage de Microsoft, y es necesario tener permisos para crear carpetas y archivos en ese equipo. Ejemplo: http://servidorRemoto/MiAplicacinWeb o http://servidorLocal/MiAplicacinWeb FTP Una aplicacin Web a la que es posible conectarse utilizando las credenciales del Protocolo de transferencia de archivos (FTP). Deben proporcionarse credenciales para establecer conexin con el servidor FTP y tener permisos de lectura y escritura en la ubicacin FTP. Ejemplo: ftp://servidorFtp/MiAplicacinWeb.
5. En la lista Lenguaje, seleccione Visual Basic o Visual C#. El lenguaje de programacin que ha elegido ser el lenguaje predeterminado del sitio Web. Sin embargo, puede utilizar varios lenguajes en la misma aplicacin Web mediante la creacin de pginas y componentes en lenguajes de programacin diferentes. 6. Haga clic en Aceptar.
Visual Web Developer crea la carpeta y una nueva pgina denominada Default.aspx. Cuando se crea una nueva pgina, Visual Web Developer la muestra de manera predeterminada en la vista Cdigo fuente, que permite ver los elementos HTML de la pgina. La captura de pantalla siguiente muestra la vista Cdigo fuente de una pgina Web predeterminada.
Ctedra: Programacin II 15 Crear una nueva pgina Web o de formularios Web Forms Cuando se crea un nuevo sitio Web, Visual Web Developer agrega una pgina ASP.NET (pgina de formularios Web Forms) denominada Default.aspx. Puede utilizar la pgina Default.aspx como pgina principal del sitio Web. En este caso crearemos una nueva pgina. Para agregar una pgina al sitio Web 1. Cierre la pgina Default.aspx. Para ello, haga clic con el botn secundario en la ficha que contiene el nombre de archivo y seleccione Cerrar. 2. En el Explorador de soluciones, haga clic con el botn secundario en el sitio Web, (por ejemplo, C:\BasicWebSite) y, a continuacin, haga clic en Agregar nuevo elemento. 3. En Plantillas instaladas de Visual Studio, haga clic en Web Forms. La captura de pantalla siguiente muestra el cuadro de dilogo Agregar nuevo elemento.
4. En el cuadro Nombre, escriba el nombre de la nueva pgina. 5. En la lista Lenguaje, elija el lenguaje de programacin que prefiera utilizar (Visual Basic, C# o J#). Cuando cre el sitio Web, especific un lenguaje predeterminado. Sin embargo, cada vez que se crea una pgina o un componente nuevo para el sitio Web, se puede utilizar un lenguaje diferente del predeterminado. Puede utilizar diferentes lenguajes de programacin en el mismo sitio Web. 6. La casilla Colocar el cdigo en un archivo independiente, si la desactivamos, crear una pgina de un solo archivo con el cdigo y el texto HTML en la misma pgina. El cdigo de las pginas ASP.NET se puede encontrar en la pgina o en un archivo independiente. 7. Seleccionar la pgina principal, esta casilla se utiliza si creamos una Pgina Maestra o Principal para la aplicacin, que nos permite tener partes de las pginas con el mismo diseo e informacin y una parte modificable dentro de cada pgina. 8. Haga clic en Agregar. Visual Web Developer crea la nueva pgina y la abre en la vista Cdigo fuente. Ctedra: Programacin II 16 Para agregar texto a la pgina 1. En la parte inferior de la ventana de documento, haga clic en la ficha Diseo para pasar a la vista Diseo. La vista Diseo muestra la pgina en la que se est trabajando en modo WYSIWYG. En este punto, no hay texto ni controles en la pgina, por lo que est en blanco. 2. En la pgina, escribir un texto.
3. De la vista Diseo pasamos a Dividir. Puede ver el cdigo HTML que ha creado escribiendo en la vista Diseo, como se muestra en la captura de pantalla siguiente.
Ejecutar la pgina Para ejecutar una pgina, necesita un servidor Web. En un sitio Web de produccin, se utiliza IIS como servidor Web. Sin embargo, para probar una pgina puede utilizar el servidor de desarrollo de ASP.NET, que se ejecuta localmente y no requiere IIS. En los sitios Web de sistema de archivos, el servidor Web predeterminado en Visual Web Developer es el servidor de desarrollo de ASP.NET. Para ejecutar la pgina
1. Presione CTRL+F5 para ejecutar la pgina o presione F5 para depurar y ejecutar o tambin en el Men Depurar o la flecha verde de la barra de herramientas:
Visual Web Developer inicia el servidor de desarrollo de ASP.NET. En la barra de herramientas aparece un icono que indica que el servidor Web de Visual Web Developer est en ejecucin: Ctedra: Programacin II 17
La pgina se muestra en el explorador. Aunque la pgina creada tiene una extensin .aspx, se ejecuta como cualquier pgina HTML.
2. Cierre el explorador.
Si el explorador genera un error que indica que la pgina no se puede mostrar, es posible que necesite configurar el explorador para que omita los servidores Proxy para solicitudes locales. Por ejemplo para el Explorer, en el men Herramientas comando Opciones de Internet solapa Conexiones hacer clic sobre Configuracin de Lan y si esta utilizando un servidor Proxy tildar la casilla no usar servidor Proxy para direcciones locales y aceptar. Agregar y programar controles En esta parte, se agrega a la pgina un control Button, otro TextBox y otro Label, y se escribe cdigo para controlar el evento Click del control Button. Ahora agregar controles a la pgina. Los controles, entre los que se incluyen botones, etiquetas, cuadros de texto y otros controles familiares, proporcionan las funciones tpicas de procesamiento de formularios para las pginas Web ASP.NET. Sin embargo, puede programar los controles con cdigo que se ejecuta en el servidor, no el cliente. El control Button es un botn que se utiliza para ejecutar un comando o realizar una accin en el servidor, cuando el usuario hace click sobre el botn, se dispara el evento click y se realiza una accin mediante programacin. El control TextBox es un cuadro de texto, es un control de entrada que permite al usuario ingresar texto. El control Label es una etiqueta, es para mostrar texto en una ubicacin establecida de la pgina, a diferencia de texto esttico se puede personalizar el texto que se muestra. Para agregar controles a la pgina 1. Haga clic en la ficha Diseo para cambiar a la vista Diseo. 2. Presione MAYS+ENTRAR varias veces para dejar espacio. 3. En el Cuadro de herramientas, en el grupo Estndar, arrastre tres controles a la pgina: un control TextBox, otro Button y otro Label. 4. Coloque el punto de insercin sobre el control TextBox y, a continuacin, escriba Ingrese su Nombre:. Este texto HTML esttico es el ttulo del control TextBox. Puede mezclar HTML esttico y controles en la misma pgina. La pantalla siguiente muestra cmo aparecen los tres controles en la vista Diseo.
Ctedra: Programacin II 18
Establecer las propiedades de los controles Visual Web Developer ofrece distintas maneras de establecer las propiedades de los controles de la pgina. En esta parte, establecer propiedades en las vistas Diseo y Cdigo fuente. Para establecer las propiedades de los controles 1. Seleccione el control Button y, a continuacin, en la ventana Propiedades, establezca Text en Mostrar Nombre, se muestra como queda el control en la vista diseo en la captura de pantalla siguiente.
2. Cambie a la vista Cdigo fuente. La vista Cdigo fuente muestra el cdigo HTML de la pgina, incluidos los elementos que Visual Web Developer ha creado para los controles. Los controles se declaran utilizando sintaxis de tipo HTML, con la excepcin de que las etiquetas utilizan el prefijo asp: e incluyen el atributo runat="server". Las propiedades del control se declaran como atributos. Por ejemplo, cuando estableci la propiedad Text del control Button en el paso 1, en realidad estableci el atributo Text del marcado del control. Observe que todos los controles estn dentro de un elemento <form>, que tambin tiene el atributo runat="server". El atributo runat="server" y el prefijo asp: de las etiquetas de los controles marcan los controles para que ASP.NET los procese en el servidor cuando se ejecuta la pgina. El cdigo que se encuentra fuera de los elementos <form runat="server"> y <script runat="server"> se enva como marcado o cdigo de cliente al explorador; este es el motivo por el que el cdigo ASP.NET debe estar dentro de un elemento cuya etiqueta de apertura contiene el atributo runat="server".
Ctedra: Programacin II 19
3. Coloque el punto de insercin en un espacio dentro de la etiqueta <asp:label> y, a continuacin, presione la BARRA ESPACIADORA. Aparece una lista desplegable que muestra las propiedades que se pueden establecer para un control Label. Esta caracterstica, denominada IntelliSense, ayuda en la vista Cdigo fuente con la sintaxis de los controles de servidor, los elementos HTML y otros elementos de la pgina. Puede mostrar una lista desplegable de IntelliSense en cualquier momento presionando Ctrl+J. La captura de pantalla siguiente muestra la lista desplegable de IntelliSense para el control Label.
4. Seleccione ForeColor y, a continuacin, escriba un signo igual (=). IntelliSense muestra una lista de colores. 5. Seleccione un color para el texto del control Label. Ctedra: Programacin II 20 El atributo ForeColor se completa con el color seleccionado, si el color muestra un subrayado verde indica un error, si colocamos el cursor sobre el color nos mostrar el error. Programar el control Button Escribiremos el cdigo que lee el nombre especificado por el usuario en el cuadro de texto y lo muestra en el control Label. Para agregar un controlador de eventos de botn predeterminado 1. Cambie a la vista Diseo. 2. Haga doble clic en el control Button. Visual Web Developer cambia a la vista Cdigo fuente y crea un esquema del controlador de eventos para el evento predeterminado del control Button, el evento Click.
3. Dentro del controlador, escriba lo siguiente: Label1. Visual Web Developer muestra una lista de miembros disponibles para el control Label, como se muestra en la captura de pantalla siguiente.
4. Complete el controlador de eventos Click para el botn de manera que tenga el aspecto mostrado en el ejemplo de cdigo siguiente.
Ctedra: Programacin II 21 Pr ot ect ed Sub But t on1_Cl i ck( ByVal sender As Obj ect , ByVal e As Syst em. Event Ar gs) Label1.Text = TextBox1.Text & ", Bienvenido a Visual Web Developer!" End Sub 5. Desplcese hasta el elemento <asp:Button>. Observe que el elemento <asp:Button> tiene ahora el atributo OnClick="Button1_Click". Este atributo enlaza el evento Click del botn al mtodo controlador que codific en el paso 4. Los mtodos controladores de eventos pueden tener cualquier nombre; el nombre que se ve es el nombre predeterminado creado por Visual Web Developer. Lo importante es que el nombre utilizado para el atributo OnClick debe coincidir con el nombre de un mtodo de la pgina. Ejecutar la pgina Ahora puede probar los controles de servidor en la pgina. Para ejecutar la pgina 1. Presione CTRL+F5 para ejecutar la pgina en el explorador. La pgina se ejecuta de nuevo utilizando el servidor de desarrollo de ASP.NET. 2. Escriba un nombre en el cuadro de texto y haga clic en el botn. El nombre especificado se muestra en el control Label. Tenga en cuenta que cuando se hace clic en el botn, la pgina se publica en el servidor Web. ASP.NET vuelve a crear la pgina, ejecuta el cdigo (en este caso, se ejecuta el controlador de eventos Click del control Button) y enva la nueva pgina al explorador. Si observa la barra de estado del explorador, puede ver que la pgina realiza un viaje de ida y vuelta al servidor Web cada vez que se hace clic en el botn. 3. En el explorador, vea el cdigo fuente de la pgina que est ejecutando. En el cdigo fuente de la pgina, slo se ve HTML ordinario; no se ven los elementos <asp:> con los que ha trabajado en la vista Cdigo fuente. Cuando la pgina se ejecuta, ASP.NET procesa los controles de servidor y representa en la pgina los elementos HTML que realizan las funciones que representan el control. Por ejemplo, el control <asp:Button> se representa como elemento HTML <input type="submit">. 4. Cierre el explorador. Trabajar con controles adicionales En esta parte veremos el control Calendar, que muestra las fechas mes por mes. El control Calendar es ms complejo que los controles de botn, cuadro de texto y etiqueta con los que ha trabajado, e ilustra algunas funciones adicionales de los controles de servidor. Agregaremos un control Calendar a la pgina y le daremos formato. Para agregar un control Calendar 1. En Visual Web Developer, cambie a la vista Diseo. 2. Desde la seccin Estndar del Cuadro de herramientas, arrastre un control Calendar hasta la pgina. Aparece el panel de etiquetas inteligentes del calendario. El panel muestra comandos que ayudan a realizar las tareas ms comunes del control seleccionado. La captura de pantalla siguiente muestra cmo se representa el control Calendar en la vista Diseo. Ctedra: Programacin II 22
3. En el panel de etiquetas inteligentes, elija Formato automtico. Se muestra el cuadro de dilogo Formato automtico, que permite seleccionar un esquema de formato para el calendario.
4. En la lista Seleccionar esquema, seleccione Simple y, a continuacin, haga clic en Aceptar. 5. Cambie a la vista Cdigo fuente. Puede ver el elemento <asp:Calendar>. Este elemento es mucho ms largo que los elementos de los controles sencillos creados anteriormente. Tambin incluye subelementos, como <WeekEndDayStyle>, que representa las distintas configuraciones de formato. La captura de pantalla siguiente muestra el control Calendar en la vista Cdigo fuente.
Programar el control Calendar En esta seccin, programar el control Calendar para que muestre la fecha actualmente seleccionada. Para programar el control Calendar 1. En vista Diseo, haga doble clic en el control Calendar. Un nuevo controlador de eventos se crea en la vista Cdigo fuente. 2. Complete el controlador de eventos SelectionChanged con el cdigo resaltado siguiente. Ctedra: Programacin II 23 Pr ot ect ed Sub Cal endar 1_Sel ect i onChanged( ByVal sender As Obj ect , ByVal e As Syst em. Event Ar gs) Label1.Text = Calendar1.SelectedDate.ToLongDateString End Sub Ejecutar la pgina Ya puede probar el calendario. Para ejecutar la pgina 1. Presione CTRL+F5 para ejecutar la pgina en el explorador. 2. Haga clic en una fecha del calendario. La fecha especificada se muestra en el control Label. 3. En el explorador, vea el cdigo fuente de la pgina. El control Calendar se ha representado en la pgina como una tabla, con cada da como un elemento <td> que contiene un elemento <a>. 4. Cierre el explorador.
Exploracin de sitios Web En cualquier sitio que no tenga un nmero muy reducido de pginas puede resultar difcil crear un sistema de navegacin que permita a los usuarios desplazarse libremente por las pginas, sobre todo si se realizan cambios en el sitio. La funcin de navegacin de sitios de ASP.NET permite crear un mapa centralizado de las pginas del sitio. Puede utilizar las caractersticas de exploracin del sitio de ASP.NET con el fin de proporcionar una manera coherente a los usuarios para que exploren el sitio. Cuando un sitio crece y cuando se mueven sus pginas, puede resultar complicado administrar todos los vnculos. La exploracin del sitio de ASP.NET permite almacenar los vnculos de todas las pginas en una ubicacin central y representar estos vnculos en listas o mens de desplazamiento en cada pgina incluyendo un control de servidor Web especfico. Con la exploracin del sitio de ASP.NET, puede crear una solucin de exploracin consistente y fcil de administrar para el sitio. La exploracin del sitio de ASP.NET cuenta con las caractersticas siguientes: Mapas del sitio Puede utilizar un mapa del sitio para describir la estructura lgica de su sitio. A continuacin, puede administrar la exploracin de la pgina modificando el mapa del sitio cuando se agregan o se eliminan pginas en lugar de modificar los hipervnculos en todas las pginas Web. Controles ASP.NET Puede utilizar estos controles para mostrar los mens de exploracin en las pginas Web. Los mens de exploracin se basan en el mapa del sitio. Control de programacin Puede utilizar la exploracin del sitio de ASP.NET en el cdigo para crear controles de exploracin personalizados o modificar la ubicacin de la informacin que se muestra en un men de desplazamiento. Reglas de acceso Puede configurar reglas de acceso que muestren u oculten un vnculo en el men de desplazamiento.
Crear un mapa del sitio Para la navegacin del sitio, necesita un medio de describir la disposicin de las pginas en el sitio. El mtodo predeterminado consiste en crear un archivo .xml que contenga la jerarqua del sitio, incluidos los ttulos de las pginas y las direcciones URL. Ctedra: Programacin II 24 La estructura del archivo .xml refleja la estructura del sitio. Cada pgina se representa como un elemento siteMapNode en el mapa del sitio. El nodo de nivel superior representa la pgina principal y los nodos secundarios representan pginas que se encuentran en un nivel ms profundo en el sitio. Nuestra estructura de Pginas es: Inicio Docentes Ctedras Carreras Alumnos Exmenes Descargas Para crear un mapa del sitio 1. En el Explorador de soluciones, haga clic con el botn secundario del mouse en el nombre del sitio Web y, a continuacin, haga clic en Agregar nuevo elemento. 2. En el cuadro de dilogo Agregar nuevo elemento: a. En Plantillas instaladas de Visual Studio, haga clic en Mapa del sitio. b. En el cuadro Nombre, asegrese de que el nombre es Web.sitemap. c. Haga clic en Agregar. Aparece una estructura vaca del <siteMap> como se muestra en la siguiente imagen.
3. El archivo Web.sitemap contiene un conjunto de elementos siteMapNode que se anidan en tres niveles. La estructura de cada elemento es la misma. La nica diferencia entre ellos radica en su ubicacin dentro de la jerarqua XML. Las partes del siteMapNode son: Url es el nombre de la pgina que mostrar en caso de seleccionarla con un clik. Title es el ttulo que aparecer en la pgina para la navegacin. Description es la descripcin que muestra en la pgina cuando colocamos el Mouse sobre el ttulo. Modificamos para agregar nuestra estructura de pginas.
Ctedra: Programacin II 25
4. La direccin URL de las pginas que se definen en el archivo .xml de ejemplo es incompleta. Esto significa que todas las pginas se tratan como si tuvieran direcciones URL relativas a la raz de la aplicacin. Sin embargo, puede especificar cualquier URL para una pgina determinada: la estructura lgica que defina en el mapa del sitio no tiene por qu corresponder al diseo fsico de las pginas en las carpetas. 5. Guarde el archivo y cirrelo. 6. Crear las pginas que se describen en el mapa del sitio que definimos. Crear un men de navegacin con el control TreeView Ahora que tiene un mapa del sitio y las pginas, puede agregar funciones de navegacin al sitio. Utilizar el control TreeView como men de navegacin contrable. Este control se utiliza para mostrar datos jerrquicos, como una tabla de contenido o un directorio de archivo, en una estructura de rbol. Tiene compatibilidad con la exploracin del sitio a travs de la integracin con el control SiteMapDataSource. Se puede agregar una casilla de verificacin y una imagen para cada nodo opcionalmente. Para personalizar el aspecto y el estilo del control TreeView, puede hacer lo siguiente: Especificar las propiedades del control TreeView que afectan a la forma en que se muestra y se representa el control. Definir una propiedad ImageSet que seleccione un conjunto integrado de imgenes para que se representen con el control en tiempo de ejecucin. Especificar una imagen determinada y las propiedades de estilo que controlan las caractersticas que afectan al modo en que se muestran y se representan grupos especficos de objetos TreeNode incluidos en el control TreeView. Utilizar la caracterstica Autoformato de Visual Studio para personalizar un conjunto de imgenes y las propiedades de estilo a la vez. Para agregar un men de navegacin de tipo rbol 1. Abra la pgina Inicio.aspx. 2. Desde el Cuadro de herramientas, arrastre a la pgina un control SiteMapDataSource del grupo Datos. En su configuracin predeterminada, el control SiteMapDataSource recupera la informacin que necesita del archivo Web.sitemap que cre anteriormente, por lo que no tendr que especificar informacin adicional para el control. 3. Arrastre un control TreeView desde el grupo Navegacin del Cuadro de herramientas hasta la pgina. 4. En el men Tareas de Treeview, en el cuadro Elegir origen de datos, haga clic en SiteMapDataSource1. Ctedra: Programacin II 26
5. Guarde la pgina. 6. Pruebe la pgina. En el estado actual del sitio Web, el men de navegacin slo aparece en la pgina principal (Inicio). Puede agregar los mismos controles SiteMapDataSource y TreeView a cada pgina de la aplicacin para mostrar un men de navegacin en cada pgina. Sin embargo, veremos ms adelante cmo colocar el men de navegacin en una pgina principal de modo que el men de navegacin aparezca automticamente con todas las pginas. Mostrar el historial de navegacin con el control SiteMapPath Adems de crear un men de navegacin mediante el control TreeView, en cada pgina puede agregar funciones de navegacin que muestren dnde se encuentra la pgina en la jerarqua actual. Este tipo de control de navegacin tambin se conoce como ruta de exploracin. ASP.NET proporciona el control SiteMapPath que puede implementar automticamente funciones de navegacin de pginas. Ofrece un medio econmico desde el punto de vista del espacio para navegar rpidamente por un sitio y sirve como punto de referencia para determinar en qu lugar del sitio se encuentra la pgina que se muestra. Para que se muestre el historial de navegacin 1. Abra la pgina Docentes.aspx y cambie a la vista Diseo. 2. Desde el grupo Navegacin del Cuadro de herramientas, arrastre un control SiteMapPath hasta la pgina, coloque el cursor delante del control SiteMapPath y, a continuacin, presione ENTRAR para crear una nueva lnea. El control SiteMapPath muestra la posicin de la pgina actual en la jerarqua de las pginas. De forma predeterminada, el control SiteMapPath representa la jerarqua que se crea en el archivo Web.sitemap. Por ejemplo, cuando muestra la pgina Docentess.aspx, el control SiteMapPath muestra la ruta de acceso siguiente: Inicio > Docentes 3. Se puede repetir este procedimiento para las otras pginas, excepto la pgina principal (Inicio). Todos los nombres de pgina que muestra el control SiteMapPath son vnculos, excepto el ltimo, que representa la pgina actual. Puede convertir el nodo actual en un vnculo si establece la propiedad RenderCurrentNodeAsLink del control SiteMapPath en true. Ctedra: Programacin II 27 El control SiteMapPath permite a los usuarios retroceder a niveles superiores de la jerarqua, pero no saltar a una pgina que no se encuentre en la ruta de la jerarqua actual. Crear un men de navegacin con el control Menu Adems de crear un men de navegacin mediante el control TreeView, puede utilizar el control Men para que se muestre un men de navegacin expandible que permita a los usuarios ver un nivel de nodos a la vez. Al pausar el puntero del Mouse sobre un nodo que tenga nodos secundarios, se generar un submen de los nodos secundarios. El control Men utiliza dos modos de presentacin: esttica y dinmica. La presentacin esttica implica que un parte o la totalidad de la estructura del Men siempre est visible. Un men totalmente esttico muestra la estructura de men completa y un usuario puede hacer clic en cualquier parte del mismo. La presentacin dinmica implica que algunas partes de la estructura del men aparecen cuando se coloca el puntero del mouse encima ciertos elementos; los elementos de men secundarios se muestran slo cuando el usuario mantiene el puntero encima de un nodo primario. Para controlar la apariencia de la parte esttica del men, puede utilizar las propiedades de estilo cuyos nombres contienen la palabra "Static": StaticMenuStyle StaticMenuItemStyle StaticSelectedStyle StaticHoverStyle Para controlar la apariencia de la parte dinmica del men, puede utilizar las propiedades de estilo cuyos nombres contienen la palabra "Dynamic": DynamicMenuStyle DynamicMenuItemStyle DynamicSelectedStyle DynamicHoverStyle Otro mtodo para controlar la apariencia de los elementos de men es aplicar el estilo a cada nivel de la estructura de men de manera independiente. Las propiedades de estilo que se pueden utilizar para especificar la apariencia de cada nivel incluyen en sus nombres la palabra "Level": LevelMenuItemStyles LevelSubMenuStyles LevelSelectedStyles Para agregar un recurso de navegacin de tipo men 1. Abra la pgina Alumnos.aspx y cambie a la vista Diseo. 2. Arrastre un control Menu desde el grupo Navegacin del Cuadro de herramientas hasta la pgina.
Ctedra: Programacin II 28
3. En el men Tareas de men, en el cuadro Elegir origen de datos, haga clic en <nuevo origen de datos> (NewDataSource). 4. En el asistente para la Configuracin de orgenes de datos, haga clic en Mapa del sitio y, a continuacin, haga clic en Aceptar.
En este caso tenemos de donde elegir los datos de la estructura del Men que es el Mapa del Sitio del control SiteMapDataSource. Si no tuviramos estos datos podramos utilizar dentro de Tareas del Men la opcin Editar elementos del men para generar la estructura del men. 5. Guarde la pgina. 6. Esta lista la pgina con sistema de navegacin.
Ctedra: Programacin II 29 Pginas principales o Maestras ASP.NET en Visual Web Developer En esta seccin veremos como crear una pgina principal y varias pginas de contenido. Las pginas principales permiten crear un diseo de pgina (una plantilla) y, a continuacin, crear pginas independientes con contenido que se combina con la pgina principal en tiempo de ejecucin. Crear la pgina principal La pgina principal es la plantilla que define la apariencia que tendrn las pginas. En esta seccin, crear primero una pgina principal. A continuacin, utilizar una tabla para disear la pgina principal con un men, un logotipo y un pie que aparecern en todas las pginas del sitio. Tambin trabajar con un marcador de posicin de contenido, que es un rea de la pgina que se puede reemplazar por informacin en una pgina de contenido. Para crear la pgina principal
1. Primero debemos crear un sitio Web como vimos anteriormente. 2. En el Explorador de soluciones, haga clic con el botn secundario en el nombre del sitio web y, a continuacin, seleccione Agregar nuevo elemento. 3. En Plantillas instaladas de Visual Studio, haga clic en Pgina principal. 4. En el cuadro Nombre, escriba PagMae. 5. Active la casilla Colocar el cdigo en un archivo independiente. 6. En la lista Lenguaje, haga clic en el lenguaje de programacin con el que prefiera trabajar y, a continuacin, haga clic en Agregar.
En la nueva pgina principal vayamos a la vista Cdigo fuente. En la parte superior de la pgina hay una declaracin @ Master en lugar de la declaracin @ Page que normalmente se encuentra en la parte superior de las pginas ASP.NET. El cuerpo de la pgina contiene un control ContentPlaceHolder, que es el rea de la pgina maestra donde se combinar el contenido reemplazable de las pginas en tiempo de ejecucin. Disear la pgina principal La pgina principal define la apariencia de las pginas del sitio. Puede contener cualquier combinacin de texto esttico y controles. Una pgina principal tambin contiene uno o ms marcadores de posicin de contenido que indican dnde aparecer el contenido dinmico cuando se muestren las pginas. Utilizaremos una tabla como ayuda para colocar los elementos en la pgina. Empezaremos por crear una tabla de diseo para alojar los elementos de la pgina principal. Para crear una tabla de diseo para la pgina principal 1. Con el archivo PagMae.master seleccionado en la vista Cdigo fuente, definimos el esquema de destino para la validacin en Microsoft Internet Explorer 6.0. Para establecer este valor, podemos utilizar la lista desplegable de la barra de herramientas o seleccionar Opciones en el men Herramientas y, a continuacin, hacer clic en Validacin. 2. Cambie a la vista Diseo. 3. En la lista desplegable de la parte superior de la ventana Propiedades, seleccione DOCUMENTO y, a continuacin, establezca la propiedad BgColor en un color distintivo, por ejemplo azul. El color que selecciona no es importante. Ctedra: Programacin II 30 Haga clic en la pgina donde desea colocar la tabla de diseo, no se debe colocar en el control ContentPlaceHolder. 4. En el men Tabla, haga clic en Insertar tabla. 5. En el cuadro de dilogo Insertar tabla cree una tabla con tres filas y una columna y, a continuacin, haga clic en Aceptar. 6. Coloque el cursor dentro de la segunda fila de la tabla. 7. En el men Tabla, en el submen Modificar, haga clic en Dividir celdas. 8. En el cuadro de dilogo Dividir celdas, seleccione Dividir en columnas y, a continuacin, haga clic en Aceptar. 9. Configure las opciones siguientes: En la fila central, haga clic en la columna situada ms a la izquierda y, a continuacin, establezca su Ancho (Width) en 48 en la ventana Propiedades. Haga clic en la fila superior y, a continuacin, establezca su Alto (Height) en 48 en la ventana Propiedades. Haga clic en la fila inferior y, a continuacin, establezca su Alto en 48 en la ventana Propiedades. Para establecer el alto y ancho se puede hacer tambin arrastrando los bordes de las celdas 10. Seleccione todas las celdas en la tabla y establezca BgColor en un color diferente que el color de fondo. Despus de disear la tabla, puede agregar el contenido a la pgina principal que aparecer en todas las pginas. Agregar un mensaje de copyright como pie de pgina y, a continuacin, un men. Si tiene un grfico de logotipo disponible, tambin puede agregarlo. Para agregar contenido esttico a la pgina principal 1. Haga clic en la celda inferior y, a continuacin, escriba el texto del pie de pgina, por ejemplo Copyright 2009 Chamigo Inc. 2. En el Cuadro de herramientas, arrastre un control Men desde el grupo de controles Navegacin hasta la celda superior. 3. Cree un men siguiendo estos pasos: a. Establezca la propiedad orientacin (Orientation) del control Men en Horizontal, asume cuando colocamos el control en la pgina en vertical. b. Haga clic en la etiqueta inteligente (>) en el control Men y haga clic en Editar elementos de men en el cuadro de dilogo Tareas de men.
4. En Elementos, haga clic tres veces en el icono Agregar un nodo raz para agregar tres elementos de men: a. Haga clic en el primer nodo y, a continuacin, establezca Text en Inicio y NavigateUrl en Inicio.aspx. b. Haga clic en el segundo nodo y, a continuacin, establezca Text en Docentes y NavigateUrl en Docentes.aspx. Ctedra: Programacin II 31 c. Haga clic en el Tercer nodo y, a continuacin, establezca Text en Alumnos y NavigateUrl en Alumnos.aspx. d. Haga clic en Docentes y en el icono Agregar un elemento secundario, a continuacin, establezca Text en Ctedras y NavigateUrl en Ctedras.aspx. e. Haga clic en Aceptar para cerrar el cuadro de dilogo Editor de elementos de men.
5. Si tiene un archivo grfico disponible para utilizarlo como logotipo, siga estos pasos para colocarlo en la pgina principal: a. En el Explorador de soluciones, haga clic con el botn secundario en el nombre del sitio web y, a continuacin, seleccione Agregar elemento existente. b. Navegue a su archivo grfico, seleccinelo y, a continuacin, haga clic en Agregar. c. En el Cuadro de herramientas, arrastre un control Image desde el grupo Estndar hasta la columna central izquierda de la tabla. d. Establezca la propiedad ImageUrl del control Image en el nombre del archivo grfico. Ahora puede colocar el marcador de posicin de contenido para especificar dnde puede mostrar contenido la pgina principal en tiempo de ejecucin. Para agregar un marcador de posicin de contenido 1. Arrastre el control ContentPlaceHolder a la celda central derecha. La propiedad ID del control es ContentPlaceholder1. Puede dejar este nombre o cambiarlo. Si cambia el nombre, antelo porque necesitar recordarlo ms adelante. 2. Guarde la pgina. Crear contenido para la pgina principal Ctedra: Programacin II 32 La pgina principal proporciona la plantilla para el contenido. El contenido de la pgina principal se define creando una pgina ASP.NET que se asocia a la pgina principal. La pgina de contenido es un formulario especializado de una pgina ASP.NET que incluye slo el contenido que se va a combinar con la pgina principal. En la pgina de contenido, agregar el texto y los controles que desee mostrar cuando los usuarios soliciten la pgina. Para crear la pgina de inicio 1. En el Explorador de soluciones, haga clic con el botn secundario en el nombre del sitio web y, a continuacin, haga clic en Agregar nuevo elemento. 2. En Plantillas instaladas de Visual Studio, haga clic en Web Forms. 3. En el cuadro Nombre, escriba Inicio. 4. En la lista Lenguaje, haga clic en el lenguaje de programacin con el que prefiera trabajar. 5. Active la casilla Seleccionar la pgina principal y, a continuacin, haga clic en Agregar. Aparece el cuadro de dilogo Seleccionar la pgina principal. 6. Haga clic en PagMae.master y en Aceptar.
Se crea un nuevo archivo .aspx. La pgina contiene una directiva @ Page que asocia la pgina actual a la pgina principal seleccionada con el atributo MasterPageFile. La pgina tambin contiene un elemento de control Content con el que trabajar luego. Una pgina de contenido no tiene los elementos usuales que constituyen una pgina ASP.NET, como html, body o form. En su lugar, el contenido que se desea mostrar en la pgina principal se agrega reemplazando las reas de marcador de posicin creadas en dicha pgina. Para agregar contenido a la pgina de inicio 1. Cambie a la vista Diseo. Los controles ContentPlaceHolder de la pgina maestra se muestran como controles Content en la nueva pgina de contenido. Se muestra el resto del contenido de la pgina maestra para que pueda ver el diseo. Sin embargo, parece atenuado porque no puede cambiarlo mientras est editando una pgina de contenido. 2. En la lista desplegable de la ventana Propiedades, haga clic en DOCUMENTO y, a continuacin, establezca Ttulo en Inicio Chamigo. Puede establecer el ttulo de cada pgina de contenido de forma independiente a fin de que se muestre el ttulo correcto en el explorador cuando el contenido se combine con la pgina principal. La informacin del ttulo se almacena en la directiva @ Page de la pgina de contenido. 3. En el control Content que coincide con ContentPlaceHolder1 en la pgina maestra, escriba Bienvenido al sitio web de Chamigo. 4. Seleccione el texto y, a continuacin, asgnele el formato de encabezado seleccionando Encabezado 1 en la lista desplegable Formato del bloque situada encima del Cuadro de herramientas. 5. Presione ENTRAR para crear una nueva lnea en blanco en el control Content y, a continuacin, escriba cualquier texto. El texto que agrega aqu no es importante; puede escribir cualquier texto que le ayude a reconocer que es la pgina de inicio. 6. Guarde la pgina. Hacer lo mismo con las otras pginas. Ctedra: Programacin II 33 Puede probar las pginas ejecutndolas tal como hara con cualquier pgina ASP.NET. Antes de probar en el Explorador de Soluciones seleccionar la pgina Inicio.aspx haga clic con el botn secundario del Mouse y nuevamente haga clic en Establecer como pgina de inicio.
Ctedra: Programacin II 34 Publicar un sitio Web Veremos la utilidad de publicacin de sitios Web de la herramienta de desarrollo Web de Microsoft Visual Web Developer para compilar un sitio Web y, a continuacin, copiar el resultado en un sitio Web activo. Si desea implementar un sitio Web terminado en un servidor, puede usar la utilidad de publicacin de sitios Web de la herramienta de desarrollo Web de Microsoft Visual Web Developer. La utilidad de publicacin de sitios Web realiza una compilacin previa de las pginas y el cdigo del sitio Web y escribe el resultado del compilador en una carpeta especificada por el usuario. A continuacin, se puede copiar el resultado en el servidor Web de destino y ejecutar la aplicacin desde all. La utilidad de publicacin de sitios Web no est disponible en Visual Web Developer Express. Debemos contar con Microsoft Internet Information Services (IIS) para poder probar el resultado de la publicacin de un sitio Web. Puede publicar el sitio Web en cualquier ubicacin a la que tenga acceso en el equipo local o en una red en que se use uno protocolo de conexin compatible con Visual Web Developer. Tiene las opciones siguientes para copiar el sitio Web: Utilizar un recurso compartido UNC para copiarlo en una carpeta compartida que est en otro equipo de la red. Utilizar FTP para copiarlo en un servidor. Utilizar el protocolo HTTP para copiarlo en un servidor compatible con las Extensiones de servidor de FrontPage 2002 de Microsoft. Para publicar el sitio Web en una carpeta local 1. En el men Generar, haga clic en Publicar sitio Web, tambin puede hacer clic con el botn secundario del Mouse sobre el nombre de Sitio Web en el explorador de soluciones y elegir el comando Publicar sitio Web. Aparece el cuadro de dilogo Publicar sitio Web.
Ctedra: Programacin II 35
Ubicacin de destino Especifica la ruta de acceso de los resultados del proceso de precompilacin. Los resultados de la precompilacin se escriben en la carpeta especificada, sobrescribiendo (sin advertencia) todo el contenido en esa ubicacin. Puede especificar una ruta de acceso FTP, ruta de acceso HTTP o una ubicacin de unidad fsica. Permitir que este sitio precompilado se actualice Especifica que el contenido de las pginas .aspx no se compila en un ensamblado, sino que el marcado se deja tal cual, lo cual permite realizar cambios en la funcionalidad del cliente y el cdigo HTML despus de precompilar el sitio Web. La activacin de esta casilla equivale a agregar la opcin -u al comando aspnet_compiler.exe. Usar nombres fijos y ensamblados de pgina nicos Especifica que las generaciones por lotes estar desactivada durante la precompilacin para que se generen ensamblados con nombres fijos. Los archivos de mscaras y temas seguirn compilndose en un solo ensamblado. Esta opcin no est disponible para la compilacin en contexto. Habilitar nombre seguro en los ensamblados precompilados Especifica que a los ensamblados generados se les debe asignar un nombre seguro mediante un archivo de claves o contenedor de claves para codificar los ensamblados y asegurar que no se han alterado. Despus de activar esta casilla, puede hacer lo siguiente: Especificar la ubicacin de un archivo de claves que se va a utilizar para firmar los ensamblados. Si utiliza un archivo de claves, puede seleccionar Firma retardada para que el ensamblado se firme en dos fases: primero con el archivo de claves pblicas y, a continuacin, con un archivo de claves privadas que se especifique ms adelante durante una llamada al comando aspnet_compiler.exe. Especificar la ubicacin de un contenedor de claves del proveedor de servicios criptogrficos (CSP) del sistema que se va a utilizar para asignar un nombre a los ensamblados. Especificar si se va a marcar el ensamblado con la propiedad AllowPartiallyTrustedCallers, que permite que cdigo de confianza parcial llame a los ensamblados con nombre seguro. Sin esta declaracin, slo el cdigo de plena confianza puede utilizar esos ensamblados. Si selecciona esta opcin, puede comprometer la seguridad del ensamblado generado.
2. En el cuadro Ubicacin de destino, escriba c:\CompiledSite.
3. Tambin podra publicar en un recurso compartido UNC. Si deseara publicar en un sitio Web remoto mediante HTTP o FTP, debera especificar la direccin URL del servidor remoto en el cuadro Ubicacin de destino. 4. La opcin Permitir que este sitio precompilado se actualice especifica que todo el cdigo del programa se compila en ensamblados, pero que los archivos .aspx (incluidas las pginas Web ASP.NET de un solo archivo) se copian tal cual en la carpeta de destino. 5. Haga clic en Aceptar. Visual Web Developer precompila el contenido del sitio Web y escribe el resultado en la carpeta que ha especificado. En la ventana Resultados se muestran mensajes de progreso. Si se produce un error durante la compilacin, se crea un informe en la ventana Resultados. 6. Si se producen errores durante la publicacin, corrjalos y, a continuacin, repita el paso 1. Ctedra: Programacin II 36 Examinar el resultado del comando Publicar sitio Web Resulta til examinar el resultado del comando Publicar sitio Web para comprobar qu ha hecho Visual Web Developer con los archivos del sitio Web. Para examinar el resultado del comando Publicar sitio Web 1. En el Explorador de Windows, desplcese a la carpeta que especific como el destino para el comando Publicar sitio Web. 2. Utilizando un editor de texto, como Bloc de notas, abra una pgina .aspx. Observe que el archivo no contiene el marcado que haba originalmente en el archivo. En lugar de ello, la pgina .aspx es slo un marcador de posicin que se puede utilizar como parte de una direccin URL. 3. Desplcese a la carpeta Bin. La carpeta contiene dos tipos de archivos: Archivos .compiled, que corresponden a las pginas. Archivos .dll, que contienen el cdigo ejecutable para el sitio Web.
Para probar el sitio Web publicado 1. Cree un directorio virtual de IIS que indique la carpeta de destino. Puede utilizar las herramientas administrativas de IIS o, alternativamente, realizar los pasos siguientes: a. En el Explorador de Windows, haga clic con el botn secundario en el nombre de la carpeta de destino y, a continuacin, haga clic en Compartir y seguridad. b. En la ficha Uso compartido de Web, haga clic en Compartir esta carpeta. Aparecer el cuadro de dilogo Modificar alias. c. Si lo desea, puede cambiar el nombre del alias. Los permisos predeterminados permiten acceso de lectura y permiten ejecutar scripts, por ejemplo pginas ASP.NET. d. Haga clic en Aceptar para cerrar el cuadro de dilogo Modificar alias y, a continuacin, haga clic en Aceptar para cerrar el cuadro de dilogo Propiedades. 2. Abra el explorador y escriba la direccin URL siguiente: http://localhost/CompiledSite/Inicio.aspx Aparece la pgina. Sin embargo, esta vez ver la versin de la pgina creada por el precompilador para su implementacin.
Copiar un sitio Web mediante la herramienta Copiar sitio Web Trabajaremos con un sitio Web compartido y uno local, igual que lo hara en un entorno de produccin. Un escenario tpico sera que el sitio Web compartido estuviera en otro servidor, como por ejemplo, un servidor de ensayo o de produccin. Cuando desee trabajar en el sitio, cree una versin local del mismo y copie los archivos del servidor compartido en su equipo. Cuando haya terminado sus actualizaciones, vuelva a copiar los archivos locales en el servidor compartido. Tambin veremos cmo sera trabajar en un entorno con ms de un desarrollador. Si hubiera otros desarrolladores trabajando en el sitio, tambin podran descargar archivos, editarlos localmente y luego volver a copiarlos en el servidor compartido. Por lo tanto, no solo debe copiar archivos del sitio Web local al sitio Web compartido, sino que es posible que tenga que copiar versiones actualizadas de archivos del sitio Web compartido al sitio Web local. En lugar de residir en equipos separados, los dos sitios Web residen en el equipo local. Esto le permite trabajar con la herramienta Copiar sitio Web tal y como lo Ctedra: Programacin II 37 hara en un entorno de produccin pero sin tener que utilizar un segundo equipo. Todas las tareas que se realizan funcionan de igual modo cuando el sitio Web compartido est en otro equipo. Emular las ediciones realizadas por otros desarrolladores utilizando el Bloc de notas para cambiar archivos. Copiar archivos del sitio Web compartido al local Debemos contar con un sitio Web compartido en su equipo y tiene un nuevo sitio Web abierto. Si fuera un desarrollador nuevo en un proyecto, primero deseara obtener todos los archivos del sitio Web compartido y despus los copiara en su sitio Web local. Para copiar todos los archivos del sitio Web compartido en el sitio Web local 1. En el men Sitio Web, haga clic en Copiar sitio Web o en el explorador de soluciones haga clic con el botn secundario del Mouse sobre el nombre del sitio web y seleccione el comando Copiar sitio Web. Aparecer la herramienta Copiar <NombreSitioWeb>.
2. Haga clic en Conectar. Aparece el cuadro de dilogo Abrir sitio Web.
Ctedra: Programacin II 38
3. Haga clic en Sistema de archivos. 4. En el cuadro Carpeta, escriba C:\SitioWebCompartido. Si el sitio compartido estuviera en otro equipo, escribira la direccin URL del servidor. 5. Haga clic en Abrir. Los archivos del sitio compartido se muestran en Sitio Web remoto.
Muchos de los archivos tienen smbolos junto a ellos que indican su estado. Si sincroniza los sitios, el smbolo de flecha indica la direccin en que se copia el archivo Actualmente, los archivos Alumnos.aspx, Carreras.aspx, etc. en la lista Sitio Web remoto sealan a la lista Sitio Web de origen, porque si sincroniza los sitios Web, los archivos se copiarn desde el sitio compartido al sitio local. Los archivos Default.aspx tienen signos de interrogacin (?) junto a ellos. Esto indica que el archivo tiene el mismo nombre en los dos sitios, pero tiene datos timestamp diferentes y ninguna informacin sobre la ltima vez que se copiaron los archivos.
Ctedra: Programacin II 39
6. Debajo de Sitio Web remoto, resalte los archivos y carpetas que desea seleccionar. En este caso, desea obtener copias de todos los archivos del sitio compartido. Est emulando un escenario en el que es un nuevo desarrollador de un sitio Web existente y desea obtener las versiones ms actuales de los archivos del sitio Web. Al haber creado un nuevo sitio local, no es necesario que copie ningn archivo del sitio local al compartido. 7. Haga clic en el botn de flecha izquierda para copiar los archivos seleccionados del sitio compartido al sitio local. El botn de flecha izquierda no tiene etiqueta a menos que pase el puntero por encima, en cuyo caso aparece una informacin descriptiva (ToolTip). La fecha apunta al Sitio Web de origen. Visual Web Developer comienza a copiar archivos. Cuando llega al archivo Default.aspx, le pide que confirme si reemplaza la copia local del archivo con el archivo del sitio compartido. 8. En el cuadro de dilogo Confirmar reemplazo de archivos, active la casilla Aplicar a todo y haga clic en S. En este caso, es seguro reemplazar todas las versiones locales de los archivos que tenga nombres de archivo duplicados, ya que las versiones de archivo que desea son las del sitio compartido. Cuando el proceso termine de copiar los archivos, las listas en Sitio Web de origen y Sitio Web remoto son las mismas. Puede utilizar la herramienta Copiar sitio Web para copiar todos los archivos o archivos especficos.
Ctedra: Programacin II 40 Sincronizar sitios Web En el proceso de sincronizacin se copia la versin ms actual de cada archivo de manera que los dos sitios Web tengan las mismas copias de todos los archivos. Utilice la sincronizacin si es posible que otra persona tambin actualice los archivos del sitio Web compartido.
Elegir una herramienta de implementacin La eleccin de la herramienta Copiar sitio web o de la utilidad Publicar sitio web depende de cmo desee utilizar y mantener el sitio. Elegir la herramienta Copiar sitio Web A continuacin se indican las ventajas de la herramienta Copiar sitio web: La implementacin supone simplemente copiar los archivos desde el sitio web al equipo de destino. Puede implementar en un equipo de destino utilizando cualquier protocolo de conexin que admita Visual Studio. Puede copiar en una carpeta compartida de otro equipo de la red. Puede utilizar FTP para copiar en un servidor o utilizar el protocolo HTTP para copiar en un servidor que admita Extensiones de servidor de FrontPage. Tambin es posible realizar cambios o corregir errores en las pginas directamente en el servidor. Si trabaja en un proyecto donde los archivos se almacenan en un servidor centralizado, puede utilizar la caracterstica de sincronizacin para asegurarse de que las versiones local y remota de los archivos estn sincronizadas. A continuacin se indican los inconvenientes de la herramienta Copiar sitio web: El sitio se copia tal cual. Por lo tanto, si algn archivo contiene un error de compilacin, el error no se detectar hasta que alguien (quiz un usuario) ejecute la pgina en la que existe el error. Elegir la utilidad Publicar sitio Web A continuacin se indican las ventajas de la utilidad Publicar sitio web: El proceso de precompilacin ayuda a encontrar errores de compilacin y posibles errores en el archivo Web.config y en otros archivos que no son de cdigo. El cdigo fuente se quita del sitio web, incluido, si se desea, el marcado de los archivos web y los controles de usuario de ASP.NET. De esta forma, el contenido queda ms protegido y resulta ms difcil que otros usuarios tengan acceso al cdigo fuente del sitio. Como las pginas del sitio ya estn compiladas, no necesitan compilarse dinmicamente cuando se solicitan por primera vez. Esto puede reducir el tiempo de respuesta inicial para una pgina. (Cuando se compilan las pginas dinmicamente, el resultado se almacena en la memoria cach para las solicitudes posteriores.) A continuacin se indican los inconvenientes de la utilidad Publicar sitio web: En funcin de las opciones de publicacin que especifique, es posible que deba volver a compilar el sitio si realiza cambios en l. Por tanto, puede que no resulte prctico emplear la utilidad Publicar sitio web si desarrolla un sitio y cambia las pginas con frecuencia. La utilidad Publicar sitio web no puede implementar el sitio compilado en un servidor remoto. Slo puede copiar en el equipo local o en otro equipo de la red de rea local.
Ctedra: Programacin II 41 Depurar pginas Web en Visual Web Developer Visual Web Developer proporciona herramientas de ayuda para localizar errores en pginas Web ASP.NET. Trabajaremos con el depurador, que le permite recorrer lnea por lnea el cdigo de la pgina y examinar los valores de las variables. Crearemos una pgina Web que contiene una calculadora simple que eleva un nmero al cuadrado. Despus de crear la pgina (que incluir un error deliberado) utilizar el depurador para examinar su ejecucin. Comenzaremos creando un sitio web y agregando una nueva pgina que no tenga el cdigo en forma independiente. Ahora puede agregar controles a la pgina y, a continuacin, agregar el cdigo. El cdigo ser simple, pero deber permitirle agregar despus puntos de interrupcin. Para agregar controles y cdigo para la depuracin 1. Cambie a la vista Diseo y, desde la carpeta Estndar del Cuadro de herramientas, arrastre los siguientes controles a la pgina y establezca las propiedades correspondientes tal como se indica:
2. Haga doble clic en el control Button para crear un controlador Click asociado. 3. Agregue lgica al controlador Click para llamar a una funcin denominada Cuadrado a fin de elevar al cuadrado el nmero escrito por el usuario. El controlador podra tener una apariencia similar a la del ejemplo que se muestra a continuacin.
Pr ot ect ed Sub Cuadr adoBut t on_Cl i ck( ByVal sender As Obj ect , ByVal e As Syst em. Event Ar gs) Di mnumer o, r esul t ado As I nt eger numer o = CI nt ( Numer oText Box. Text ) r esul t ado = Cuadr ado( numer o) Resul t adoLabel . Text = "El Cuadr ado de " & CSt r ( numer o) & " es " & CSt r ( r esul t ado) End Sub
CInt: es una funcin que devuelve un entero. CStr: es una funcin que devuelve un string.
4. Cree la funcin que eleva el nmero al cuadrado. Incluya un error en el cdigo de modo que el nmero se sume a s mismo, en lugar de multiplicarse. Ctedra: Programacin II 42 El cdigo podra tener una apariencia similar a la del ejemplo que se muestra a continuacin.
<scr i pt r unat ="ser ver "> Funct i on Cuadr ado( ByVal numer o As I nt eger ) As I nt eger Cuadr ado = numer o + numer o End Funct i on Tambin puede agregar a la pgina cdigo que cambie el texto de la etiqueta si es la primera vez que se ejecuta la pgina. Para cambiar el ttulo del control Label 1. En la vista Diseo, haga doble clic en la superficie de diseo (no en un control) para crear un controlador de eventos Page_Load (cuando se carga la pgina). 2. Establezca el texto del control Caption Label como Escriba un nmero: si es la primera vez que se ejecuta la pgina, o como Escriba otro nmero: si no es la primera vez. El controlador tendr una apariencia similar a la del ejemplo de cdigo que se muestra a continuacin.
Pr ot ect ed Sub Page_Load( ByVal sender As Obj ect , ByVal e As Syst em. Event Ar gs) I f Page. I sPost Back = Fal se Then Capt i onLabel . Text = "I ngr ese un Nmer o: " El se Capt i onLabel . Text = "I ngr ese ot r o Nmer o: " End I f End Sub
Page.IsPostBack: es una propiedad que indica si la pgina se carga por una peticin del cliente (no es la primera vez que se carga la pgina). Probar la pgina Para asegurarse de que la pgina funciona, ejectela en su estado actual. Depurar la pgina Utilizaremos el depurador para examinar el cdigo de la pgina lnea por lnea mientras se ejecuta, agregar puntos de interrupcin al cdigo y despus ejecutar la pgina en modo de depuracin. Empezar estableciendo los puntos de interrupcin en el cdigo. Un punto de interrupcin es una lnea en el cdigo en la que se detiene la ejecucin y se invoca al depurador. Para establecer puntos de interrupcin 1. Cambie a la vista Cdigo fuente. 2. Haga clic con el botn secundario del mouse en la lnea que desee interrumpir la ejecucin, elija Punto de interrupcin y, a continuacin, elija Insertar punto de interrupcin. 3. Establezca punto de interrupcin en el IF y en Cuadrado = 4. No podemos establecer un punto de interrupcin en la declaracin de una variable
Ctedra: Programacin II 43
Cuando haya establecido al menos un punto de interrupcin, podr ejecutar el depurador. Para ejecutar el depurador 1. En el men Depurar, elija Iniciar depuracin (o presione F5) para ejecutar la pgina en modo de depuracin. Si nunca ha ejecutado el depurador, es probable que la aplicacin no est configurada para admitir la depuracin. De forma predeterminada, la depuracin est desactivada en las aplicaciones por cuestiones de rendimiento (las pginas se ejecutan ms lentamente en el depurador) y de seguridad. Visual Web Developer muestra un mensaje que indica lo que se debe hacer para habilitar la depuracin. El modificador para habilitar la depuracin se almacena como valor de configuracin en el archivo Web.config, que mantiene distintas opciones de configuracin especficas del sitio. Si el archivo Web.config no existe, Visual Web Developer lo crear y realizar la correspondiente configuracin del depurador. Si ya existe el archivo Web.config pero no est habilitada la depuracin, ver un mensaje algo distinto, en el que se indica que Visual Web Developer modificar el archivo Web.config. 2. Si ve el mensaje que le indica que no se ha habilitado la depuracin, haga clic en Aceptar para habilitar la depuracin. En Visual Web Developer, el diseador cambia al modo de depuracin, en el que se muestran el cdigo de la pgina y algunas ventanas del depurador. El depurador ejecuta la pgina lnea por lnea. Cuando el depurador llega a la lnea en la que se encuentra el punto de interrupcin, se detiene y resalta la lnea. Dado que el punto de interrupcin est en el controlador Page_Load, la pgina no ha finalizado todava el procesamiento. El explorador est abierto, pero an no se muestra la pgina. 3. En el men Depurar, haga clic en Ventanas, haga clic en Inspeccin y, a continuacin, haga clic en Inspeccin 1. Si esta utilizando el Visual Web Developer Express Edition el depurador presenta solo una ventana Inspeccin. 4. Con esta operacin se abre una ventana Inspeccin, en la que puede especificar los valores de los que desea realizar un seguimiento. Ctedra: Programacin II 44 5. En el editor, haga clic con el botn secundario del mouse en la parte IsPostBack de la expresin Page.IsPostBack y, a continuacin, haga clic en Agregar inspeccin. Con esta operacin se agrega la expresin a la ventana Inspeccin y se muestra el valor actual de la propiedad (false) en la columna Valor. Si lo prefiere, puede escribir el nombre de una variable o de una propiedad en la columna Nombre de la ventana Inspeccin.
6. En el men Depurar, elija Continuar para seguir con la ejecucin o presione F5. El comando Continuar indica al depurador que contine hasta que llegue al siguiente punto de interrupcin. El controlador de eventos Page_Load finaliza el procesamiento y la pgina se muestra en el explorador. 7. Especifique el valor 2 en el cuadro de texto y haga clic en el botn Cuadrado. Se muestra de nuevo el depurador, con el punto de interrupcin en la lnea en el controlador Page_Load. En esta ocasin, la ventana Inspeccin muestra que el valor de Page.IsPostBack es true. 8. Presione de nuevo F5 para continuar. El depurador procesa el controlador Page_Load y se detiene en el segundo punto de interrupcin establecido. 9. En el men Depurar, haga clic en Ventanas y, a continuacin, haga clic en Variables locales. Con esta operacin se abre la ventana Variables locales, en la que se muestran los valores de todas las variables y objetos de la lnea que se est ejecutando que estn en el mbito. La ventana Variables locales proporciona un mtodo alternativo para ver estos valores, con la ventaja de que no es necesario establecer explcitamente una inspeccin de los elementos, aunque con el inconveniente de que la ventana podra contener ms informacin de la que desea ver simultneamente. En la ventana Variables locales, ver que el valor de numero es 2 y que el valor de resultado es 0.
Ctedra: Programacin II 45
Tambin puede ver el valor de cualquier variable del programa si mantiene el puntero del Mouse sobre la variable. 10. En la columna Valor de la ventana Variables locales, haga clic con el botn secundario del mouse en la lnea de la variable numero y seleccione Editar valor. Edite el valor de la variable numero y cmbielo a 5. El valor 2 para la variable numero no permite una comprobacin adecuada del programa, porque tanto la suma como el cuadrado de 2 dan 4 como resultado. Por consiguiente, mientras el programa se est ejecutando, puede cambiar el valor de esta variable. 11. En el men Depurar, elija Paso a paso por Instrucciones, o F8 (Visual Studio) F11 (Visual Web Developer), para examinar la funcin Cuadrado. El comando Paso a paso hace que el depurador ejecute una lnea y despus se detenga de nuevo. 12. Contine el examen paso a paso; para ello, presione F8 hasta llegar a la siguiente lnea de cdigo. 13. El depurador recorre el cdigo lnea por lnea. Cuando el depurador ejecuta la funcin Cuadrado, se puede utilizar la ventana Variables locales para comprobar los datos pasados a la funcin (numero) y el valor devuelto por la funcin (Cuadrado). 14. En el men Depurar, haga clic en Ventanas y, a continuacin, en Inmediato. La ventana Inmediato permite ejecutar comandos. Puede utilizar la ventana para evaluar expresiones (por ejemplo, con el fin de obtener el valor de una propiedad). 15. En la ventana Inmediato, escriba la expresin siguiente y presione Entrar. ? NumeroTextBox.Text 16. El signo de interrogacin (?) es un operador de la ventana Inmediato que evala la expresin que lo sigue. En este ejemplo, va a evaluar la propiedad Text del control NumeroTextBox en la pgina. Puede evaluar cualquier Ctedra: Programacin II 46 variable, propiedad de objeto o expresin que las combine, utilizando la misma sintaxis que utilizara en el cdigo.
17. En la ventana Inmediato, escriba lo siguiente y presione Entrar: NumeroTextBox.Text = 5 18. Adems de evaluar expresiones, la ventana Inmediato le permite cambiar variables o propiedades 19. Presione F5 para que contine la ejecucin del programa. Cuando aparece la pgina, muestra el resultado de pasar 5 a la funcin Cuadrado. Adems, el texto que contiene el cuadro de texto se ha cambiado a 5. El resultado que se ve (10) no es correcto, ya que 10 no es el cuadrado de 5. Ahora puede corregir el error. Para corregir el error y repetir la prueba 1. Pase del explorador a Visual Web Developer. 2. En la funcin Cuadrado, cambie el operador "+" por el operador "*". Dado que el cdigo no se est ejecutando (la pgina ha finalizado el procesamiento), se encuentra en modo de edicin y puede realizar cambios permanentes. 3. Guardar la pgina. 4. En el men Depurar, elija Eliminar todos los puntos de interrupcin para que la pgina no se detenga cada vez que la ejecuta. 5. Cambie a la ventana del explorador. 6. Escriba 5 en el cuadro de texto y haga clic en el botn. En esta ocasin, cuando ejecuta la pgina y especifica un valor, ste se eleva al cuadrado correctamente. Los cambios temporales que realiz anteriormente, como el de la propiedad Text del control NumeroTextBox, no se han conservado, ya que slo se aplicaban la ltima vez que se ejecut la pgina. 7. Cierre el explorador para detener el depurador.
Resumen Depurar Pginas Web
Podemos definir Puntos de Interrupcin (lnea de cdigo) donde se detendr la ejecucin con la depuracin. Podemos abrir la ventana de Inspeccin para ver el valor de propiedades, variables, etc. Podemos abrir la ventana de Variables Locales para ver todas la variable de la lnea que se esta ejecutando. Ctedra: Programacin II 47 Podemos ejecutar Paso a Paso por instrucciones o por procedimientos. Podemos abrir la ventana de Inmediato que nos permite evaluar expresiones, ejecutar comandos.
Validar los datos introducidos por el usuario en una pgina de formularios Web Forms Validar los datos que se ingresan a los sistemas, independientemente de los tipos de sistemas, plataformas, etc., es de suma importancia para la seguridad de los mismos, y la consistencia de las bases de datos que se generan con estos datos. Veremos cmo utilizar los controles validadores de ASP.NET para comprobar los datos proporcionados por el usuario en una pgina Web. Trabajar con controles que realizan todas las comprobaciones automticamente, sin necesidad de cdigo. Tambin crear un validador que personalizar mediante cdigo; de ese modo se ilustra cmo se puede agregar lgica al marco de trabajo de validacin en la pgina. Finalmente, obtendr informacin acerca de cmo se pueden validar condicionalmente los datos proporcionados por el usuario, de acuerdo con las opciones que elige ste en una pgina. En la pgina que va a crear se pedir al usuario una direccin de correo electrnico, el nmero de personas para las que solicita reserva y una fecha preferida. La pgina tambin permite al usuario solicitar confirmacin telefnica de la reserva. (La opcin predeterminada para esta pgina, si se implementase, sera una confirmacin por correo electrnico). Crearemos un sitio Web y una pgina en la que podr trabajar con estilos. Para agregar controles y texto 1. Cambie a la vista Diseo. 2. Escriba un encabezado de pgina, como Enviar una reserva. 3. Desde el grupo Estndar del Cuadro de herramientas, arrastre los controles siguientes a la pgina y establezca sus propiedades tal como se indica. a. TextBox, ID: TextEmail b. TextBox, ID: TextNmero c. TextBox, ID: TextFecha d. Button, ID: ButtonMandar, Text: Enviar solicitud, ValidationGroup: GrupoValidar1. e. Label, ID: LabelMensaje, Text: en blanco. 4. Escriba el texto delante de los cuadros de texto como ttulos. 5. Haga doble clic en el botn con el objeto de crear un controlador para su evento Click y, a continuacin, agregue el cdigo resaltado que se muestra a continuacin: Pr ot ect ed Sub But t onMandar _Cl i ck( ByVal sender As Obj ect , ByVal e As Syst em. Event Ar gs) Handl es But t onMandar . Cl i ck I f Page. I sVal i d Then Label Mensaj e. Text = "Su r eser va ha si do Pr ocesada" End I f End Sub
IsValid indica si la validacin de la pgina ha sido correcta.
6. El controlador del botn slo muestra un mensaje; no realiza ningn procesamiento real. Ctedra: Programacin II 48 7. Cambie a la vista Diseo, haga doble clic en un rea en blanco en la pgina para crear un controlador Page_Load y, a continuacin, agregue el cdigo resaltado que se muestra a continuacin:
Pr ot ect ed Sub Page_Load( ByVal sender As Obj ect , ByVal e As Syst em. Event Ar gs) Handl es Me. Load Label Mensaj e. Text = "" End Sub
8. Este cdigo borra el mensaje que muestra la pgina despus de la validacin completa. Agregar validacin bsica Para su sistema de reservas imaginario, necesitar que se realicen las siguientes comprobaciones de validacin: La direccin de correo electrnico es obligatoria y su formato tiene que ser correcto; por ejemplo, alguien@ejemplo.com. (Por lo general, no es viable comprobar si la direccin de correo electrnico es real; no obstante, s se puede comprobar que se ajusta al modelo correspondiente a las direcciones de correo electrnico). Tambin es necesario el nmero de personas, que debe ser un valor numrico. Se necesita la fecha preferida. Puede agregar todos estos criterios de validacin mediante controles validadores, que se encargan de realizar las comprobaciones y muestran los errores automticamente. Para agregar una validacin bsica 1. Cambie a la vista Diseo. Desde el grupo Validacin del Cuadro de herramientas, arrastre un control RequiredFieldValidator y colquelo junto al cuadro de texto TextEmail. 2. Establezca las siguientes propiedades del control RequiredFieldValidator: a. ControlToValidate; TextEmail. Enlaza el control validador al cuadro de texto cuyo contenido desea validar. b. Display: Dinmico. Especifica que el control slo representa (y ocupa espacio en la pgina) si es necesario para mostrar un error. c. ErrorMessage: Se requiere la direccin de correo electrnico. Muestra texto en un resumen de error. d. Text: *. Para indicar que un campo es obligatorio, se suele utilizar como convencin un signo en forma de estrella. Slo se mostrar este texto en caso de error. e. ValidationGroup: GrupoValidar1. Al igual que ocurre con los botones de opcin, es posible reunir los validadores en grupos que se tratan como una unidad. 3. Este control chequea que el usuario ingrese el dato requerido (obligatorio), en este caso escribir una direccin de correo electrnico.
Ctedra: Programacin II 49
4. Desde el grupo Validacin del Cuadro de herramientas, arrastre un control RegularExpressionValidator y colquelo junto al control RequiredFieldValidator recin agregado. 5. Establezca las siguientes propiedades del control RegularExpressionValidator: a. ControlToValidate; TextEmail. b. Display: Dinmico. c. ErrorMessage: La direccin de correo electrnico debe estar en el formato nombre@dominio.xyz. d. Text: Formato no vlido. e. ValidationGroup: GrupoValidar1. 6. Con el control RegularExpressionValidator todava seleccionado, haga clic en el botn de puntos suspensivos en el cuadro ValidationExpression de la ventana Propiedad. Las expresiones regulares constituyen un lenguaje que se puede utilizar para buscar con precisin modelos definidos en cadenas. En el control RegularExpressionValidator, defina una expresin regular para el modelo vlido (en este caso, el modelo de una direccin de correo electrnico vlida). El Editor de expresiones regulares contiene una lista de expresiones regulares utilizadas con frecuencia para que pueda usar el control validador sin tener que conocer la sintaxis de las expresiones regulares. 7. En la lista Expresiones estndar, haga clic en Direccin de correo electrnico de Internet. La expresin regular para una direccin de correo electrnico se coloca en el cuadro Expresin de validacin. 8. Haga clic en Aceptar para cerrar el cuadro de dilogo.
Ctedra: Programacin II 50
9. Agregue otro control RequiredFieldValidator segn las instrucciones de los pasos 1 a 3. Sin embargo, en esta ocasin deber enlazarlo al cuadro de texto TextNmero y establecer su propiedad ErrorMessage como Indique para cuntas personas es la reserva. 10. Desde el grupo Validacin del Cuadro de herramientas, arrastre un control RangeValidator y colquelo junto al control RequiredFieldValidator recin agregado. 11. Establezca las siguientes propiedades del control RangeValidator: a. ControlToValidate; TextNmero. b. Display: Dinmico. c. ErrorMessage: Escriba un nmero entre 1 y 20 para indicar el nmero de personas para la reserva. d. MaximumValue: 20. e. MinimumValue: 1. f. Text: Escriba un nmero entre 1 y 20. g. Type: Entero. h. ValidationGroup: GrupoValidar1. 12. El control RangeValidator realiza dos funciones: garantiza que los datos que introduce un usuario son numricos y comprueba que el nmero introducido se encuentra entre los valores mnimo y mximo especificados. Probar la pgina Ahora puede probar los controles validadores que tiene hasta el momento. Para probar la validacin bsica 1. Presione CTRL+F5 para ejecutar la pgina. 2. Cuando la pgina aparece en el explorador, haga clic en el botn Enviar Solicitud. Se muestran varios errores de validacin porque no ha rellenado algunos campos necesarios. Observe que se muestran los errores de validacin inmediatamente. No se enva la pgina. De forma predeterminada, los controles validadores insertan ECMAScript de cliente (JavaScript) en la pgina para realizar una comprobacin de validacin en el explorador. Esto proporciona a los usuarios informacin instantnea sobre errores de validacin; sin script de cliente, para la comprobacin de errores de validacin se necesitara una accin de ida y vuelta al servidor, lo que en ocasiones podra resultar lento. De hecho, no es posible enviar la pgina hasta que se pasen todas las comprobaciones de validacin en el cliente. (Como medida de Ctedra: Programacin II 51 seguridad, se realiza de nuevo la misma comprobacin de validacin cuando se enva la pgina). 3. Compruebe la validacin en el cuadro de texto TextEmail; para ello, escriba una direccin de correo electrnico no vlida y, a continuacin, repita la prueba con una direccin de correo electrnico vlida, como la suya. 4. Compruebe que slo se pueden escribir valores numricos entre el 1 y el 20 en el cuadro de texto Nmero de personas para la reserva. 5. Cuando haya escrito los valores vlidos, haga clic en el botn Enviar solicitud. Si la validacin pasa todos los controles, ver el mensaje Se ha procesado su reserva. 6. Despus de haber confirmado que esa validacin funciona segn lo previsto, cierre el explorador. Si la validacin no funciona segn lo previsto, asegrese de que ha establecido todos los valores de configuracin de propiedades enumerados anteriormente y despus ejecute de nuevo la pgina.
Formas alternativas de mostrar informacin de errores De forma predeterminada, los controles validadores muestran el texto de los errores en contexto; es decir, muestran el valor de la propiedad Text del control en la ubicacin que tiene el control en la pgina. En ocasiones quiz desee que la informacin de los errores se muestre de otro modo. Los controles validadores de ASP.NET le proporcionan estas opciones adicionales: Resumir todos los errores de validacin en un lugar. Puede hacerlo adems de que se muestren los errores en contexto, o como alternativa a esa presentacin. Si se muestran los resmenes de error, tambin es posible mostrar mensajes de error ms largos. Mostrar un mensaje emergente en el explorador con informacin de error. Esta opcin solo funciona en exploradores habilitados para el uso de script. Puede agregar estas dos opciones de presentacin con el control ValidationSummary. Para que se muestre informacin de validacin de formas alternativas 1. Arrastre un control ValidationSummary desde el grupo Validacin del Cuadro de herramientas hasta la pgina. 2. Establezca la propiedad ValidationGroup del control ValidationSummary como GrupoValidar1. 3. Ejecute la pgina. 4. Realice las mismas pruebas que realiz anteriormente. Ctedra: Programacin II 52 Para cada error ver informacin en dos lugares. Se muestra un mensaje de error corto (el valor de la propiedad Text del control validador) donde se encuentra el control validador. El mensaje de error ms largo (el valor de la propiedad ErrorMessage del control) se muestra en el control ValidationSummary.
5. Cierre el explorador. 6. Establezca la propiedad ShowMessageBox del control ValidationSummary en true, cada error produce un mensaje emergente en el explorador. Ctedra: Programacin II 53 7. Si no deseamos que adems salga el mensaje en la pgina en el lugar del control ValidationSummary debemos cambiar la propiedad ShowSummary en False. 8. Ejecute la pgina. 9. Realice las mismas pruebas. En esta ocasin, cada error produce un mensaje emergente en el explorador.
10. Cierre el explorador. Agregar validacin personalizada para comprobar la entrada de la fecha Entre los controles de validacin de ASP.NET no se incluye ninguno que compruebe automticamente la validez de la fecha. Sin embargo, puede utilizar el control CustomValidator con ese fin. El validador personalizado permite escribir cdigo de validacin propio para comprobar cualquier condicin que necesite la aplicacin. Con el control CustomValidator comprobaremos que el valor que escribe el usuario en el cuadro de texto TextFecha se puede convertir en un valor de fecha. Agregaremos dos bloques de cdigo de validacin personalizado. El primero es el cdigo de validacin personalizado que se ejecuta cuando se enva la pgina. Siempre debe tener lgica de validacin de servidor para un control CustomValidator. Tambin escribir script de cliente (ECMAScript o JavaScript) que realizar una comprobacin similar en el explorador para que el usuario tenga informacin inmediata. Para utilizar un control CustomValidator con el fin de comprobar una fecha vlida 1. Desde el grupo Validacin del Cuadro de herramientas, arrastre un control CustomValidator a la pgina y colquelo junto al cuadro de texto TextFecha. 2. Establezca las siguientes propiedades del control CustomValidator: Ctedra: Programacin II 54 1. ControlToValidate; TextFecha. 2. Display: Dinmico. 3. ErrorMessage: Escriba una fecha en el formato dd/mm/aaaa. 4. Text: Formato de fecha no vlido (se requiere dd/mm/aaaa). 5. ValidationGroup: GrupoValidar1.
3. Haga doble clic en el control CustomValidator con el objeto de crear un controlador para su evento ServerValidate y, a continuacin, agregue el cdigo resaltado que se muestra a continuacin:
Pr ot ect ed Sub Cust omVal i dat or 1_Ser ver Val i dat e ( ByVal sour ce As Obj ect , ByVal ar gs As Syst em. Web. UI . WebCont r ol s. Ser ver Val i dat eEvent Ar gs) Handl es Cust omVal i dat or 1. Ser ver Val i dat e Tr y Dat eTi me. Par seExact ( ar gs. Val ue, "d", _ Syst em. Gl obal i zat i on. Dat eTi meFor mat I nf o. Cur r ent I nf o) ar gs. I sVal i d = Tr ue Cat ch ex As Except i on ar gs. I sVal i d = Fal se End Tr y End Sub
4. Este cdigo se ejecuta cuando el usuario enva la pgina. El cdigo interacta con el control validador mediante el objeto ServerValidateEventArgs (ar gs) pasado al controlador. El valor que el usuario ha especificado en el cuadro de texto TextFecha se pasa como la propiedad Value del objeto ar gs. Despus de haber comprobado que la entrada del usuario es vlida, establezca la propiedad IsValid del objeto ar gs en true o false. Si la establece en false, el validador mostrar su mensaje de error. 5. En este ejemplo, el cdigo utiliza un bloque try-catch para determinar si la entrada del usuario se puede convertir en un objeto DateTime. Si el usuario especifica un valor no vlido (que no se ajusta a una fecha de formato dd/mm/aaaa), el mtodo ParseExact del objeto DateTime produce una excepcin y se ejecuta el bloque Catch. 6. En el controlador Button_Clik, agregue el cdigo resaltado que se muestra a continuacin:
Pr ot ect ed Sub But t onMandar _Cl i ck( ByVal sender As Obj ect , ByVal e As Syst em. Event Ar gs) Handl es But t onMandar . Cl i ck I f Page. I sVal i d Then Label Mensaj e. Text = "Su r eser va ha si do Pr ocesada" El se Label Mensaj e. Text = "La Pgi na no es vl i da" End I f End Sub
7. Cuando se utiliza un control CustomValidator, debe comprobarse la propiedad Page.IsValid en cualquier procesamiento de servidor para asegurarse de que se han pasado todas las comprobaciones de validacin. La propiedad IsValid devuelve el estado acumulado de todos los controles validadores en la pgina. Esta propiedad se utiliza para asegurarse de que todas las comprobaciones de validacin han pasado el procesamiento de servidor.
Ctedra: Programacin II 55
Ahora ha agregado el cdigo de servidor para el control CustomValidator para comprobar la validez de una fecha. Como ya se ha visto anteriormente, los controles validadores tambin comprueban la entrada de un usuario mediante script de cliente. Tambin puede agregar script de cliente al control CustomValidator. En realidad, escribir script de cliente que duplica la lgica que aplica la validacin de servidor. No siempre es viable escribir cdigo de validacin personalizado de cliente (por ejemplo, si el cdigo personalizado valida una entrada del usuario mediante consulta en una base de datos de servidor). Sin embargo, en este caso puede crear cdigo de cliente que realice esencialmente la misma comprobacin que est realizando su cdigo de servidor. Para agregar script de cliente al control CustomValidator 1. Abra o cambie a Default.aspx. 2. En el elemento <head> de la pgina, agregue el siguiente bloque de script de cliente:
<scr i pt l anguage="j avascr i pt "> f unct i on val i daFecha( oSr c, ar gs) { var i Day, i Mont h, i Year ; var ar r Val ues; ar r Val ues = ar gs. Val ue. spl i t ( "/ ") ; i Mont h = ar r Val ues[ 1] ; i Day = ar r Val ues[ 0] ; i Year = ar r Val ues[ 2] ; var t est Dat e = new Dat e( i Year , i Mont h - 1, i Day) ; i f ( ( t est Dat e. get Dat e( ) ! = i Day) | | ( t est Dat e. get Mont h( ) ! = i Mont h - 1) | | ( t est Dat e. get Ful l Year ( ) ! = i Year ) ) { ar gs. I sVal i d = f al se; r et ur n; } r et ur n t r ue; }</ scr i pt >
3. Este cdigo es similar al de comprobacin de validacin de servidor, pero no tan estricto. La entrada del usuario se pasa a la funcin como la propiedad Value del objeto args, y se puede establecer la propiedad IsValid del objeto para indicar si el valor pasa la validacin. En este ejemplo, el cdigo comprueba que se han escrito fechas con un formato numrico vlido. 4. Observe que el cdigo para la validacin personalizada es ligeramente diferente en el script de cliente que en el cdigo de servidor. ECMAScript no proporciona exactamente la misma funcionalidad que en .NET Framework. Por Ctedra: Programacin II 56 consiguiente, ECMAScript analiza el texto escrito en lugar del cdigo ParseExact que se utiliza en el servidor para comprobar la fecha. Sin embargo, las dos comprobaciones de validacin (cliente y servidor) son bastante parecidas para proporcionarle la funcionalidad que necesita. 5. Coloque el punto de insercin en el elemento <asp:customvalidator> para seleccionarlo. 6. En la ventana Propiedades, establezca la propiedad ClientValidationFunction del control como validaFecha, que es el nombre de la funcin ECMAScript que ha creado. Ahora ha agregado una comprobacin de validacin personalizada que funciona primero en el script de cliente para comprobar la entrada del usuario inmediatamente y, despus, cuando la pgina se enva al servidor. Ahora puede probar que su validacin personalizada est funcionando correctamente. Agregar controles opcionales con validacin condicional Agregaremos informacin opcional al formulario de reservas. Los usuarios pueden activar una casilla para indicar que desean confirmacin telefnica de sus reservas. Si lo hacen, deben escribir su nmero de telfono. Por consiguiente, la pgina contendr dos controles adicionales: una casilla y un cuadro de texto. Como en el caso anterior, utilizar la validacin para comprobar las entradas del usuario. Utilizar un control RequiredFieldValidator para asegurarse de que los usuarios escriben un nmero de telfono, y un control RegularExpressionValidator para comprobar el formato. El nmero de telfono es opcional; slo tiene que comprobar el nmero de telfono si el usuario ha activado la casilla Confirmo reserva por telfono. Por lo tanto, escribir cdigo sencillo con el que se active o desactive la validacin del nmero de telfono en funcin del estado de la casilla. Para agregar una validacin condicional 1. Desde el grupo Estndar del Cuadro de herramientas, arrastre un control CheckBox a la pgina y establezca las propiedades siguientes: a. ID: chequeoTe b. AutoPostBack: True. Cuando el usuario haga clic en la casilla, la pgina realizar una accin de ida y vuelta y habilitar o no el cuadro de texto y la validacin de ste. c. CausesValidation: False. No se producir automticamente la validacin al hacer clic en CheckBox. d. Text: Confirme la reserva por telfono. e. TextAlign: Left. Alinea el texto (Text) a la izquierda de la casilla. 2. Arrastre un control TextBox a la pgina, bajo el control CheckBox y establezca las propiedades siguientes: a. ID: nmeroTe b. Enabled: False. No se habilitar el cuadro de texto hasta que el usuario haga clic en la casilla. 3. Escriba un texto como Nmero de telfono: como un ttulo junto al cuadro de texto correspondiente al nmero de telfono. 4. Desde el grupo Validacin del Cuadro de herramientas, arrastre un control RequiredFieldValidator a la pgina y establezca las propiedades siguientes: a. ID: validadorRequiereNuTe. No se estableci el ID de los controles validadotes anteriores, pero en este caso haremos referencia al control validador en cdigo, por lo que resulta til proporcionarle un ID. b. ControlToValidate: nmeroTe. c. Display: Dinmico. Ctedra: Programacin II 57 d. ErrorMessage: Debe proporcionar un nmero de telfono. e. Text: *. f. ValidationGroup: (dejarlo en blanco). Si esta propiedad est en blanco significa que el validador no pertenece al grupoGrupoValidar1 que establecimos para los otros controles validadotes en la pgina. Como consecuencia de ello, esta validador no se comprueba de forma predeterminada cuando se hace clic sobre el botn 5. Arrastre un control RegularExpressionValidator a la pgina y establezca las propiedades siguientes: a. ID: validadorExpresinNuTe. b. ControlToValidate: nmeroTe. c. Display: Dinmico. d. ErrorMessage: El formato del nmero de telfono no es vlido. e. Text: Formato no vlido. f. ValidationExpresion: (usar el cuadro de dilogo Editor de Expresiones regulares para seleccionar Nmero de Telfono en u otra expresin para el nmero de telfono. g. ValidationGroup: (dejarlo en blanco).
6. Haga doble clic en el control chequeoTe con objeto de crear un controlador para su evento CheckedChanged y, a continuacin, agregue el cdigo resaltado que se muestra a continuacin:
Pr ot ect ed Sub ChequeoTe_CheckedChanged( ByVal sender As Obj ect , ByVal e As Syst em. Event Ar gs) Handl es ChequeoTe. CheckedChanged I f ChequeoTe. Checked = Tr ue Then nmer oTe. Enabl ed = Tr ue val i dador Requi er eNuTe. Val i dat i onGr oup = "Gr upoVal i dar 1" val i dador Expr esi nNuTe. Val i dat i onGr oup = "Gr upoVal i dar 1" El se nmer oTe. Enabl ed = Fal se val i dador Requi er eNuTe. Val i dat i onGr oup = "" val i dador Expr esi nNuTe. Val i dat i onGr oup = "" End I f End Sub Ctedra: Programacin II 58
7. Cuando el usuario hace clic en la casilla, habilita el cuadro de texto para ingresar el nmero de telfono control nmeroTe y los dos controles validadores asociados al cuadro de texto se agregan al grupo de validacin al que pertenecen los otros controles validadores. El efecto es que todos los validadores de la pgina, incluidos los del nmero de telfono, se comprobarn cuando el usuario enve la pgina. Si el usuario desactiva la casilla, los validadores se quitan del grupo y, por lo tanto, no se procesan cuando se hace clic en el botn Enviar solicitud. 8. Podemos probar la pgina.