tur

a
ec

de
l

Desarrollo de aplicaciones web con
ASP .NET 2.0. Aspectos avanzados

Eje

mp

lo

Ángel Esteban

tur
a

Sipnosis

ec

Este texto está dedicado a la versión de ASP .NET que ofrece Microsoft dentro de su entorno .NET
Framework 2.0. Se abordan los aspectos más avanzados relacionados con el desarrollo de aplicaciones
Web basadas en ASP .NET 2.0 como pueden ser: la construcción de servicios Web, implementación
controles Web de servidor y controles de usuario, WebParts, Master Pages, temas y skins, distribución
y administración de aplicaciones Web, características de internacionalización, etc. Se requiere tener
algún conocimiento previo del desarrollo de aplicaciones Web con ASP .NET 2.0. Los lenguajes de
programación utilizados a lo largo del texto son Visual Basic .NET y C#.

Eje

mp

lo

de
l

Angel Esteban (Madrid, 1975) Ingeniero Técnico en
Informática de Gestión (Universidad Politécnica de Madrid),
con las siguientes titulaciones de Microsoft: MCSD, MCAD y
MCTS (en SQL Server 2005). Trabaja como Software Architect
en Alhambra-Eidos. Experto en el diseño y desarrollo de
aplicaciones Web basadas en ASP .NET. Autor de varios cursos
virtuales en www.elcampusdigital.com.

tur
a

Luarna

ec

Desarrollo de Aplicaciones web con ASP .NET 2.0 Aspectos avanzados
© Angel Esteban Núñez y Alhambra Eidos
© De esta edición: 2009, Luarna Ediciones, S.L.

www.luarna.com

ISBN: 978-84-92684-49-6

Eje

mp

lo

Versión 1.0 (20-11-2009)

de
l

Madrid, noviembre de 2009

Cualquier forma de reproducción, distribución, comunicación pública o transformación de esta obra solo puede ser realizada
con la autorización de sus titulares, salvo excepción prevista por la ley. Diríjase a CEDRO (Centro Español de Derechos
Reprográficos, www.cedro.org) si necesita fotocopiar, escanear o hacer copias digitales de algún fragmento de esta obra.

Aspectos avanzados Eje mp lo Ángel Esteban Núñez .0.NET 2.tur a ec de l Desarrollo de aplicaciones web con ASP .

........................................................... 93 Cross-Page PostBack .............................................................................NET ..................................................................... 83 Configuración de las aplicaciones ASP .......................................... 34 lo de l Novedades de ASP ................................................................................................................................................................................................................................................................................................................................................................. 12 Nuevos controles Web de servidor ...............................................................................................................NET ....................................................................................................................................................................................... 58 Nueva sintaxis....................... 37 Master Pages .................................................. 47 Internacionalización ............. 63 Soporte para 64 bits ........................................................................ 56 Nuevos eventos de las páginas ASPX ...........................................................................................................64 mp Elementos comunes del desarrollo de aplicaciones Web con ASP ......................................................................................................................... 114 Directorios especiales de la aplicación ASP .....................................................................................................................................................................................................................................................................................57 Nuevas características del código de cliente ..................................................................................................................................................................................................................................................0 II ......... 21 Controles Web de inicio de sesión ........................................................................................................................................NET 2...........0 II .......................................tur a Indice ec Novedades de ASP ...................................................57 Directorios de una aplicación ASP ................................................................................................................................... 10 Lenguajes de programación ....................... 67 Web Forms ........................... 66 Introducción .......................................................................................................................................... 119 Los directorios Bin y App_Code de la aplicación ..........................................................NET 2..................................................................... 50 Nuevo modelo de separación de código ................................... 93 El API Focus..................... 121 Página |5 ....... 60 Distribución de la aplicación ..................................................................................................................... 76 Separación de código ........................................ 15 Controles Web de datos ............................................. 61 Mejora del ViewState......................................................................... 63 Consola MMC de administración ................................................................................... 107 Callbacks de cliente ..................................... 97 Aplicando estilos a los controles Web .......82 Eventos de los controles Web de servidor .................... 54 PostBack entre distintas páginas ........ 72 Eventos de una página ASPX ......................................................................................................................... 60 Visual Studio 2005.............................................. 26 WebParts .................... 29 Controles Estándar .... 62 API de configuración ............................................................................................................................................................................................................................................................................. 12 Recorrido por las distintas versiones de ASP .......................................... 90 Eje Elementos comunes del desarrollo de aplicaciones Web con ASP .........................................................................................................................................64 Material necesario ............. 43 Personalización ..................................................................... 10 Introducción ............................................................... 80 Directivas de las páginas ASPX ....NET 2.............................................. 37 Temas y Skins ...................... 56 Soporte para manejar el foco de la página ................. 66 Sintaxis básica de ASP ...... 61 Precompilación de páginas ..........................................................................................................59 Nuevas directivas de las páginas ASPX ...............................................................................................................................................................................................................NET ............................ 93 Introducción .......................................................................................................................................................................................................................NET ......................0 I............................ 70 Controles HTML y controles Web de servidor .................................................................................................................. 102 Añadiendo controles Web en tiempo de ejecución ...................................................................................................................0-I ............... 15 Controles Web de navegación ...............................................................................................................................................NET 2.....................................................................................................................................................................................................................................................................

............................................................................ 211 Introducción..................................... 240 Beneficios de ADO ..NET y XML ........................................ 144 Páginas maestras anidadas......... 235 Acceso a datos con ADO ................................................... 243 ADO .............WebControls................... 229 Manteniendo el estado de los controles . 194 Introducción.............................................................. 154 Introducción................ 185 Controles de usuario y el modelo se separación de código ............................................... 142 Asignación de la página maestra en tiempo de ejecución ......... 169 Caso Práctico: Planteamiento ................................................................................................................................ 130 Accediendo a la página maestra....................................................................Web.................................... 194 Introducción a los componentes ................................ 184 La directiva @Control.......................................................................................................................................................................................................... 209 Eje mp Construcción avanzada de controles Web de servidor ........................................................................................................................................................................................................................................................................................................................................................................ 197 Creación de controles ASP ............................................ 136 Indicando contenido por defecto..... 244 Página |6 ........................................................................................ 125 Asociando páginas maestras ..................................................................................................................................... 159 Páginas maestras y temas ............................................................................................................................................................ 173 La directiva @Register ............................ 217 Propiedades de clase .........................................................................NET ................................................................................................................. 174 Creando un control de usuario ...................... 128 Creando la página de contenido ..............IU. 153 ec Temas y Skins ....................................... 242 DataSet ....................NET................................................................................NET de servidor. 154 Aplicando temas ......................................... 179 Eventos en los controles de usuario ............................................................................................................. 171 de l Creación y utilización de controles de usuario ................................................................................... 149 Caso Práctico: Planteamiento ........................................................................................................................................................................................................... 186 Transformación de una página ASPX en control de usuario ....................................................................................................... 175 Creando propiedades en los controles de usuario ............................................................................NET ............................................................................................................................................................................ 241 Arquitectura de datos desconectados .................................................. 189 Caso Práctico: Planteamiento .................................................................................................................................................................................................................... 193 lo Creación de componentes y controles Web de servidor........ 172 Introducción..................................................................................................................................................................... 214 Utilizando los servicios de HtmlTextWriter ........................................ 195 Creación de componentes ........................................ 226 Controles compuestos ...................................................................................................................... 244 Una visión general de ADO ................................................................................................................................................................................................................................NET .............................. 221 Heredando de la clase System............................................................................................ 172 Controles de usuario................................................................................................................................... 124 Añadiendo una página maestra ........................................................... 205 Caso Práctico: Planteamiento ........ 211 Propiedades de los controles de servidor.................tur a Master Pages ............................................. 233 Lanzando eventos ..................................................... 146 Eventos de las páginas maestras ................................. 211 Conversión de los valores de atributos ................................................................................................................................................................................................................................................ 155 Utilizando skins ...............................................................................................................................................................................................NET ..................................................................................................................WebControl ............................................................................................................................. 124 Introducción............................................................................... 240 Introducción......................................................................................................................................................................................................................................................

....................NET .. 284 Los atributos WebService y WebMethod....................................................................... 354 ApareanceEditorPart y LayoutEditorPart ........ 271 ec Creación de servicios Web ..................................................................................................................................................................................................................................................................................................................... 305 Creación de clases proxy con Visual Studio ........................................................................................................................................................................................................................................ 246 Estableciendo la conexión........................ 325 mp lo WebParts I: Conceptos básicos y catálogos ........................................................................................... 273 Arquitectura de un servicio Web ................................................................................................................................................................... 251 Los objetos DataReader ............................................... 290 Servicios Web de acceso a datos ................................................................................................................................................................................................................................................................................ 274 Construcción de servicios Web...... 319 Caso Práctico: Planteamiento ............................................................................................................................................................................................................................... 326 Introducción....................... 272 Introducción a los servicios Web ..................................................................................... 354 Modo de edición ......... 258 El objeto DataSet ..................................................................................................................................................................................................................................................................... 342 PageCatalogPart ................................................................................. 267 Caso Práctico: Planteamiento ............................... 301 Introducción.............................................................................. 302 Descripción y localización de servicios Web .................................................................... 301 Las fases de la puesta en marcha de un servicio Web .....................tur a Las clases de ADO ......................................................................................................................................................................... 303 Las clases proxy............................................................................................................................................................................................................. 348 ImportCatalogPart ............................... 384 Construcción del WebPart ......................... 248 Los objetos Command........................................ 381 Eje WebParts III: Creación de WebParts personalizados ................................................................................................. 332 Controles WebPart ....................................................................... 397 Página |7 ..................................................................................................................................... 357 BehaviorEditorPart.................................................................................................................... 326 WebPartManager y WebPartZone ..... 385 Utilizando el WebPart .........................EXE ............................................................................................................................................ 306 Creación de clases proxy con la utilidad WSDL.................... 351 WebParts II: Modos de edición y conexión................................. 354 Introducción.................................................................................................................... 343 DeclarativeCatalogPart......................................... 262 Los objetos DataAdapter ...........................................................................................................................................NET .................................................................................................................................................................................................................................... 280 La directiva @WebService ................ 392 Restableciendo la configuración ..................................... 382 Definiendo el WebPart ...................................................... 296 Caso Práctico: Planteamiento .................................................................................. 374 Caso Práctico: Planteamiento .............................................................................. 275 Comprobando el funcionamiento del servicio Web ............................................................................. 361 PropertyGridEditorPart ................................................................................................... 300 de l Utilización de servicios Web ............................................................ 284 La clase WebService ............... 365 Modo de conexión ............................................................................................ 327 Modos del control WebPartManager ..................................................................................................................... 382 Introducción....................................... .................................................................. 336 Catálogos WebPart.......................................................................................................................................................................................................... 388 Definiendo verbos para el WebPart .......................................................................................................... 383 Definición de las propiedades del WebPart....................................................................................................... Los objetos Connection ...................................................................................................................... 272 Introducción................................................................................

..................... 454 Lectura y escritura de ficheros con streams .......................................................... 467 Métodos de distribución de una aplicación Web ......................... 468 Copiar sitio Web ............................................................................................ 432 Directorios .......................................................... 418 Fichero de recursos global ................................................. 427 de l Entrada/Salida con ficheros y streams ............................................................................................................................... 472 Publicar sitio Web ...............................tur a Personalización ..................................................................................................................................... 504 Página |8 .............................................................................................................................................................................................................................. 425 Manejando el idioma en tiempo de ejecución ..... 498 Seguridad de directorios .................................................................................................................................... 418 Fichero de recursos local ................................ 494 Sitio Web ....................... 409 Migración de usuarios anónimos ..................................................................................................................... 495 Directorio particular ................ 497 Errores personalizados .. 437 Ficheros ...... 426 Estableciendo el idioma ........................................................................................................... 487 Eje mp Configuración de Internet Information Server............................................................. 414 ec Internacionalización ..................................................................................................................................................................................................................................................................................... 399 Introducción............................................................................................................. 501 ASP ..................................................... 461 lo Distribución de aplicaciones Web.......... 496 Documentos ....................................................... 498 Rendimiento......................................................................................................................................................................................................................................... 468 XCopy ............................................. 431 Introducción............................. 400 Agrupación de propiedades de personalización......................................................................................................................................................................................................................................................................... 482 Caso Práctico: Planteamiento .................... 462 Instalación de Visual Studio 2005 ........................... 494 Administración del sitio Web ............................................................................................................................................................................................................. 503 La aplicación Web .................................................................................................... 416 Introducción............................................................NET .................................................................................................................................................................... 462 Introducción.................................................. 489 Instalando IIS ................. 457 Caso Práctico: Planteamiento ............................................................................................................................................................................................................................................................................................................................................. 488 Introducción...... 431 Unidades de disco ......................................................................................................................... 499 Encabezados HTTP ...................................... 446 Rutas ............................................................................................. 489 El administrador de Servicios de Internet Information Server ......................................................................................... 399 Creación de propiedades de personalización ............................................................................................................................................................................................................ 488 El servidor Web Internet Information Server ............................................................................................................................................................................................................................................................................... 476 Programa de instalación ............................................................................................... 463 El entorno de trabajo ................................................................................................ 417 Carpetas especiales ................................................................................................................................................................. 499 Filtros ISAPI ........................................................................................................................................................ 405 Definición de tipos ............................................................................................................................................................................................................................................................................. 491 Elementos de IIS ..................................................................................................................................... 416 Creación de ficheros de recursos ...................................................................................................................................................................................... 417 Internet Explorer: Preferencias de idioma ................................................................................................................................................................................ 500 Extensiones de servidor .................................................................................

. 537 Herramientas de configuración ......... 513 Sección de valores de configuración ............................... 536 Bloqueando valores de configuración ............................................................................................................. 567 Capítulo 14 ................................................................. 519 Cadenas de conexión .......................................................................... 578 Página |9 ......................................................................................... 517 Configuración de la aplicación .......................................................................... 549 Capítulo 7 ........ 511 Formato de los ficheros de configuración ............................................................................................................................................................................. 509 Una configuración basada en XML ............................................................................................... 530 Modelo de proceso .... 534 Indicando la configuración para un recurso concreto ..................................................................................NET MMC Snapin) ................................................................................................................................................................................................................................................................................................................... 519 Configuración de la sesión ........ 510 Aplicando la configuración ................................................................ 526 Identidad ...................................................................................... 538 Sitio Web de Administración................................................... 540 Caso Práctico: Planteamiento ................................................................................................................................................................................................................................................................................................................................................. 512 Sección de manejadores ....................................................................................................................................................................... 526 Compilación................ 514 Tareas comunes de configuración ............................................................................................................... 516 Configuración general ........................................................................................................................................................de l ec tur a Administración y Configuración de Aplicaciones Web ............................. 529 Manejadores HTTP ..................................................................................................................... 574 Capítulo 19 ... 553 Capítulo 8 ....................... 522 Errores personalizados ............................................................................................................................................................................................... 543 Eje mp lo Resolución Casos prácticos ........................................................................................ 544 Capítulo 6 ............................................................................................................................................................................................................................................................... 564 Capítulo 12 ................................. 525 Globalización .................................................................................................................................................................................... 544 Capítulo 5 .................................................................................. 521 Configuración de trazas ................................................................................................................................................................... 577 Capítulo 21 ............................................................................................................................................................................................................................................ 561 Capítulo 11 ........................ 571 Capítulo 18 ........................... 557 Capítulo 10 ......................................................................... 509 Introducción................ 517 Configuración de la página ........................................................................................................ 538 Pestaña ASPNET (ASP ......................................................................................................................................................................................................................................................................................................................................................................................................................... 523 Web Services ..............................................................................................................................

NET (.0-I lo Introducción mp ASP NET 2.NET no se van a ejecutar directamente sobre un sistema operativo determinado. algunos conceptos generales de la plataforma .NET 1. ya que no debemos olvidar que es la plataforma sobre la que se van a ejecutar las aplicaciones Web desarrolladas con páginas ASP . P á g i n a | 10 . Podríamos decir que ASP . las páginas ASP .0 es la tecnología para el desarrollo de aplicaciones Web que ponemos encontrar en la nueva versión que ofrece Microsoft de su plataforma de desarrollo Microsoft .NET. Para aquellos lectores que no conozcan la tecnología de desarrollo de las páginas ASP en cualquiera de sus versiones.0.NET ofrece una serie de herramientas y tecnologías necesarias para construir y desarrollar aplicaciones Web. u otra versión previa. y es esta parte la que se va a tratar en el presente texto.NET Framework 2. La plataforma .NET Framework.NET es una parte de la plataforma . como para los que no conocen nada del entorno de desarrollo de las páginas activas de Microsoft.NET Framework). Este texto está pensado tanto para aquellos lectores que ya conocen ASP .NET.NET se van a ejecutar dentro del entorno de ejecución que nos facilita el . sino que lo van a hacer sobre la nueva plataforma que ofrece Microsoft.x. voy a realizar una definición muy sencilla de lo que consiste la filosofía de la programación de aplicaciones Web con páginas ASP o ASPX.tur a ec de l Novedades de ASP . es decir.NET 2.NET. aunque comentaremos de brevemente. Eje Nuestro objetivo va a ser centrarnos en la tecnología ASP . las páginas ASP . y cuando sea necesario. así pues.

NET.NET Whidbey. script de cliente y un código que se ejecuta en el servidor. A lo largo de este texto iremos descubriendo paso a paso las distintas posibilidades (que son bastante amplias) que nos ofrece ASP . según sea conveniente. ya que esta será nuestra herramienta de trabajo. y acertada. Será con esta herramienta con la que desarrollaremos nuestras aplicaciones Web y por la tanto la comentaremos también en este texto.NET 1. esta nueva versión de las páginas ASPX (así se denominan también a las páginas ASP .NET 2. Visual Studio 2005. se comentará el uso de Visual Studio 2005. A lo largo del texto. y como se ha apuntado anteriormente se trata de código HTML. es decir la salida de la página ASP . son páginas que contienen código HTML.NET llegó a denominarse ASP .0 de ASP .0.0.NET Framework para el desarrollo de aplicaciones Web. es una evolución lógica de ASP . Es decir.0. también llamadas páginas activas. además de realizar una introducción a ASP .0.NET Framework.NET 2. apoyándonos siempre en la nueva herramienta de Microsoft Visual Studio 2005. son páginas que se ejecutan en el servidor enviando como resultado al cliente código HTML.NET de Microsoft. podemos definir ASP . Como curiosidad comentaré al lector que la nueva versión del . el titulado “Programación para aplicaciones para Internet con ASP 3. sólo veremos la parte que nos interese y que nos afecte a la hora de desarrollar aplicaciones Web con ASP . Esta nueva versión de Visual Studio nos ofrece un entorno de desarrollo muy cómodo para crear nuestras aplicaciones Web a través de ayudas y asistentes.NET. utilizando su extensión).0 es la nueva versión que ofrece el . de l De forma más genérica.NET volvamos en concreto a tratar sobre la nueva versión de ASP .NET. Una vez realizada una definición más o menos de lo que son las páginas ASP . sino el resultado de la ejecución de la página.tur a La filosofía de ASP .NET 2. Por lo tanto al cargar una página ASP .NET 1.0 y la 1.NET. ya que únicamente define uno de los aspectos de las páginas ASP . P á g i n a | 11 . Esta nueva versión de ASP .NET como el entorno de desarrollo incluido en la plataforma . ya sean basadas en Internet. instale en su equipo Visual Studio 2005.0 a ASP . ec El anterior párrafo está extraído completamente de un antiguo texto dedicado a ASP 3.NET. en realidad no estamos cargando la página ASP .NET. que nos permite desarrollar completas aplicaciones Web que se ejecutarán sobre el entorno ofrecido por el . En este capítulo.x para referirnos a las dos versiones anteriores de ASP . mp No veremos Visual Studio 2005 de forma íntegra.NET Framework de Microsoft recibió el nombre en clave (code-name) de Whidbey y la versión 2. con lo que la afirmación de párrafo anterior se quedaría muy corta. también se comentarán las novedades que presenta respecto a su versión anterior ASP .0.NET no ofrece unos cambios tan profundos como supuso el cambio de ASP 3.NET 1.x (utilizamos 1. Eje Por lo tanto debido a todo lo anterior recomiendo al lector que para el correcto seguimiento del texto y de los ejemplos que en el aparecen. y es perfectamente aplicable a ASP .1) lo Por lo tanto ASP .0”. dando como resultado código HTML. en pocas palabras se puede definir de la siguiente forma: las páginas ASP .NET la 1.NET 2. Esta parte de Visual Studio 2005 (VS 2005) se denomina Microsoft Visual Web Developer 2005.NET en nuestro navegador.NET como tal. pero este entorno de desarrollo de aplicaciones Web. va más allá presentando un completo entorno mucho más elaborado y complejo. Microsoft también ofrece una nueva herramienta integral de desarrollo.x. Intranet o Extranet.NET resulta muy sencilla.

de ASP (Active Server Pages).NET de Microsoft. Las nuevas versiones de estos lenguajes que podemos encontrar dentro del . ASP 1.NET Framework 2.NET 2. Vamos a realizar un recorrido histórico a través de ASP.0 no es un lenguaje de programación.0. es decir. ec El código intermedio es una característica común que poseen todas las tecnologías englobadas en la estrategia . IIS 4 además de ofrecer la nueva versión de la tecnología ASP permite configurar y administrar de forma sencilla nuestras aplicaciones ASP.NET. Se debe señalar que el servidor IIS 4 es el servidor Web para plataformas Windows NT Server 4.NET. se incorporó como un añadido o ampliación al servidor Web del sistema operativo Microsoft Windows NT Server 4.0). Recorrido por las distintas versiones de ASP lo Hasta la fecha nos encontramos con seis versiones de la tecnología de las páginas activas de servidor de Microsoft. Este apartado se puede tomar a modo de “cultura general”. Además la figura de la aplicación ASP se encuentra mucho P á g i n a | 12 .0 hasta ASP .0 de Active Server Pages la encontramos en el servidor Web de Microsoft Internet Information Server 4 (IIS 4). Este servidor Web era interesante pero todavía era demasiado rudimentario y presenta limitaciones y problemas. Eje La versión 2.NET 2.NET.NET.0).tur a Lenguajes de programación ASP . C# o JScript.0 supuso el inicio del desarrollo de aplicaciones Web con productos basados en tecnología Microsoft. es un lenguaje común al que compilan todos los lenguajes que utilicemos en nuestras páginas ASP . y en el servidor Personal Web Server 4 (PWS 4). ya sea Visual Basic . pero no es un lenguaje.0.0 es el servidor Web para plataformas Windows 95/98 y Windows NT Workstation 4. o más comúnmente Option Pack. La primera versión de ASP era bastante interesante ya que se pasaba de la complejidad de los CGIs (Common Gateway Interface) a la sencillez de las páginas activas. además el resultado de esta compilación permanece en caché para poder ser reutilizada. De hecho ASP . de l Los ejemplos de código fuente que se mostraran en el texto se ofrecerán tanto en C# como en VB . es un entorno de programación o tecnología de desarrollo.0.0 Option Pack. Ambos servidores los podíamos instalar desde la extensión del sistema operativo de Windows NT denominada Windows NT 4. desde ASP 1.0. Las páginas ASP .NET cuando reciben la primera petición se compilan automáticamente a un lenguaje intermedio que es conocido como Common Language Runtime. ya que la compilación de las páginas sólo se produce en la primera petición que se realiza sobre la página. Gracias a esta característica podemos obtener grandes ventajas en lo que a rendimiento en tiempo de ejecución se refiere. y el servidor Personal Web Server 4. ya que abordar un lenguaje de programación queda fuera de los objetivos de este texto. ya que son los lenguajes más populares entre todos los que soportan las páginas ASP . Suponemos que el lector conoce la sintaxis de alguno de estos dos lenguajes. Esta extensión del sistema operativo no sólo era aplicable a Windows NT.NET soporta distintos lenguajes.0 llamado Internet Information Server 3. en el presente texto vamos a utilizar los lenguajes C# (CSharp) y Visual Basic . a la que lógicamente pertenece ASP .0 se denominan Visual Basic 2005 y C# 2. mp La primera versión de las páginas activas (ASP 1.NET 2.0. o bien cuando el código fuente de la misma se ha modificado y necesita por lo tanto actualizarse. generando el mismo código. que como sabemos todos trata sobre el desarrollo avanzado de aplicaciones Web con ASP .0 (IIS 3. sino que también la podíamos utilizar para Windows 95/98. es decir.NET.NET.

NET se denominaba ASP+ y la propia plataforma poseía la denominación de NGWS (New Generation Windows Services. añadiendo para ello un nuevo objeto integrado denominado ObjectConext (objeto de contexto). ASP . ASP .1.0.NET 2.0.DLL y sin embargo las páginas ASP .0.0 (IIS 5. Dentro de Windows 2000 encontramos el componente Internet Information Services o Internet Information Server.NET 1. Y dentro de este nuevo sistema operativo tenemos el servidor Web IIS 6. Como curiosidad comentaré a los lectores que en las primeros pasos de la plataforma .0 aparece la herramienta de desarrollo Visual Studio 2002 que contiene la versión del 1. ofrece una serie de mejoras y novedades.NET Framework.NET es completamente compatible con ASP.0 tenemos que disponer de cualquiera de las versiones del sistema operativo Windows 2000 (Professional. Al instalar Internet Information Services 5. la 2. P á g i n a | 13 .0 . no supone ningún cambio radical. Para poder utilizar ASP 3.1 aparece ya dentro del sistema operativo Windows 2003 Server y se instala como una parte perfectamente integrada. que será Internet Information Server 5. es perfectamente compatible con las versiones 1.0 ofrece un entorno más robusto y potente que la versión anterior para el desarrollo de aplicaciones Web. y dentro de estas funcionalidades se encuentra ASP 3. una nueva forma de programar aplicaciones Web. también aparece una nueva versión de la herramienta de desarrollo Visual Studio.0 de las páginas ASP. Al igual que sucedía en la versión anterior.NET funcionando en el mismo servidor Web. ya que los cambios van más allá. lo Con ASP . Server y Advanced Server). podemos tener aplicaciones Web basadas en ASP y ASP . este nuevo objeto es utilizado para el tratamiento de errores.0. Es ya con la nueva versión del Framework. que como todos los lectores sospechan es la nueva versión del servidor Web de Microsoft Internet Information Server.NET Framework. ec Más tarde apareció ASP 3.0 es una clara y necesaria evolución de ASP 1. Nueva Generación de Servicios Windows) .NET Framework de Microsoft. en este caso los cambios respecto a ASP 3.NET Framework.0 y ASP 3. En este caso no se trata únicamente de una nueva versión del servidor Web sino también de una nueva versión del sistema operativo Windows. tanto que en muchos casos podemos considerar que se parecen en poco. las páginas ASP tienen la extensión . y al igual que sucedía con ASP 3.1 del . que va a ser el encargado de albergar las aplicaciones Web basadas en ASP .NET poseen la extensión . ASP 2.0 podemos decir que es la evolución lógica de ASP 2.0) dotamos a nuestro servidor de todas las funcionalidades de un potente servidor Web.0 se encuentra disponible dentro de Windows 2000 en cualquiera de sus versiones. el servidor Web nos indicará claramente el alcance de una aplicación ASP determinada.0.0 y ASP .NET 1.0.ASP y son procesadas por la DLL ASP.0. El Framework 1.NET (beta 1 y versiones preliminares previas) ASP . ASP 2. de l ASP 3. Se añade un nuevo objeto integrado llamado ASPError.NET.tur a más clara que en la versión 1. cuando aparece ASP . Y por fin llegamos a la aparición del .NET 1. En resumen.NET 1.0.NET Framework y con el la nueva versión de las páginas ASPX. que las transforma en el código intermedio.ASPX y son procesadas por el entorno de ejecución . ASP .0 incorporando la posibilidad de realizar páginas ASP transaccionales.NET plantea una nueva forma de desarrollar aplicaciones Web dentro del entorno ofrecido por el .0 si que son notables.0. mp ASP . que va a contener una nueva versión de ASP.0. que como ocurría con ASP 2. Eje Después apareció la versión 1. esta nueva versión incluye leves mejoras y cambios.x de las páginas activas. ASP 3. lo único que tenemos que hacer es instalar la nueva versión del Framework.0. ni siquiera podríamos considerar que se trata de ASP 4. en este caso se trata de la versión 2003.

en un mismo equipo puede estar instalado Visual Studio 2003 y Visual Studio 2005 sin ningún tipo de problema ni incompatibilidad. a la hora de crear una aplicación Web nos permite indicar a que versión del Framework pertenece: a la 1. que es la que vamos a utilizar en este texto y que no es otra que la versión 2005.0. como es de suponer también tenemos una nueva versión de la herramienta de desarrollo Visual Studio. Y para terminar con el siguiente apartado.0.x lo tendrán bastante sencillo ya que la forma de desarrollar las aplicaciones Web y su filosofía permanecen intactas. lo mismo sucede con las herramientas de desarrollo. Esto lo podemos ver en la siguiente figura.NET 1.NET. Y para los lectores que no conozcan nada de ASP . Este capítulo y el siguiente será muy útil para la audiencia conocedora de alguna versión previa de ASP . en un mismo servidor Web pueden convivir sin problemas las dos versiones del Framework.NET les P á g i n a | 14 .0. lo Figura 1 Más adelante.0 a ASP .0 con Visual InterDev. en el capítulo correspondiente veremos como configurar y administrar una aplicación Web. ya que en un rápido vistazo se de adelantarán todas las novedades. los lectores que conozcan ASP . la 1.NET. incluso podríamos tener instalado Visual Studio 6.de l ec tur a Desde el propio servidor Web IIS 6.1. mejoras y cambios que nos ofrece la nueva versión de ASP . y desde el servidor Web IIS 5.1 o a la 2.0. sin embargo nos encontraremos con un gran número de mejoras y novedades. en el caso de Windows 2003 Server.1 y la 2. mp Como se puede desprender de la figura anterior. que se corresponderá con la versión de páginas ASPX. en el caso del sistema operativo Windows XP Professional.NET 1. Eje Como ya se ha adelantado los cambios en esta nueva versión de ASP no son tan dramáticos y profundos como los que se dieron con el cambio de versión de ASP 3.

ec En este capítulo se van a comentar las novedades que aporta ASP .NET.NET se ofrecen un gran número de nuevos controles de servidor. apoyándose en el nuevo entorno . que se podrán utilizar para distintas tareas dentro del desarrollo de una aplicación Web. como puede ser el control GridView. y los que nos ofrecen un interfaz de usuario para representar gráficamente los datos.NET 2. para ver de un simple vistazo las novedades más destacables de ASP . haciendo uso únicamente de los nuevos controles de acceso a datos. sino que aparecen completas categorías de controles nuevos como pueden ser los controles de inicio de sesión o los de navegación (denominados por VS 2005 de exploración).0 ahora se puede realizar en unos pocos pasos de manera muy sencilla. P á g i n a | 15 . En la siguiente figura podemos ver los grupos de controles de servidor que nos ofrece ASP . lo de l Para ver la gran cantidad de controles que ASP . los que nos ofrecen la conexión con las fuentes de datos. denominados controles conectados a datos (data bound controls). Nuevos controles Web de servidor En esta nueva versión de ASP .x.0 respecto a la versión 1.NET pone a nuestra disposición únicamente tenemos que echar un vistazo al cuadro de herramientas de Visual Studio 2005.x.0.NET 1. Podemos ver que aparecen un gran número de ellos agrupados por categorías según su funcionalidad. que serán tratadas en mayor detalle a lo largo de los distintos capítulos de este texto. Vamos a comentar brevemente las distintas categorías de nuevos controles de ASP . Dentro de estos controles hay dos grupos bien diferenciados. esta nueva versión de ASP .0. El lector no debe preocuparse si no entiende alguno de los conceptos que aquí se comentan.NET 2.tur a servirá para empezar a ponerse en contacto con el desarrollo de aplicaciones Web y para ver algunas de las funcionalidades que nos ofrece ASP .NET 2.NET 2. este apartado servirá sobretodo a aquellos lectores que ya conozcan ASP .0 desde VS 2005. Figura 2 mp No se trata únicamente de nuevos controles mejorados. sin la necesidad de escribir ni una sola línea de código.NET Framework 2. ya que los veremos más adelante con mayor profundidad.NET nos ofrece unas potentes características a la hora de desarrollar aplicaciones Web. pasemos a ver las más destacadas. como podría ser el control SqlDataSource. denominados controles de fuente u origen de datos (data source controls). Controles Web de datos Eje El acceso a datos desde ASP . tenemos desde controles de acceso a datos hasta controles de navegación.NET 2.0.

· SiteMapDataSource: este último control de origen de datos también se utiliza con los controles de navegación. Este control hereda del anterior.0 nos ofrece cinco controles Web de origen de datos. Se utiliza en escenarios de maestro/detalle y también es utilizado para editar registros existentes y para crear nuevos registros.NET 2. este grupo de controles van a hacer uso de los controles de origen de datos para mostrar la información. paginación. Oracle y ODBC. · DetailsView: este control también es nuevo en ASP . Es el más complejo de los controles enlazados a datos ofreciendo un alto grado de personalización y una serie de características muy interesantes como pueden ser la ordenación.NET 2. modificarlos. opcionalmente nos permite ir navegando entre registros.sitemap).NET 1. generando el código HTML equivalente a una tabla. mp lo · GridView: este control muestra la información en forma de tabla con celdas y columnas.0 de ASP .0. incluso se puede acceder a bases de datos de Access utilizando el proveedor Microsoft Jet 4. utilizará un nombre de una clase que será de dónde va a extraer los datos. para que el lector tenga una visión general de los mismos. eliminarlos o añadir nuevos datos A continuación pasamos a describir brevemente los controles enlazados a datos que nos ofrece ASP . · ObjectDataSource: este otro control representa al conexión a objetos de negocio u otras clases que van a devolver datos. etc.0. edición. · XmlDataSource: este control se encuentra asociado a los controles de navegación. y sus funciones son muy similares a las del control DetailsView.x. para que sea visible se debe utilizar junto con las plantillas. definición de columnas. A continuación los comentamos brevemente: SqlDataSource: este control Web nos provee acceso a cualquier fuente de datos de ADO . · DataList: similar al control anterior pero permite una mayor personalización a la hora de mostrar la información en forma de lista.NET.NET 1.NET. por sí sólo no genera una salida visible para el usuario. aunque como veremos existe un control de origen de datos específico para esta tarea. · AccessDataSource: se trata del control Web específico para ofrecer una conexión a una base de datos de Access. de l ec · El segundo grupo de controles Web de datos son los controles enlazados a datos. OLEDB.0 de OLEDB. cada uno será utilizado para un tipo específico de acceso a datos. También debe utilizarse junto con las plantillas y ya existía en las versiones anteriores de ASP .0 y representa un registro de datos cada vez.x. y viene a sustituir al antiguo DataGrid de ASP . los controles enlazados o conectados a datos nos van a ofrecer el interfaz para presentar de forma intuitiva al usuario los datos provenientes de los orígenes de datos correspondientes.NET 2. es decir.NET. y lo que nos ofrece es el acceso a la estructura del sitio Web a través del fichero del mapa del sitio Web (fichero . También permite la selección y edición de elementos.. este control en nuevo en ASP .tur a ASP . la diferencia respecto al anterior control es que permite una mayor personalización a través del mecanismo de plantillas. en lugar de utilizar una cadena de conexión. y nos ofrece el acceso a ficheros XML. · FormView: este control también aparece en la versión 2. también van a permitir que el usuario final pueda interactuar con dichos datos ya sea para consultarlos. La sintaxis de este control es muy similar al control SqlDataSource.NET 2. Este control ya existía en ASP . como puede ser una base de datos en SQL Server. Repeater: este control muestra elementos de datos en una lista. Eje · P á g i n a | 16 .

Eval(). de l En este caso el origen de datos es un control SqlDataSource que realiza una sentencia Select especificada en su propiedad SelectCommand. ambos son equivalentes. se debe indicar de forma explícita todo el código HTML que deseemos utilizar para presentar los datos. La cadena que especifica el formato de salida debe tener los corchetes {} y entre ellos una expresión que define el formato correspondiente.0 como una versión reducida del método DataBinder.org/1999/xhtml" > <head runat="server"> <title>Página sin título</title> </head> <body> <form id="form1" runat="server"> <asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1"> <HeaderTemplate> <table width="100%" style="font: 8pt verdana"> <tr bgcolor="#cccccc"> <th>Curso</th> <th>Fecha inicio</th> <th>Precio</th> </tr> P á g i n a | 17 . simplemente asignando a su propiedad DataSourceId el nombre del control de origen de datos. otra de pie (FooterTemplate) para cerrar la definición de la tabla definida en la plantilla HeaderTemplate. Este control es uno de los controles enlazados a datos más sencillo. En este primer ejemplo vamos a mostrar la utilización del control enlazado a datos Repeater. es decir. en este caso se define como va a ser cada fila de la tabla y una plantilla muy similar que define un aspecto para elementos alternos (AlternatingItemTemplate). el aspecto de las filas alternas de la tabla. ec En este ejemplo.dtd"> Eje <html xmlns="http://www. la diferencia es que el método Eval() aparece en ASP .org/TR/xhtml1/DTD/xhtml1-transitional. sin la necesidad de tener que especificar el elemento Container. Todo esto lo podemos apreciar en el Código fuente 1. El enlace entre el control Repeater y SqlDataSource se realiza a través de la propiedad DataSourceId del control Repeater. con el método Eval() indicamos directamente el nombre del campo en el que se encuentran los datos que deseamos mostrar. Se ha utilizado una plantilla de cabecera de la información (HeaderTemplate) para definir la cabecera de una tabla.aspx. que resulta muy sencillo.NET: la utilización de plantillas y Data Binding y controles enlazados a datos en los que su fuente de datos es un control de origen de datos.w3.w3.vb" Inherits="EjemploVB6" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1. se aúnan los aspectos principales de los controles Web de datos de ASP . Vamos a empezar a incluir algunos ejemplos de código fuente para que el desarrollo del presente capítulo sea más ameno y no quede únicamente en la mera teoría y en una enumeración de novedades. es necesario utilizar como mínimo una plantilla ItemTemplate. en este ejemplo se ha indicado un formato de fecha y un formato monetario. no ofrece ningún tipo de salida por si sólo.NET 2. Otra plantilla más para definir el aspecto de cada elemento (ItemTemplate).tur a Los controles enlazados a datos se relacionan de una forma muy sencilla con los controles de origen de datos.Eval().0 Transitional//EN" "http://www. debido a que no genera ninguna salida.DataItem. mp lo Y en lo referente al mecanismo de Data Binding podemos comentar que en la plantilla <ItemTemplate> se ha utilizado el método Eval() y en la plantilla <AlternatingItemTemplate> se ha utilizado el método DataBinder. <%@ Page Language="VB" AutoEventWireup="false" CodeFile="EjemploVB6. El método Eval() se podrá utilizar únicamente dentro de plantillas.

Pooling=False" ProviderName="System. En este caso tendremos que utilizar el control DetailsView en conexión con el control GridView. "{0:f} €") %></td> </tr> </AlternatingItemTemplate> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="Data Source=."precio".0. "{0:f} €") %></td> </tr> </ItemTemplate> </asp:Repeater> de l <FooterTemplate> </table> </FooterTemplate> ec <AlternatingItemTemplate> <tr bgcolor="#ccff00"> <td><%#Databinder. vamos a mostrar un ejemplo más de los controles Web de datos. Figura 3 Antes de pasar al siguiente grupo de controles que nos ofrece ASP .DataItem.tur a </HeaderTemplate> <ItemTemplate> <tr bgcolor="#ccff99"> <td><%#Eval("curso")%></td> <td align="right"><%#Eval("fhini".Data.Eval(Container.SqlClient" SelectCommand="SELECT * FROM Cursos ORDER BY Curso"> </asp:SqlDataSource> </form> </body> </html> Código fuente 1 Eje mp lo En la Figura 3 podemos ver el resultado de la ejecución de la página ASPX del ejemplo.Initial Catalog=BDPruebas.DataItem. "{0:D}")%></td> <td align="right"><%#Eval("precio".DataItem. Un uso muy común del control DetailsView.Eval(Container. P á g i n a | 18 ."curso")%></td> <td align="right"> <%#DataBinder. "{0:D}")%></td> <td align="right"> <%#Databinder.NET 2.Integrated Security=True.\SQLEXPRESS. En concreto vamos a ver la conexión entre los dos nuevos controles DetailsView y GridView. "fhini".Eval(Container. va a ser utilizarlo en escenarios de listado de datos maestro/detalle.

vb" Inherits="EjemploVB3" %> P á g i n a | 19 . y además este parámetro será el valor que se ha seleccionado del control GridView. dónde tabla es el identificador del control GridView. se cargará el registro completo que le corresponde a la fila seleccionada en el control DetailsView que le hayamos asociado. La forma de asociar el control DetailsView con el control GridView es a través del control SqlDataSource que hace las funciones del origen de datos del control DetailsView. Veamos como hacerlo. mp lo de l En la Figura 4 se puede ver la forma en la que se ha definido el filtro para el control SqlDataSource que hace las funciones de fuente de datos para el control DetailsView. En el Código fuente 2 se muestra la forma de conectar el control DetailsView con el control GridView. le estamos indicando al control SqlDataSource que el parámetro que le vamos a indicar al filtro viene de la propiedad SelectedValue de un control GridView. por lo que deberá asignarse el valor True a su propiedad ShowSelectButton. es decir. <%@ Page Language="VB" AutoEventWireup="false" CodeFile="EjemploVB3.tur a Al seleccionar una de las filas del control GridView. El control GridView deberá presentar también una columna CommandField que permita la selección de una fila de los datos. El tipo de este parámetro será ControlParameter.aspx. ec En el control SqlDataSource utilizamos un filtro sobre los datos. Figura 4 Eje Lógicamente el control GridView tendrá su propio control de origen de datos asociado. También se ha definido un estilo para indicar la fila que se ha seleccionado. y en sus propiedades ControlId especificaremos el nombre del control GridView. Ambos controles se han incluido dentro de una tabla de HTML para mostrarse en la página uno al lado del otro. en el momento que se seleccione una fila se mostrarán los detalles del registro correspondiente. En un primer momento el control DetailsView no va a mostrar ningún dato ya que no se ha seleccionado ninguna fila del control GridView. Es decir. y en la propiedad PropertyName le indicaremos el valor SelectedValue. se va a hacer uso de un parámetro para la sentencia Select.

w3.org/1999/xhtml" > <head runat="server"> <title>Página sin título</title> </head> <body> <form id="form1" runat="server"> <table><tr><td valign="top"> tur a <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.gif" /> <asp:BoundField DataField="idlibro" HeaderText="Código"/> <asp:BoundField DataField="titulo" HeaderText="Título"/> </Columns> </asp:GridView> </td><td valign="top"> de l <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:BDPruebasConnectionString %>" SelectCommand="SELECT * FROM [libros]"> </asp:SqlDataSource> mp lo <asp:DetailsView ID="DetailsView1" runat="server" Height="50px" Width="100%" AutoGenerateRows="False" DataKeyNames="idlibro" DataSourceID="SqlDataSource2"> <Fields> <asp:BoundField DataField="idlibro" HeaderText="idlibro" ReadOnly="True" SortExpression="idlibro" /> <asp:BoundField DataField="titulo" HeaderText="titulo" SortExpression="titulo" /> <asp:BoundField DataField="unidades" HeaderText="unidades" SortExpression="unidades" DataFormatString="{0:#.00}" HtmlEncode="False"/> </Fields> </asp:DetailsView> Eje <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:BDPruebasConnectionString %>" SelectCommand="SELECT * FROM [libros] WHERE ([idlibro] = @idlibro)"> <SelectParameters> <asp:ControlParameter ControlID="tabla" Name="idlibro" PropertyName="SelectedValue" Type="Int16" /> </SelectParameters> </asp:SqlDataSource> </td></tr></table> </form> </body> </html> Código fuente 2 En la Figura 5 se puede ver un ejemplo de ejecución de esta página ASPX.#}" HtmlEncode="False"/> <asp:BoundField DataField="precio" HeaderText="precio" SortExpression="precio" DataFormatString="{0:0#. P á g i n a | 20 .#}" HtmlEncode="False"/> <asp:BoundField DataField="fecha" HeaderText="fecha" SortExpression="fecha" DataFormatString="{0:d}" HtmlEncode="False"/> <asp:BoundField DataField="ventas" HeaderText="ventas" SortExpression="ventas" DataFormatString="{0:#.dtd"> ec <asp:GridView ID="tabla" runat="server" DataSourceID="SqlDataSource1" AutoGenerateColumns="False" DataKeyNames="idlibro"> <SelectedRowStyle BackColor="Beige" ForeColor="red" /> <Columns> <asp:CommandField ShowSelectButton="true" ButtonType="Image" SelectImageUrl="~/sel.w3.org/TR/xhtml1/DTD/xhtml1-transitional.<html xmlns="http://www.0 Transitional//EN" "http://www.

y el control TreeView. Al pulsar el botón Agregar se añadirá el mapa del sitio a la solución.NET ya existían los controles de acceso a datos. en este caso seleccionaremos el elemento Mapa del sitio. sien embargo. que nos permite construir menús navegables. otro control de navegación sería el control Menu. tendremos que hacer uso de un fichero especial que va a definir la estructura. El primer elemento del mapa del sitio va a ser el elemento <siteMap>. así por ejemplo si queremos definir una página principal para todo del sitio Web. Los controles de navegación ofrecen un interfaz de usuario que permite la navegación a través de las distintas páginas de un sitio Web así como la presentación de la información de forma jerárquica. Eje Para agregar un fichero de mapa de sitio Web a nuestro sitio Web dentro de Visual Studio 2005.NET 2. en ASP . El fichero de mapa del sitio Web será utilizado directamente por los controles SiteMapPath y SiteMapDataSource.x de ASP . y seleccionar la opción Agregar Nuevo elemento. Para cada página del sitio Web existirá un elemento <siteMapNode> dentro del mapa del sitio.sitemap. por los controles TreeView y Menu. y sólo podrá existir uno de estos elementos. y lo dejaremos con su nombre por defecto Web.0 aparecen nuevos controles. deberemos pulsar con el botón derecho del ratón sobre la solución. pero ya existía esta categoría. de nuestro sitio Web. Un ejemplo de estos controles es el nuevo control SiteMapPath. mp Este fichero va a indicar como se relacionan unas páginas con otras dentro del sitio Web. que nos permite navegar entre páginas. el mapa. e indirectamente a través del control SiteMapDataSource. y que todas las demás páginas se P á g i n a | 21 . Solo puede existir un fichero de este tipo dentro de una aplicación. que va a ser la raíz de toda la estructura del documento XML. En la ventana que aparece se muestran todos los elementos que podemos añadir a la solución. lo Para trabajar de forma más rápida y sencilla con los controles Web de navegación o exploración. dentro del explorador de soluciones. una categoría completamente nueva son los controles de navegación. El fichero del mapa o estructura del sitio Web está estructurado en formato XML. Estos elementos se tendrán que ir anidando según la estructura del sitio Web. que muestra la información de forma jerárquica organizada en hojas.tur a ec Figura 5 de l Controles Web de navegación En la versión 1.

aspx" title="Pescados" description="Productos de pescadería" /> <siteMapNode url="Congelados. Según la estructura anterior deberíamos tener un mapa de sitio Web tal como el que aparece en el Código fuente 3. de esta forma el elemento <siteMapNode> que se corresponda con la página Inicio deberá contener a los demás elementos <siteMapNode>.0" > <siteMapNode url="Inicio. El elemento <siteMapNode> presenta los siguientes atributos: title: este atributo representa el título del enlace. Como podemos observar tenemos una página de inicio que será la raíz del sitio Web. La idea es construir una estructura jerárquica de páginas. Supongamos que deseamos que nuestro sitio Web tenga la siguiente estructura. tendremos que definir un elemento <siteMapNode> que incluya a todos los demás. · url: en este atributo se indicará la dirección en la que se encuentra la página dentro del sitio Web. Esto lo veremos más claro en el siguiente ejemplo que se mostrará de un mapa de un sitio Web que va a corresponder con el de un supermercado online.tur a encuentren por debajo de la página principal. ya que serán páginas hijas de la anterior.microsoft.0" encoding="utf-8" ?> <siteMap xmlns="http://schemas. Esta dirección siempre será relativa. la cadena utilizada se mostrará como texto del enlace que se corresponda con la página. · description: la descripción que indiquemos en este atributo será utilizada para la propiedad ToolTip del enlace que se generará.com/AspNet/SiteMap-File-1. en este caso se quiere definir un fichero Web.aspx" title="Carnes" description="Productos cárnicos" /> <siteMapNode url="Pescados. ec · mp lo Inicio ---Alimentación ------Carnes ------Pescados ------Frutas y verduras ------Congelados ---------Platos precocinados ---------Helados ---------Pizzas ---Droguería ------Productos limpieza ------Aseo personal ---Bebidas -----Alcohólicas -----No alcohólicas de l A continuación vamos a crear un mapa de un sitio para un caso concreto de ejemplo. Eje <?xml version="1. Cada una de las páginas que forman parte de la estructura del sitio Web se las denomina nodos.sitemap para un sitio Web que contiene un supermercado online.aspx" title="Alimentación" description="Productos de alimentación"> <siteMapNode url="Carnes.aspx" title="Inicio" description="Página de inicio"> <siteMapNode url="Alimentacion.aspx" title="Congelados" description="Productos congelados"> P á g i n a | 22 .

Eje mp lo · · Figura 6 TreeView: en este caso el acceso a la estructura del sitio Web definida por el fichero Web.aspx" title="Helados" description="Helados y tartas heladas" /> <siteMapNode url="Pizzas.aspx" title="Aseo personal" description="Aseo personal. obtendríamos como resultado un sistema de navegación como el de la Figura 6. y añadimos un control SiteMapPath en la página Helados. Estos enlaces se generan de forma dinámica a partir del fichero Web.aspx" title="Pizzas" description="Pizzas y pastas congeladas" /> </siteMapNode> </siteMapNode> <siteMapNode url="Drogueria.sitemap.de l ec tur a <siteMapNode url="PlatosPrecocinados. ya no existe un vínculo directo entre el control de navegación y el mapa del sitio Web.aspx" title="Platos precocinados" description="Platos precocinados y especialidades" /> <siteMapNode url="Helados. perfumes y colonias" /> </siteMapNode> <siteMapNode url="Bebidas. generando de forma dinámica los enlaces que nos permiten navegar a través de las distintas páginas que conforman la estructura del sitio Web. no necesita de un proveedor intermedio.aspx. SiteMapPath: este control se alimenta directamente de los datos en XML indicados en el fichero Web. tal como hacíamos en el caso del control SiteMapPath. el control TreeView y Menu. Así si tenemos en cuenta el mapa de sitio Web definido anteriormente.aspx" title="No alcohólicas" description="Bebidas no alcohólicas (zumos y refrescos)" /> </siteMapNode> </siteMapNode> </siteMap> Código fuente 3 A continuación vamos a pasar a comentar brevemente los distintos controles que aparecen en este nuevo grupo.aspx" title="Productos de limpieza" description="Productos de limpieza" /> <siteMapNode url="Aseo.aspx" title="Alcohólicas" description="Bebidas alcohólicas" /> <siteMapNode url="NoAlcoholicas. no se realiza directamente. además de ofrecernos un sistema de navegación de forma automática.aspx" title="Droguería" description="Productos de droguería"> <siteMapNode url="Limpieza. P á g i n a | 23 . como hemos dicho.sitemap. como si sucede con los otros dos controles de navegación. La función de este control es la de indicar en que lugar exacto de la estructura del sitio Web nos encontramos actualmente. y variarán según en la página ASPX en la que nos encontremos en cada momento. Los enlaces se generan siguiendo una estructura lineal y utilizando un separador. lee directamente los datos del mapa del sitio y los interpreta. sino que se tiene que hacer a través de un proveedor de fuente de datos. ya que. es decir.aspx" title="Bebidas" description="Bebidas y refrescos"> <siteMapNode url="Alcoholicas.sitemap.

En primer lugar vamos a ver un ejemplo muy sencillo de utilización del control Menu. En el Código fuente 4 se puede ver la utilización del control Menu. en un primer momento sólo aparece la opción principal Inicio. se utiliza indicando en la propiedad DataSourceId el nombre del control SiteMapDataSource.w3. Eje El control Menu posee elementos estáticos y dinámicos. no sólo para la navegación dentro de un sitio Web. se corresponde con un enlace a una página dentro de la estructura del mapa del sitio Web.org/TR/xhtml1/DTD/xhtml1-transitional. como su propio nombre indica. En este ejemplo y en el siguiente vamos a utilizar el fichero de mapa del sitio Web visto anteriormente.· tur a El control TreeView posee un uso más general. y los elementos estáticos son los que van apareciendo según nos vamos situando con el puntero del ratón. En la Figura 7 se puede ver el aspecto del control Menu. según nos vamos posicionando con el puntero del ratón en las distintas opciones se van abriendo las subopciones. ya que muestra la información en estructura de árbol. El proveedor de fuente de datos que vamos a utilizar para establecer el enlace con el fichero del mapa del sitio Web. P á g i n a | 24 . en este caso el elemento estático es la opción Inicio que siempre aparece cuando se genera la página.dtd"> <html xmlns="http://www. cuando se utiliza la fuente de datos SiteMapDataSource. El menú suele constar de una serie de opciones que siempre son visibles y al situarnos sobre ellas se van mostrando las subopciones que se encuentran dentro de una opción principal. si una opción tiene subopciones en su interior aparece un icono de un triángulo para indicarlo. mp Cada opción del control Menu.vb" Inherits="EjemploVB5" %> de l <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.aspx. <%@ Page Language="VB" AutoEventWireup="false" CodeFile="EjemploVB5. sino que podremos utilizar el control TreeView para mostrar información de forma jerárquica y de forma muy intuitiva para el usuario. Por defecto la distribución de las distintas opciones del control Menu es vertical y como se puede apreciar en el ejemplo. ec Veamos en acción estos controles Web de navegación.0 Transitional//EN" "http://www. es el control llamado SiteMapDataSource.org/1999/xhtml" > <head runat="server"> <title>Página sin título</title> </head> <body> <form id="form1" runat="server"> <asp:Menu ID="Menu1" runat="server" DataSourceID="SiteMapDataSource1"> </asp:Menu> <asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" /> </form> </body> </html> lo Código fuente 4 Como se puede ver el control de fuente de datos SiteMapDataSource. Menu: este control va a ser utilizado para ofrecer un gran número de opciones de navegación al usuario mediante un menú.w3.

dtd"> Eje mp <html xmlns="http://www. Vamos a seguir con el ejemplo del supermercado y con el mismo fichero Web. a esta propiedad le asignaremos el nombre del control SiteMapDataSource.sitemap. Ahora nos queda conectar el control TreeView con el control SiteMapDataSource.org/TR/xhtml1/DTD/xhtml1-transitional. tal como sucedía con el control SiteMapPath. Ahora la página en la que se muestra el control TreeView no interviene en la forma en la que se muestra la información.org/1999/xhtml" > <head runat="server"> <title>Página sin título</title> </head> <body> <form id="form1" runat="server"> <div> <asp:TreeView ID="TreeView1" runat="server" DataSourceId="SiteMapDataSource1"> </asp:TreeView> <asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" /> </div> </form> </body> </html> Código fuente 5 La Figura 8 mostraría el resultado de la ejecución de esta página. <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Limpieza. P á g i n a | 25 . ya estamos en disposición de añadir el control TreeView. Lo que si sucede es que cada uno de los nodos hoja (nodos finales) del árbol se corresponde con una de las páginas definidas en el mapa del sitio Web. esto lo haremos a través de la propiedad DataSourceId del control TreeView.sitemap. de l Antes de añadir el control TreeView. cada nodo hoja es un enlace a la página que representa. recordemos que tenemos que incluir el control SiteMapDataSource.aspx.vb" Inherits="Limpieza" %> lo <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.w3. para poder acceder al mapa del sitio Web que tenemos definido en el archivo Web.0 Transitional//EN" "http://www. el navegador nos llevará a la página correspondiente.tur a ec Figura 7 Ahora veremos en acción un control TreeView para mostrar el mapa del sitio Web en la estructura de árbol. y al pulsar sobre cada uno de estos nodos. Una vez añadido el control de fuente de datos.w3. El Código fuente 5 sería el código de la página ASPX que mostraría el mapa del sitio Web dentro de un control TreeView.

NET para realizar las tareas de autenticación y autorización dentro de nuestras aplicaciones Web. estos controles nos van a ofrecer un interfaz y funcionalidad para realizar labores de autenticación y autorización dentro de nuestro sitio Web. sino que también ofrecen un gran número de funcionalidades.tur a ec de l Figura 8 Controles Web de inicio de sesión lo También aparece una nueva categoría de controles llamada de inicio de sesión. Estos controles no van a ofrecer únicamente un interfaz. que están estrechamente relacionadas con las tareas propias de la autenticación y autorización de usuarios. nos ofrecen una serie de funcionalidades.NET mediante el servicio de pertenencia a grupo (Membership). junto con esta descripción se ofrece una figura con el aspecto básico que tienen estos controles en la vista de diseño de VS 2005. Basándose en el servicio de pertenencia a grupo añadirá un nuevo usuario al almacén de datos del servicio. el control Login que nos ofrece un interfaz gráfico consistente en las cajas de texto y botones para indicar un nombre de usuario y una contraseña.0. para que podamos realizar tareas de autenticación y autorización de usuarios en nuestras aplicaciones Web de forma muy sencilla. y el control ChangePassword que nos provee de un formulario para realizar el cambio de contraseña. y el proceso de autorización mediante el servicio gestor de roles (RoleManager). Eje A continuación vamos a describir brevemente los distintos controles de inicio de sesión que nos ofrece ASP . Dentro de este grupo tenemos por ejemplo. · CreateUserWizard: este control hereda del control nuevo control Web estándar Wizard y nos ofrece la posibilidad de añadir un nuevo usuario a la aplicación Web. apoyándose en estos dos nuevos servicios de ASP . Por P á g i n a | 26 . mp El proceso de autenticación es el que determina la identidad del usuario.NET 2. El proceso de autenticación está implementado en ASP . como puede ser una página ASPX. Y los controles de inicio de sesión. una vez que el usuario se ha autenticado el siguiente paso será comprobar si tiene la autorización necesaria para acceder a un recurso determinado.

y luego se muestra un segundo paso en el que se informa del éxito de nuestra operación de inserción. que ya ha sido creado previamente. utilizar varios pasos.de l ec tur a defecto se utilizará el proveedor AspNetSqlMembershipProvider y se añadirá el nuevo usuario a una base de datos SQL Server 2005 Express. Para cambiar la contraseña se pide una confirmación de la antigua contraseña del usuario. podemos utilizar este control para crear un usuario en un solo paso o bien. Además se mostrará al usuario un mensaje indicando que la operación de cambio de contraseña se ha llevado a cabo con éxito. Este control se utilizará normalmente en la página de inicio de sesión de nuestra aplicación Web. Este control comprobará la correspondencia de contraseñas. Este control utilizará internamente la clase Membership para autenticar el usuario en el servicio de pertenencia a grupo. Este control será imprescindible para realizar el proceso de alta de nuevos usuarios dentro de nuestra aplicación Web. Debido a que hereda del control Wizard. mp lo · ChangePassword: este control de inicio de sesión permite modificar la contraseña a un usuario ya dado de alta. Figura 9 Login: este control lo vamos a utilizar para autenticar un usuario. Eje · Figura 10 P á g i n a | 27 . en nuestro sitio Web. y en el caso de que sea correcta. que ya se encuentra autenticado en la aplicación Web. se modificará la contraseña del usuario. Por defecto nos solicita los datos del usuario que deseamos dar de alta en un único paso.

su contraseña actual. basándose en el. lo · Figura 13 mp · Figura 14 LoginView: en este caso este control además de utilizar la clase Membership del servicio de pertenencia a grupo. Si el usuario se encuentra autenticado mostrará su nombre (identificador o login). Este será el único control Web de inicio de sesión que haga uso del servicio gestor de roles. Según el rol al que pertenezca el usuario actual. como se puede ver en la Figura 15. ya conocido por todos. no es necesario que el usuario se encuentre autenticado en la aplicación Web. P á g i n a | 28 . este control mostrará unos contenidos u otros. Este control se utiliza cuando el usuario ha olvidado su contraseña. mecanismo de plantillas (templates). si es que tenemos ese tipo de configuración en nuestro servicio de pertenencia a grupo. en este caso su función es la de enviar al usuario. y muestra un control LinkButton que permitirá al usuario iniciar la sesión o bien cerrar la sesión con la aplicación Web. y le pedirá su nombre de usuario y una respuesta a una pregunta secreta. también hará uso de la clase Roles del servicio gestor de perfiles. en caso contrario no mostrará nada. este control no tiene una representación gráfica. Para utilizar este control. según se encuentre autenticado o no respectivamente.ec PasswordRecovery: este otro control también nos va a permitir gestionar las contraseñas. de l · tur a Figura 11 Figura 12 LoginStatus: este control detecta automáticamente el estado de autenticación en el que se encuentra el usuario. vía correo electrónico. También veremos que mediante este control se puede cambiar también la contraseña del usuario según la configuración que tengamos. Eje · LoginName: mostrará el nombre del usuario que se encuentra conectado actualmente a la aplicación Web. Por defecto. la tendrá cuando indiquemos una plantilla para el mismo.

que será el gestor de todos los controles WebPart de la página. etc.NET 2. Estos controles definen áreas de P á g i n a | 29 . arrastrándolos según convenga en cada caso. sin que el usuario pueda editar las propiedades de los controles WebParts o bien moverlos por la página y cambiarlos de posición. de l Además cuando el usuario regrese al sitio Web lo encontrará de la misma forma que lo dejó. Aunque lo que si podremos hacer será minimizar. que es la parte del . el color. y en el modo de catálogo que vamos a ver a continuación. y cada usuario tendrá su propia personalización del sitio Web. Eje Veamos brevemente los principales controles que podemos encontrar dentro de esta nueva categoría que nos ofrece ASP . estos controles son utilizados en aplicaciones Web de tipo portal para que el usuario tenga una experiencia completamente personalizada del sitio Web. Ni siquiera aparecen destacados los controles WebPartZone. y que se hará a través de su propiedad DisplayMode. el título del control WebPart. · Diseño (DesignDisplayMode): en el modo de diseño el usuario podrá mover los controles WebPart de una sección a otra y también cambiar el orden de los mismos. también se encuentra disponibles en el modo anterior. Este control puede presentar los siguientes modos: Normal (BrowseDisplayMode): es el modo de navegación y la página ASPX se presenta como una página normal. maximizar y cerrar los elementos WebPart presentes en la página. entre otras. e incluso controles que no existen. Por lo tanto el usuario podrá modificar en tiempo de ejecución las propiedades de los controles WebPart. · WebPartZone: este control define las zonas en las que se van a distribuir los controles WebParts dentro de la página ASPX correspondiente. Este control no va a tener un aspecto visual. que son los que indican cada una de las secciones o zonas en las que se divide la página.WebParts tur a Figura 15 ec El grupo de controles llamado Elementos Web también podemos encontrarlo por su nomenclatura en inglés. Este es el modo por defecto que ofrece la propiedad DisplayMode del control WebPartManager. que suele ser más común. mp lo · · Catálogo (CatalogDisplayMode): en este modo el usuario podrá agregar a la página controles WebPart que he eliminado de la misma.NET Framework que implementa el mecanismo de WebParts. Estos son unos controles de servidor bastante potentes que permiten al usuario del sitio Web personalizar el aspecto y distribución del mismo. Las operaciones que el usuario puede realizar sobre los controles WebPart vienen determinados por el modo que se define para el control WebPartManager . la forma en la que se presenta por defecto. · Edición (EditDisplayMode): en este modo se nos permite editar una serie de propiedades que pueden mostrar los controles WebParts. pero siempre será necesario que exista un control de este tipo para poder utilizar lo que se denomina el Framework de portal. Estas propiedades pueden ser.0. La posibilidad de arrastrar y soltar los controles WebPart. · WebPartManager: este control va a ser el encargado de gestionar las distintas zonas en las que se van a encontrar los distintos controles WebParts. se trata de los controles WebPart.

sea del tipo que sea. Este control se podrá utilizar únicamente en el modo de edición.0 Transitional//EN" "http://www. que permite añadir los elementos que se han ido eliminando de la página. ocultar. ya que nos permite editar las propiedades de los distintos controles WebPart presentes en la página ASPX. en este caso nos permitir modificar una serie de propiedades relacionadas con la apariencia de los controles WebParts. para que el usuario los seleccione y añada a la zona deseada. ya que al arrastrar un control BehaviorEditorPart en un control EditorZone. como pueden ser: permitir cerrar. En el momento que añadimos un control Web.org/1999/xhtml" > <head runat="server"> <title>Página sin título</title> </head> <body> <form id="form1" runat="server"> <asp:WebPartManager ID="WebPartManager1" runat="server"> </asp:WebPartManager> <table width="100%" height="60%"><tr><td valign="top" style="width: 50%"> P á g i n a | 30 . · BehaviorEditorPart: este control se utiliza en combinación con el anterior. a un control WebPartZone se convierte de forma automática en un control WebPart. · EditorZone: este control también resulta muy interesante. etc.org/TR/xhtml1/DTD/xhtml1-transitional. sin que tengamos que hacer nada especial. CatalogZone: este control va a permitir añadir al usuario controles WebPart a la página ASPX.tur a contenidos que serán gestionadas por el control WebPartManager presente también en la página ASPX. los veremos con más detalle en este texto. nos va a permitir modificar algún aspecto de los controles WebPart de nuestra página ASPX.dtd"> Eje <html xmlns="http://www. y lo que permite modificar al usuario es el diseño del control.aspx. le estamos indicando al Portal Framework que se va a poder editar una serie de propiedades relacionadas con el comportamiento del control. cambiar de zona. Algunas de las propiedades que podrá editar el usuario son: el tamaño (ancho y alto) y el título de los controles WebPart. · LayoutEditorPart: este control se encuentra relacionado con los dos anteriores. lo de l ec · mp Todos estos controles. y otros más. Al añadir un control de este tipo se podrá pasar al modo catálogo. utilizado conjuntamente con el control EditorZone. Este control será el que permite mostrar al control CatalogZone todos los controles WebParts que se han eliminado de la página ASPX. · PageCatalogPart: un control CatalogZone no tiene sentido hasta que no se le añade un control PageCatalogPart. Algunas de las propiedades que se pueden editar mediante este control es la zona a la que pertenecen y el orden de posición que presentan dentro de la misma. en el capítulo correspondiente en el que se tratará el Portal Framework y todo lo relacionado con los controles WebParts. <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default. En negrita se destacan los elementos más importantes de la página ASPX.vb" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1. · ApareanceEditorPart: al igual que los dos controles anteriores.w3.w3. Como anticipo se muestra el Código fuente 6 que se corresponde con una página ASPX que hace uso de los distintos controles WebPart que se acaban de describir.

8em" ForeColor="#333333" /> <PartTitleStyle Font-Bold="True" Font-Size="0.8em" ForeColor="#333333" /> <ErrorStyle Font-Size="0.8em" ForeColor="#333333" /> <TitleBarVerbStyle Font-Size="0.8em" ForeColor="#333333" /> <InstructionTextStyle Font-Size="0.8em" ForeColor="#333333" /> <LabelStyle Font-Size="0.8em" FontUnderline="False" ForeColor="#333333" /> <PartChromeStyle BorderColor="#E2DED6" BorderStyle="Solid" BorderWidth="1px" /> <PartStyle BorderColor="#F7F6F3" BorderWidth="5px" /> <FooterStyle BackColor="#E2DED6" HorizontalAlign="Right" /> <EditUIStyle Font-Names="Verdana" Font-Size="0.8em" ForeColor="#333333" /> <EmptyZoneTextStyle Font-Size="0.8em" /> <VerbStyle Font-Names="Verdana" Font-Size="0.8em" /> <MenuLabelStyle ForeColor="White" /> <MenuVerbHoverStyle BackColor="#F7F6F3" BorderColor="#CCCCCC" BorderStyle="Solid" BorderWidth="1px" ForeColor="#333333" /> P á g i n a | 31 .8em" /> <MenuLabelStyle ForeColor="White" /> <MenuVerbHoverStyle BackColor="#EFF3FB" BorderColor="#CCCCCC" BorderStyle="Solid" BorderWidth="1px" ForeColor="#333333" /> <HeaderStyle Font-Size="0.6em" Font-Underline="False" ForeColor="White" /> <MenuPopupStyle BackColor="#507CD1" BorderColor="#CCCCCC" BorderWidth="1px" Font-Names="Verdana" Font-Size="0.7em" ForeColor="#CCCCCC" HorizontalAlign="Center" /> <MenuVerbStyle BorderColor="#507CD1" BorderStyle="Solid" BorderWidth="1px" ForeColor="White" /> <PartStyle Font-Size="0.8em" ForeColor="#333333" /> <HeaderVerbStyle Font-Bold="False" Font-Size="0.8em" ForeColor="White" /> </asp:WebPartZone> <asp:EditorZone ID="EditorZone1" runat="server" BackColor="#F7F6F3" BorderColor="#CCCCCC" BorderWidth="1px" Font-Names="Verdana" Padding="6"> <HeaderStyle BackColor="#E2DED6" Font-Bold="True" Font-Size="0.mp lo de l ec tur a <asp:WebPartZone ID="WebPartZone1" runat="server" Height="100%" Width="100%" BorderColor="#CCCCCC" Font-Names="Verdana" Padding="6" HeaderText="WebPartZone-1"> <ZoneTemplate> <asp:Image ID="Image1" runat="server" Height="160px" ImageUrl="~/DSCN5474.8em" ForeColor="#333333" /> <ZoneTemplate> <asp:LayoutEditorPart ID="LayoutEditorPart1" runat="server" /> <asp:BehaviorEditorPart ID="BehaviorEditorPart1" runat="server" /> <asp:AppearanceEditorPart ID="AppearanceEditorPart1" runat="server" /> </ZoneTemplate> </asp:EditorZone> Eje </td> <td width="50%" valign="top"> <asp:WebPartZone ID="WebPartZone2" runat="server" BorderColor="#CCCCCC" Font-Names="Verdana" Padding="6" Height="70%" Width="100%" HeaderText="WebPartZone-2"> <PartChromeStyle BackColor="#F7F6F3" BorderColor="#E2DED6" FontNames="Verdana" ForeColor="White" /> <MenuLabelHoverStyle ForeColor="#E2DED6" /> <EmptyZoneTextStyle Font-Size="0.JPG" Width="336px" title="Foto" /> <asp:Calendar ID="Calendar1" runat="server" Title="calendario"></asp:Calendar> </ZoneTemplate> <PartChromeStyle BackColor="#EFF3FB" BorderColor="#D1DDF1" FontNames="Verdana" ForeColor="#333333" /> <MenuLabelHoverStyle ForeColor="#D1DDF1" /> <EmptyZoneTextStyle Font-Size="0.6em" /> <PartTitleStyle BackColor="#507CD1" Font-Bold="True" Font-Size="0.

6em" Font-Underline="False" ForeColor="White" /> <MenuPopupStyle BackColor="#5D7B9D" BorderColor="#CCCCCC" BorderWidth="1px" Font-Names="Verdana" Font-Size="0.7em" ForeColor="#CCCCCC" HorizontalAlign="Center" /> <MenuVerbStyle BorderColor="#5D7B9D" BorderStyle="Solid" BorderWidth="1px" ForeColor="White" /> <PartStyle Font-Size="0.Eje mp lo de l ec tur a <HeaderStyle Font-Size="0.8em" /> <FooterStyle BackColor="#E2DED6" HorizontalAlign="Right" /> <HeaderStyle BackColor="#E2DED6" Font-Bold="True" Font-Size="0.8em" ForeColor="#333333" /> </asp:CatalogZone> </td> P á g i n a | 32 .8em" ForeColor="White" /> <ZoneTemplate> <asp:FileUpload ID="FileUpload1" runat="server" Title="subida fichero"/> <asp:BulletedList ID="BulletedList1" runat="server" Title="elementos"> <asp:ListItem>Elemento 1</asp:ListItem> <asp:ListItem>Elemento 2</asp:ListItem> <asp:ListItem>Elemento 3</asp:ListItem> </asp:BulletedList> <asp:DropDownList ID="DropDownList1" runat="server" Title="Lista"> <asp:ListItem>Elemento 1</asp:ListItem> <asp:ListItem>Elemento 2</asp:ListItem> <asp:ListItem>Elemento 3</asp:ListItem> <asp:ListItem>Elemento 4</asp:ListItem> </asp:DropDownList> </ZoneTemplate> </asp:WebPartZone> <asp:CatalogZone ID="CatalogZone1" runat="server" BackColor="#F7F6F3" BorderColor="#CCCCCC" BorderWidth="1px" Font-Names="Verdana" Padding="6"> <ZoneTemplate> <asp:PageCatalogPart ID="PageCatalogPart1" runat="server" /> <asp:DeclarativeCatalogPart ID="DeclarativeCatalogPart1" runat="server"> <WebPartsTemplate> <asp:ListBox ID="ListBox1" runat="server"> <asp:ListItem>1</asp:ListItem> <asp:ListItem>2</asp:ListItem> <asp:ListItem>3</asp:ListItem> <asp:ListItem>4</asp:ListItem> <asp:ListItem>5</asp:ListItem> </asp:ListBox> </WebPartsTemplate> </asp:DeclarativeCatalogPart> </ZoneTemplate> <HeaderVerbStyle Font-Bold="False" Font-Size="0.8em" FontUnderline="False" ForeColor="#333333" /> <PartTitleStyle BackColor="#5D7B9D" Font-Bold="True" FontSize="0.8em" /> <EmptyZoneTextStyle Font-Size="0.8em" ForeColor="#333333" /> <VerbStyle Font-Names="Verdana" Font-Size="0.6em" /> <PartTitleStyle BackColor="#5D7B9D" Font-Bold="True" FontSize="0.8em" ForeColor="#333333" /> <LabelStyle Font-Size="0.8em" ForeColor="#333333" /> <EditUIStyle Font-Names="Verdana" Font-Size="0.8em" ForeColor="#333333" /> <PartLinkStyle Font-Size="0.8em" ForeColor="#333333" /> <PartStyle BorderColor="#F7F6F3" BorderWidth="5px" /> <SelectedPartLinkStyle Font-Size="0.8em" ForeColor="#333333" /> <TitleBarVerbStyle Font-Size="0.8em" ForeColor="White" /> <PartChromeStyle BorderColor="#E2DED6" BorderStyle="Solid" BorderWidth="1px" /> <InstructionTextStyle Font-Size="0.

y otra zona de edición especificada mediante un control EditorZone. Debido a estos formatos aparecen en la página ASPX tantas etiquetas.DisplayMode = WebPartManager. que son una serie de etiquetas especiales que nos ofrece el entorno de desarrollo VS 2005 en la vista de diseño. para tener un control sobre ellas y poder distribuirlas.Web.DesignDisplayMode.WebPartManager1.WebPartManager1.DisplayMode = WebPartManager.BrowseDisplayMode Me.WebPartManager1. Las distintas zonas de la página se encuentran en una tabla de HTML. En este caso se corresponde con el modo de diseño. recomiendo al lector que vaya cambiando los distintos modos que se encuentran comentados y así tendrá un primer contacto con los controles WebPart y podrá ver las distintas opciones de configuración que presentan los controles WebParts en los distintos modos.DisplayMode = WebPartManager.DisplayMode = WebPartManager.UI.DesignDisplayMode End Sub End Class de l public partial class EjemploCS : System.CatalogDisplayMode Me. Como se puede ver en el evento Page_Load se indica el modo que va a utilizar el control WebPartManager.CatalogDisplayMode 'Me.DisplayMode = WebPartManager.Load 'Me.WebPartManager1.WebPartManager1.DisplayMode = WebPartManager. P á g i n a | 33 .ConnectDisplayMode*/ WebPartManager1.Page { protected void Page_Load(object sender. mp lo Sobre las distintas zonas se han aplicado formatos automáticos que nos ofrecen sus smart tags (etiquetas inteligentes).WebPartManager1. una zona de catálogo definida mediante un control CatalogZone. } } Código fuente 6 En este caso se tienen dos zonas definidas por dos controles WebPartZone.WebPartManager1.DisplayMode = WebPartManager.EditDisplayMode Me.BrowseDisplayMode 'Me.DisplayMode = WebPartManager. Esta es una práctica muy común a la hora de distribuir las distintas zonas que incluyen en su interior uno o varios controles WebPart. EventArgs e) { /*Me.ConnectDisplayMode Me.UI. y que nos van a permitir realizar distintas operaciones sobre los controles Web de forma rápida y sencilla.tur a </table> </form> </body> </html> Partial Class _Default Inherits System.Page ec Protected Sub Page_Load(ByVal sender As Object.WebPartManager1.WebPartManager1. estas se utilizan para definir distintos estilos que afectan a los controles WebPartZone.EditDisplayMode 'Me. ByVal e As System.DisplayMode = WebPartManager.EventArgs) _ Handles Me.DisplayMode = WebPartManager. Eje En la Figura 16 se puede ver un ejemplo de ejecución de la página ASPX.Web.

Eje Controles Estándar Dentro del grupo de controles estándar también aparecen nuevos controles de servidor. En el siguiente capítulo se comentarán los distintos directorios especiales que presenta ASP . mp Para mantener el estado de los distintos controles WebPart. atendiendo a la configuración de controles WebPart que haya realizado sobre la misma. el control HiddenField. tan sencillos como puede ser el control BulletedList.0 para las aplicaciones Web. que nos ofrece ASP .tur a ec de l Figura 16 lo Como ya hemos comentado.NET 2. El directorio App_Data que va a contener los almacenes de datos utilizados por la aplicación. en el momento que empecemos a utilizar controles WebPart en cualquiera de las páginas ASPX de nuestro proyecto. que representa una lista de elementos. llamada ASPNETDB. En general los P á g i n a | 34 . para representar un campo oculto de un formulario. que permite definir una serie de pasos en forma de un asistente. además cada usuario tendrá su propia visión de la página ASPX. Access (.MDB). ficheros XML.MDF. Esta misma base de datos también es utilizada por los servicios de suscripción (Membership) y de gestión de roles (RoleManager). Esta base de datos la añade VS 2005 a nuestro directorio App_Data de nuestra aplicación.MDF). se recurre a una base de datos de SQL Server Express 2005. las distintas modificaciones que realice el usuario sobre los distintos controles WebPart se mantendrán para las siguientes veces que el usuario visite la página. podrán contener ficheros de SQL Server (.0.NET 2. y más complejos como puede ser el control Wizard.

va a representar un asistente.8em" Height="135px" Width="390px"> P á g i n a | 35 . Antes de ponernos a utilizar este control Web debemos tener en cuenta dos aspectos.tur a nuevos controles estándar que se han añadido en ASP . Con este control podemos utilizar una imagen como un menú de navegación. que es el código que se generaría al crear un control Wizard sencillo.w3. VS 2005 nos ofrece en la vista de diseño la posibilidad de construir de manera visual nuestro control MultiView con los distintos controles View que forman parte de el.org/1999/xhtml" > <head id="cabecera" runat="server"> <title>Página sin título</title> </head> <body> <form id="formulario" runat="server"> <asp:Wizard ID="Wizard1" runat="server" ActiveStepIndex="0" BackColor="#EFF3FB" BorderColor="#B5C7DE" BorderWidth="1px" Font-Names="Verdana" Font-Size="0. por lo tanto se corresponde con un elemento <input type=”file”> de HTML. de ahí viene su nombre. se va a mostrar de forma rápida un ejemplo de utilización del control Wizard. y estos a su vez van a contener grupos de controles Web hijos. · ImageMap: en este caso se trata de un control Web que nos permite definir un mapa de imagen sensible. pero esta información si que será visible si el usuario en el navegador selecciona ver el código de la página. · MultiView: nos va a permitir mostrar/ocultar algunas partes de la página ASPX que estamos mostrando en el navegador.NET 2. Eje <%@ Page Language="C#" AutoEventWireup="true" CodeFile="EjemploCS1. y un control Image al paso dos.org/TR/xhtml1/DTD/xhtml1-transitional. El control Wizard nos va a servir para realizar la navegación entre los distintos pasos de un proceso. sería similar a ir modificando la visibilidad de controles Panel. como código HTML generará <input type=”hidden”>. como puede ser recoger en varios pasos la información facilitada por un usuario. El control BulletedList está formado por controles ListItem. · HiddenField: representa un campo oculto del formulario. El control MultiView nos va a permitir ir ocultando y mostrando los distintos controles View que contiene. lo de l ec · mp Para terminar con el presente capítulo. Será muy útil cuando queramos enviar información que no queremos que se visualice en el formulario.0 Transitional//EN" "http://www. · FileUpload: nos permite enviar archivos al servidor Web de forma muy sencilla.w3.dtd"> <html xmlns="http://www. se van a comentar brevemente algunos de estos nuevos controles: BulletedList: este control representa una lista ordenada (etiqueta <ol>) o desordenada (etiqueta <ul>).aspx. utilizando un formato predeterminado y luego añadiendo un control Button al paso uno. una imagen que posee varias secciones y según en la sección en la que se pulse la página realizará una acción u otra. es decir.0 nos van a permitir ahorrarnos mucho trabajo debido a las funcionalidades que ofrecen. A continuación.cs" Inherits="EjemploCS1" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1. por ejemplo. A continuación se ofrece el Código fuente 7. es decir. · Wizard: nos va a permitir construir una secuencia de pasos ordenados. con tres pasos. al igual que hemos hecho en otros apartados. y las limitaciones de tamaño que tenemos a la hora de enviar un archivo al servidor Web. Únicamente puede estar activo en un mismo momento un control View. por un lado si tenemos permisos de escritura en el destino en el que queremos copiar el archivo. El control MultiView va a actuar como un contenedor de controles View.

0.9em" VerticalAlign="Top" /> <NavigationButtonStyle BackColor="White" BorderColor="#507CD1" BorderStyle="Solid" BorderWidth="1px" Font-Names="Verdana" Font-Size="0. P á g i n a | 36 .9em" ForeColor="White" HorizontalAlign="Center" /> </asp:Wizard> </form> </body> </html> Código fuente 7 Eje mp lo A continuación se ofrece el aspecto que tendría al situarnos en el paso dos.NET 2.8em" ForeColor="#284E98" /> <WizardSteps> <asp:WizardStep runat="server" Title="Paso 1"> Este es el primer paso<br /><br /> <asp:Button ID="Button1" runat="server" Text="Bot&#243. Figura 17 En el siguiente capítulo seguiremos comentando las novedades que podemos encontrarnos dentro de ASP .n"/> </asp:WizardStep> <asp:WizardStep runat="server" Title="Paso 2"> Este es el segundo<br /><br /> <asp:Image ID="Image1" runat="server" ImageUrl="~/piqui.JPG" Height="121px" Width="154px"/> </asp:WizardStep> <asp:WizardStep runat="server" Title="Paso 3"> Y este el tercero y último </asp:WizardStep> </WizardSteps> <SideBarButtonStyle BackColor="#507CD1" Font-Names="Verdana" ForeColor="White" /> <HeaderStyle BackColor="#284E98" BorderColor="#EFF3FB" BorderStyle="Solid" BorderWidth="2px" Font-Bold="True" Font-Size="0.de l ec tur a <StepStyle Font-Size="0.8em" ForeColor="#333333" VerticalAlign="Top"/> <SideBarStyle BackColor="#507CD1" Font-Size="0.

Sign up to vote on this title
UsefulNot useful