Professional Documents
Culture Documents
a
ec
de
l
Eje
mp
lo
ngel Esteban
tur
a
Sipnosis
ec
Este texto est dedicado a la versin de ASP .NET que ofrece Microsoft dentro de su entorno .NET
Framework 2.0. Se abordan los aspectos ms avanzados relacionados con el desarrollo de aplicaciones
Web basadas en ASP .NET 2.0 como pueden ser: la construccin de servicios Web, implementacin
controles Web de servidor y controles de usuario, WebParts, Master Pages, temas y skins, distribucin
y administracin de aplicaciones Web, caractersticas de internacionalizacin, etc. Se requiere tener
algn conocimiento previo del desarrollo de aplicaciones Web con ASP .NET 2.0. Los lenguajes de
programacin utilizados a lo largo del texto son Visual Basic .NET y C#.
Eje
mp
lo
de
l
tur
a
Luarna
ec
www.luarna.com
ISBN: 978-84-92684-49-6
Eje
mp
lo
de
l
Cualquier forma de reproduccin, distribucin, comunicacin pblica o transformacin de esta obra solo puede ser realizada
con la autorizacin de sus titulares, salvo excepcin prevista por la ley. Dirjase a CEDRO (Centro Espaol de Derechos
Reprogrficos, www.cedro.org) si necesita fotocopiar, escanear o hacer copias digitales de algn fragmento de esta obra.
tur
a
ec
de
l
Eje
mp
lo
tur
a
Indice
ec
lo
de
l
mp
Elementos comunes del desarrollo de aplicaciones Web con ASP .NET 2.0 I............................... 66
Introduccin .................................................................................................................................. 66
Sintaxis bsica de ASP .NET ........................................................................................................ 67
Web Forms ................................................................................................................................... 70
Controles HTML y controles Web de servidor .............................................................................. 72
Eventos de una pgina ASPX ........................................................................................................ 76
Separacin de cdigo .................................................................................................................... 80
Directivas de las pginas ASPX ....................................................................................................82
Eventos de los controles Web de servidor ...................................................................................... 83
Configuracin de las aplicaciones ASP .NET ................................................................................ 90
Eje
Elementos comunes del desarrollo de aplicaciones Web con ASP .NET 2.0 II ............................. 93
Introduccin .................................................................................................................................. 93
El API Focus................................................................................................................................. 93
Cross-Page PostBack .................................................................................................................... 97
Aplicando estilos a los controles Web ......................................................................................... 102
Aadiendo controles Web en tiempo de ejecucin ....................................................................... 107
Callbacks de cliente .................................................................................................................... 114
Directorios especiales de la aplicacin ASP .NET ....................................................................... 119
Los directorios Bin y App_Code de la aplicacin ........................................................................ 121
Pgina |5
tur
a
ec
de
l
lo
Eje
mp
tur
a
ec
de
l
mp
lo
Eje
tur
a
ec
de
l
lo
Eje
mp
de
l
ec
tur
a
Eje
mp
lo
Pgina |9
tur
a
ec
de
l
lo
Introduccin
mp
ASP NET 2.0 es la tecnologa para el desarrollo de aplicaciones Web que ponemos encontrar en la
nueva versin que ofrece Microsoft de su plataforma de desarrollo Microsoft .NET Framework 2.0.
Este texto est pensado tanto para aquellos lectores que ya conocen ASP .NET 1.x, u otra versin
previa, como para los que no conocen nada del entorno de desarrollo de las pginas activas de
Microsoft.
Eje
tur
a
La filosofa de ASP .NET resulta muy sencilla, en pocas palabras se puede definir de la siguiente
forma: las pginas ASP .NET, tambin llamadas pginas activas, son pginas que contienen cdigo
HTML, script de cliente y un cdigo que se ejecuta en el servidor, dando como resultado cdigo
HTML. Por lo tanto al cargar una pgina ASP .NET en nuestro navegador, en realidad no estamos
cargando la pgina ASP .NET como tal, sino el resultado de la ejecucin de la pgina, es decir la
salida de la pgina ASP .NET, y como se ha apuntado anteriormente se trata de cdigo HTML. Es
decir, son pginas que se ejecutan en el servidor enviando como resultado al cliente cdigo HTML.
ec
El anterior prrafo est extrado completamente de un antiguo texto dedicado a ASP 3.0, el titulado
Programacin para aplicaciones para Internet con ASP 3.0, y es perfectamente aplicable a ASP
.NET 2.0, pero este entorno de desarrollo de aplicaciones Web, va ms all presentando un completo
entorno mucho ms elaborado y complejo, con lo que la afirmacin de prrafo anterior se quedara
muy corta, ya que nicamente define uno de los aspectos de las pginas ASP .NET.
de
l
De forma ms genrica, y acertada, podemos definir ASP .NET como el entorno de desarrollo incluido
en la plataforma .NET de Microsoft, que nos permite desarrollar completas aplicaciones Web que se
ejecutarn sobre el entorno ofrecido por el .NET Framework. A lo largo de este texto iremos
descubriendo paso a paso las distintas posibilidades (que son bastante amplias) que nos ofrece ASP
.NET, apoyndonos siempre en la nueva herramienta de Microsoft Visual Studio 2005.
Una vez realizada una definicin ms o menos de lo que son las pginas ASP .NET volvamos en
concreto a tratar sobre la nueva versin de ASP .NET.
Esta nueva versin de ASP .NET no ofrece unos cambios tan profundos como supuso el cambio de
ASP 3.0 a ASP .NET 1.0, esta nueva versin de las pginas ASPX (as se denominan tambin a las
pginas ASP .NET, utilizando su extensin), es una evolucin lgica de ASP .NET 1.x (utilizamos 1.x
para referirnos a las dos versiones anteriores de ASP .NET la 1.0 y la 1.1)
lo
Por lo tanto ASP .NET 2.0 es la nueva versin que ofrece el .NET Framework para el desarrollo de
aplicaciones Web, ya sean basadas en Internet, Intranet o Extranet. Microsoft tambin ofrece una
nueva herramienta integral de desarrollo, Visual Studio 2005. Ser con esta herramienta con la que
desarrollaremos nuestras aplicaciones Web y por la tanto la comentaremos tambin en este texto.
Como curiosidad comentar al lector que la nueva versin del .NET Framework de Microsoft recibi
el nombre en clave (code-name) de Whidbey y la versin 2.0 de ASP .NET lleg a denominarse ASP
.NET Whidbey.
mp
No veremos Visual Studio 2005 de forma ntegra, slo veremos la parte que nos interese y que nos
afecte a la hora de desarrollar aplicaciones Web con ASP .NET 2.0. Esta parte de Visual Studio 2005
(VS 2005) se denomina Microsoft Visual Web Developer 2005. Esta nueva versin de Visual Studio
nos ofrece un entorno de desarrollo muy cmodo para crear nuestras aplicaciones Web a travs de
ayudas y asistentes.
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, instale en su equipo Visual Studio 2005, ya que esta ser nuestra
herramienta de trabajo. A lo largo del texto, segn sea conveniente, se comentar el uso de Visual
Studio 2005.
En este captulo, adems de realizar una introduccin a ASP .NET 2.0, tambin se comentarn las
novedades que presenta respecto a su versin anterior ASP .NET 1.x.
P g i n a | 11
tur
a
Lenguajes de programacin
ec
El cdigo intermedio es una caracterstica comn que poseen todas las tecnologas englobadas en la
estrategia .NET de Microsoft, a la que lgicamente pertenece ASP .NET. Las pginas ASP .NET
cuando reciben la primera peticin se compilan automticamente a un lenguaje intermedio que es
conocido como Common Language Runtime, es decir, es un lenguaje comn al que compilan todos
los lenguajes que utilicemos en nuestras pginas ASP .NET, generando el mismo cdigo, ya sea
Visual Basic .NET, C# o JScript. Gracias a esta caracterstica podemos obtener grandes ventajas en lo
que a rendimiento en tiempo de ejecucin se refiere, ya que la compilacin de las pginas slo se
produce en la primera peticin que se realiza sobre la pgina, o bien cuando el cdigo fuente de la
misma se ha modificado y necesita por lo tanto actualizarse, adems el resultado de esta compilacin
permanece en cach para poder ser reutilizada.
de
l
Los ejemplos de cdigo fuente que se mostraran en el texto se ofrecern tanto en C# como en VB
.NET. Suponemos que el lector conoce la sintaxis de alguno de estos dos lenguajes, ya que abordar un
lenguaje de programacin queda fuera de los objetivos de este texto, que como sabemos todos trata
sobre el desarrollo avanzado de aplicaciones Web con ASP .NET 2.0.
Las nuevas versiones de estos lenguajes que podemos encontrar dentro del .NET Framework 2.0 se
denominan Visual Basic 2005 y C# 2.0.
lo
Hasta la fecha nos encontramos con seis versiones de la tecnologa de las pginas activas de servidor de
Microsoft, es decir, de ASP (Active Server Pages). Vamos a realizar un recorrido histrico a travs de
ASP, desde ASP 1.0 hasta ASP .NET 2.0. Este apartado se puede tomar a modo de cultura general.
mp
La primera versin de las pginas activas (ASP 1.0), se incorpor como un aadido o ampliacin al
servidor Web del sistema operativo Microsoft Windows NT Server 4.0 llamado Internet Information
Server 3.0 (IIS 3.0). Este servidor Web era interesante pero todava era demasiado rudimentario y
presenta limitaciones y problemas.
La primera versin de ASP era bastante interesante ya que se pasaba de la complejidad de los CGIs
(Common Gateway Interface) a la sencillez de las pginas activas. ASP 1.0 supuso el inicio del
desarrollo de aplicaciones Web con productos basados en tecnologa Microsoft.
Eje
La versin 2.0 de Active Server Pages la encontramos en el servidor Web de Microsoft Internet
Information Server 4 (IIS 4), y en el servidor Personal Web Server 4 (PWS 4). Ambos servidores los
podamos instalar desde la extensin del sistema operativo de Windows NT denominada Windows NT
4.0 Option Pack, o ms comnmente Option Pack. Esta extensin del sistema operativo no slo era
aplicable a Windows NT, sino que tambin la podamos utilizar para Windows 95/98.
Se debe sealar que el servidor IIS 4 es el servidor Web para plataformas Windows NT Server 4.0, y
el servidor Personal Web Server 4.0 es el servidor Web para plataformas Windows 95/98 y Windows
NT Workstation 4.0.
IIS 4 adems de ofrecer la nueva versin de la tecnologa ASP permite configurar y administrar de
forma sencilla nuestras aplicaciones ASP. Adems la figura de la aplicacin ASP se encuentra mucho
P g i n a | 12
tur
a
ms clara que en la versin 1.0 de las pginas ASP, el servidor Web nos indicar claramente el alcance
de una aplicacin ASP determinada.
ASP 2.0 es una clara y necesaria evolucin de ASP 1.0 incorporando la posibilidad de realizar pginas
ASP transaccionales, aadiendo para ello un nuevo objeto integrado denominado ObjectConext
(objeto de contexto). ASP 2.0 ofrece un entorno ms robusto y potente que la versin anterior para el
desarrollo de aplicaciones Web.
ec
Ms tarde apareci ASP 3.0. Para poder utilizar ASP 3.0 tenemos que disponer de cualquiera de las
versiones del sistema operativo Windows 2000 (Professional, Server y Advanced Server). En este caso
no se trata nicamente de una nueva versin del servidor Web sino tambin de una nueva versin del
sistema operativo Windows.
ASP 3.0 se encuentra disponible dentro de Windows 2000 en cualquiera de sus versiones. Dentro de
Windows 2000 encontramos el componente Internet Information Services o Internet Information
Server, que como todos los lectores sospechan es la nueva versin del servidor Web de Microsoft
Internet Information Server. Al instalar Internet Information Services 5.0 (IIS 5.0) dotamos a nuestro
servidor de todas las funcionalidades de un potente servidor Web, y dentro de estas funcionalidades se
encuentra ASP 3.0.
de
l
ASP 3.0 podemos decir que es la evolucin lgica de ASP 2.0, no supone ningn cambio radical,
ofrece una serie de mejoras y novedades. Se aade un nuevo objeto integrado llamado ASPError,
este nuevo objeto es utilizado para el tratamiento de errores.
Y por fin llegamos a la aparicin del .NET Framework de Microsoft, que va a contener una nueva
versin de ASP, ASP .NET 1.0, en este caso los cambios respecto a ASP 3.0 si que son notables, tanto
que en muchos casos podemos considerar que se parecen en poco, ni siquiera podramos considerar
que se trata de ASP 4.0, ya que los cambios van ms all. ASP .NET plantea una nueva forma de
desarrollar aplicaciones Web dentro del entorno ofrecido por el .NET Framework. En resumen, una
nueva forma de programar aplicaciones Web.
lo
Con ASP .NET 1.0 aparece la herramienta de desarrollo Visual Studio 2002 que contiene la versin
del 1.0 .NET Framework.
mp
ASP .NET es completamente compatible con ASP, podemos tener aplicaciones Web basadas en ASP
y ASP .NET funcionando en el mismo servidor Web, que ser Internet Information Server 5.0, las
pginas ASP tienen la extensin .ASP y son procesadas por la DLL ASP.DLL y sin embargo las
pginas ASP .NET poseen la extensin .ASPX y son procesadas por el entorno de ejecucin .NET
Framework, que las transforma en el cdigo intermedio.
Como curiosidad comentar a los lectores que en las primeros pasos de la plataforma .NET (beta 1 y
versiones preliminares previas) ASP .NET se denominaba ASP+ y la propia plataforma posea la
denominacin de NGWS (New Generation Windows Services, Nueva Generacin de Servicios Windows) .
Eje
Despus apareci la versin 1.1 del .NET Framework y con el la nueva versin de las pginas ASPX,
ASP .NET 1.1, que como ocurra con ASP 2.0 y ASP 3.0, esta nueva versin incluye leves mejoras y
cambios. El Framework 1.1 aparece ya dentro del sistema operativo Windows 2003 Server y se instala
como una parte perfectamente integrada. Y dentro de este nuevo sistema operativo tenemos el servidor
Web IIS 6.0, que va a ser el encargado de albergar las aplicaciones Web basadas en ASP .NET.
Al igual que suceda en la versin anterior, tambin aparece una nueva versin de la herramienta de
desarrollo Visual Studio, en este caso se trata de la versin 2003.
Es ya con la nueva versin del Framework, la 2.0, cuando aparece ASP .NET 2.0, y al igual que
suceda con ASP 3.0 y ASP .NET 1.0, es perfectamente compatible con las versiones 1.x de las
pginas activas, lo nico que tenemos que hacer es instalar la nueva versin del Framework.
P g i n a | 13
de
l
ec
tur
a
Desde el propio servidor Web IIS 6.0, en el caso de Windows 2003 Server, y desde el servidor Web
IIS 5.1, en el caso del sistema operativo Windows XP Professional, a la hora de crear una aplicacin
Web nos permite indicar a que versin del Framework pertenece: a la 1.1 o a la 2.0, que se
corresponder con la versin de pginas ASPX. Esto lo podemos ver en la siguiente figura.
lo
Figura 1
mp
Como se puede desprender de la figura anterior, en un mismo servidor Web pueden convivir sin
problemas las dos versiones del Framework, la 1.1 y la 2.0, lo mismo sucede con las herramientas de
desarrollo, en un mismo equipo puede estar instalado Visual Studio 2003 y Visual Studio 2005 sin
ningn tipo de problema ni incompatibilidad, incluso podramos tener instalado Visual Studio 6.0 con
Visual InterDev.
Y para terminar con el siguiente apartado, como es de suponer tambin tenemos una nueva versin de
la herramienta de desarrollo Visual Studio, que es la que vamos a utilizar en este texto y que no es otra
que la versin 2005.
Eje
Como ya se ha adelantado los cambios en esta nueva versin de ASP no son tan dramticos y
profundos como los que se dieron con el cambio de versin de ASP 3.0 a ASP .NET 1.0, los lectores
que conozcan ASP .NET 1.x lo tendrn bastante sencillo ya que la forma de desarrollar las
aplicaciones Web y su filosofa permanecen intactas, sin embargo nos encontraremos con un gran
nmero de mejoras y novedades.
Este captulo y el siguiente ser muy til para la audiencia conocedora de alguna versin previa de
ASP .NET, ya que en un rpido vistazo se de adelantarn todas las novedades, mejoras y cambios que
nos ofrece la nueva versin de ASP .NET. Y para los lectores que no conozcan nada de ASP .NET les
P g i n a | 14
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, que sern tratadas en mayor detalle a lo largo de los
distintos captulos de este texto.
ec
En este captulo se van a comentar las novedades que aporta ASP .NET 2.0 respecto a la versin 1.x,
apoyndose en el nuevo entorno .NET Framework 2.0, esta nueva versin de ASP .NET nos ofrece
unas potentes caractersticas a la hora de desarrollar aplicaciones Web, pasemos a ver las ms
destacadas. El lector no debe preocuparse si no entiende alguno de los conceptos que aqu se
comentan, ya que los veremos ms adelante con mayor profundidad, este apartado servir sobretodo a
aquellos lectores que ya conozcan ASP .NET 1.x, para ver de un simple vistazo las novedades ms
destacables de ASP .NET 2.0.
En esta nueva versin de ASP .NET se ofrecen un gran nmero de nuevos controles de servidor, que
se podrn utilizar para distintas tareas dentro del desarrollo de una aplicacin Web, tenemos desde
controles de acceso a datos hasta controles de navegacin.
lo
de
l
Para ver la gran cantidad de controles que ASP .NET pone a nuestra disposicin nicamente tenemos
que echar un vistazo al cuadro de herramientas de Visual Studio 2005. Podemos ver que aparecen un
gran nmero de ellos agrupados por categoras segn su funcionalidad. En la siguiente figura podemos
ver los grupos de controles de servidor que nos ofrece ASP .NET 2.0 desde VS 2005.
Figura 2
mp
No se trata nicamente de nuevos controles mejorados, sino que aparecen completas categoras de
controles nuevos como pueden ser los controles de inicio de sesin o los de navegacin (denominados
por VS 2005 de exploracin). Vamos a comentar brevemente las distintas categoras de nuevos
controles de ASP .NET 2.0.
Eje
El acceso a datos desde ASP .NET 2.0 ahora se puede realizar en unos pocos pasos de manera muy
sencilla, sin la necesidad de escribir ni una sola lnea de cdigo, haciendo uso nicamente de los
nuevos controles de acceso a datos. Dentro de estos controles hay dos grupos bien diferenciados, los
que nos ofrecen la conexin con las fuentes de datos, denominados controles de fuente u origen de
datos (data source controls), como podra ser el control SqlDataSource, y los que nos ofrecen un
interfaz de usuario para representar grficamente los datos, denominados controles conectados a datos
(data bound controls), como puede ser el control GridView.
P g i n a | 15
tur
a
ASP .NET 2.0 nos ofrece cinco controles Web de origen de datos, cada uno ser utilizado para un tipo
especfico de acceso a datos. A continuacin los comentamos brevemente:
SqlDataSource: este control Web nos provee acceso a cualquier fuente de datos de ADO
.NET, como puede ser una base de datos en SQL Server, OLEDB, Oracle y ODBC, incluso se
puede acceder a bases de datos de Access utilizando el proveedor Microsoft Jet 4.0 de
OLEDB, aunque como veremos existe un control de origen de datos especfico para esta
tarea.
AccessDataSource: se trata del control Web especfico para ofrecer una conexin a una
base de datos de Access. Este control hereda del anterior.
SiteMapDataSource: este ltimo control de origen de datos tambin se utiliza con los
controles de navegacin, y lo que nos ofrece es el acceso a la estructura del sitio Web a travs
del fichero del mapa del sitio Web (fichero .sitemap).
de
l
ec
El segundo grupo de controles Web de datos son los controles enlazados a datos, este grupo de
controles van a hacer uso de los controles de origen de datos para mostrar la informacin, es decir, 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 orgenes de datos correspondientes, tambin van a permitir
que el usuario final pueda interactuar con dichos datos ya sea para consultarlos, modificarlos,
eliminarlos o aadir nuevos datos
A continuacin pasamos a describir brevemente los controles enlazados a datos que nos ofrece ASP
.NET 2.0, para que el lector tenga una visin general de los mismos.
Repeater: este control muestra elementos de datos en una lista, por s slo no genera una
salida visible para el usuario, para que sea visible se debe utilizar junto con las plantillas. Este
control ya exista en ASP .NET 1.x.
DataList: similar al control anterior pero permite una mayor personalizacin a la hora de
mostrar la informacin en forma de lista. Tambin permite la seleccin y edicin de
elementos. Tambin debe utilizarse junto con las plantillas y ya exista en las versiones
anteriores de ASP .NET.
mp
lo
GridView: este control muestra la informacin en forma de tabla con celdas y columnas,
generando el cdigo HTML equivalente a una tabla. Es el ms complejo de los controles
enlazados a datos ofreciendo un alto grado de personalizacin y una serie de caractersticas
muy interesantes como pueden ser la ordenacin, paginacin, definicin de columnas, edicin,
etc., este control en nuevo en ASP .NET 2.0, y viene a sustituir al antiguo DataGrid de ASP
.NET 1.x.
DetailsView: este control tambin es nuevo en ASP .NET 2.0 y representa un registro de
datos cada vez, opcionalmente nos permite ir navegando entre registros. Se utiliza en
escenarios de maestro/detalle y tambin es utilizado para editar registros existentes y para
crear nuevos registros.
FormView: este control tambin aparece en la versin 2.0 de ASP .NET, y sus funciones son
muy similares a las del control DetailsView, la diferencia respecto al anterior control es
que permite una mayor personalizacin a travs del mecanismo de plantillas.
Eje
P g i n a | 16
tur
a
Los controles enlazados a datos se relacionan de una forma muy sencilla con los controles de origen
de datos, simplemente asignando a su propiedad DataSourceId el nombre del control de origen de
datos.
Vamos a empezar a incluir algunos ejemplos de cdigo fuente para que el desarrollo del presente
captulo sea ms ameno y no quede nicamente en la mera teora y en una enumeracin de novedades.
En este primer ejemplo vamos a mostrar la utilizacin del control enlazado a datos Repeater. Este
control es uno de los controles enlazados a datos ms sencillo, no ofrece ningn tipo de salida por si
slo, se debe indicar de forma explcita todo el cdigo HTML que deseemos utilizar para presentar los
datos, debido a que no genera ninguna salida, es necesario utilizar como mnimo una plantilla
ItemTemplate.
ec
En este ejemplo, que resulta muy sencillo, se anan los aspectos principales de los controles Web de
datos de ASP .NET: la utilizacin de plantillas y Data Binding y controles enlazados a datos en los
que su fuente de datos es un control de origen de datos.
de
l
En este caso el origen de datos es un control SqlDataSource que realiza una sentencia Select
especificada en su propiedad SelectCommand. El enlace entre el control Repeater y
SqlDataSource se realiza a travs de la propiedad DataSourceId del control Repeater.
Se ha utilizado una plantilla de cabecera de la informacin (HeaderTemplate) para definir la
cabecera de una tabla, otra de pie (FooterTemplate) para cerrar la definicin de la tabla definida
en la plantilla HeaderTemplate. Otra plantilla ms para definir el aspecto de cada elemento
(ItemTemplate), 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), es decir, el
aspecto de las filas alternas de la tabla.
mp
lo
Eje
P g i n a | 17
tur
a
</HeaderTemplate>
<ItemTemplate>
<tr bgcolor="#ccff99">
<td><%#Eval("curso")%></td>
<td align="right"><%#Eval("fhini", "{0:D}")%></td>
<td align="right"><%#Eval("precio", "{0:f} ") %></td>
</tr>
</ItemTemplate>
</asp:Repeater>
de
l
<FooterTemplate>
</table>
</FooterTemplate>
ec
<AlternatingItemTemplate>
<tr bgcolor="#ccff00">
<td><%#Databinder.Eval(Container.DataItem,"curso")%></td>
<td align="right">
<%#DataBinder.Eval(Container.DataItem, "fhini", "{0:D}")%></td>
<td align="right">
<%#Databinder.Eval(Container.DataItem,"precio", "{0:f} ") %></td>
</tr>
</AlternatingItemTemplate>
Eje
mp
lo
Figura 3
Antes de pasar al siguiente grupo de controles que nos ofrece ASP .NET 2.0, vamos a mostrar un
ejemplo ms de los controles Web de datos. En concreto vamos a ver la conexin entre los dos nuevos
controles DetailsView y GridView.
Un uso muy comn del control DetailsView, va a ser utilizarlo en escenarios de listado de datos
maestro/detalle. En este caso tendremos que utilizar el control DetailsView en conexin con el
control GridView.
P g i n a | 18
tur
a
Al seleccionar una de las filas 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 travs del control
SqlDataSource que hace las funciones del origen de datos del control DetailsView. Veamos
como hacerlo.
ec
En el control SqlDataSource utilizamos un filtro sobre los datos, es decir, se va a hacer uso de un
parmetro para la sentencia Select, y adems este parmetro ser el valor que se ha seleccionado del
control GridView. El tipo de este parmetro ser ControlParameter, y en sus propiedades
ControlId especificaremos el nombre del control GridView, y en la propiedad PropertyName
le indicaremos el valor SelectedValue. Es decir, le estamos indicando al control
SqlDataSource que el parmetro que le vamos a indicar al filtro viene de la propiedad
SelectedValue de un control GridView.
mp
lo
de
l
Figura 4
Eje
Lgicamente el control GridView tendr su propio control de origen de datos asociado. El control
GridView deber presentar tambin una columna CommandField que permita la seleccin de una
fila de los datos, por lo que deber asignarse el valor True a su propiedad ShowSelectButton.
Tambin se ha definido un estilo para indicar la fila que se ha seleccionado.
En el Cdigo fuente 2 se muestra la forma de conectar el control DetailsView con el control
GridView. Ambos controles se han incluido dentro de una tabla de HTML para mostrarse en la
pgina uno al lado del otro. En un primer momento el control DetailsView no va a mostrar ningn
dato ya que no se ha seleccionado ninguna fila del control GridView, en el momento que se
seleccione una fila se mostrarn los detalles del registro correspondiente.
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="EjemploVB3.aspx.vb"
Inherits="EjemploVB3" %>
P g i n a | 19
tur
a
ec
</td><td valign="top">
de
l
mp
lo
Eje
</td></tr></table>
</form>
</body>
</html>
Cdigo fuente 2
tur
a
ec
Figura 5
de
l
En la versin 1.x de ASP .NET ya existan los controles de acceso a datos, en ASP .NET 2.0 aparecen
nuevos controles, pero ya exista esta categora, sien embargo, una categora completamente nueva son
los controles de navegacin. Los controles de navegacin ofrecen un interfaz de usuario que permite la
navegacin a travs de las distintas pginas de un sitio Web as como la presentacin de la
informacin de forma jerrquica. Un ejemplo de estos controles es el nuevo control SiteMapPath,
que nos permite navegar entre pginas, y el control TreeView, que muestra la informacin de forma
jerrquica organizada en hojas, otro control de navegacin sera el control Menu, que nos permite
construir mens navegables.
lo
Para trabajar de forma ms rpida y sencilla con los controles Web de navegacin o exploracin,
tendremos que hacer uso de un fichero especial que va a definir la estructura, el mapa, de nuestro sitio
Web.
mp
Este fichero va a indicar como se relacionan unas pginas con otras dentro del sitio Web. El fichero
del mapa o estructura del sitio Web est estructurado en formato XML. Solo puede existir un fichero
de este tipo dentro de una aplicacin.
El fichero de mapa del sitio Web ser utilizado directamente por los controles SiteMapPath y
SiteMapDataSource, e indirectamente a travs del control SiteMapDataSource, por los
controles TreeView y Menu.
Eje
Para agregar un fichero de mapa de sitio Web a nuestro sitio Web dentro de Visual Studio 2005,
deberemos pulsar con el botn derecho del ratn sobre la solucin, dentro del explorador de
soluciones, y seleccionar la opcin Agregar Nuevo elemento. En la ventana que aparece se muestran
todos los elementos que podemos aadir a la solucin, en este caso seleccionaremos el elemento Mapa
del sitio, y lo dejaremos con su nombre por defecto Web.sitemap. Al pulsar el botn Agregar se
aadir el mapa del sitio a la solucin.
El primer elemento del mapa del sitio va a ser el elemento <siteMap>, que va a ser la raz de toda la
estructura del documento XML, y slo podr existir uno de estos elementos.
Para cada pgina del sitio Web existir un elemento <siteMapNode> dentro del mapa del sitio.
Estos elementos se tendrn que ir anidando segn la estructura del sitio Web, as por ejemplo si
queremos definir una pgina principal para todo del sitio Web, y que todas las dems pginas se
P g i n a | 21
tur
a
encuentren por debajo de la pgina principal, tendremos que definir un elemento <siteMapNode>
que incluya a todos los dems, ya que sern pginas hijas de la anterior. Cada una de las pginas que
forman parte de la estructura del sitio Web se las denomina nodos.
La idea es construir una estructura jerrquica de pginas. Esto lo veremos ms 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.
El elemento <siteMapNode> presenta los siguientes atributos:
title: este atributo representa el ttulo del enlace, la cadena utilizada se mostrar como texto
del enlace que se corresponda con la pgina.
url: en este atributo se indicar la direccin en la que se encuentra la pgina dentro del sitio
Web. Esta direccin siempre ser relativa.
ec
mp
lo
Inicio
---Alimentacin
------Carnes
------Pescados
------Frutas y verduras
------Congelados
---------Platos precocinados
---------Helados
---------Pizzas
---Droguera
------Productos limpieza
------Aseo personal
---Bebidas
-----Alcohlicas
-----No alcohlicas
de
l
A continuacin vamos a crear un mapa de un sitio para un caso concreto de ejemplo, en este caso se
quiere definir un fichero Web.sitemap para un sitio Web que contiene un supermercado online.
Supongamos que deseamos que nuestro sitio Web tenga la siguiente estructura.
Como podemos observar tenemos una pgina de inicio que ser la raz del sitio Web, de esta forma el
elemento <siteMapNode> que se corresponda con la pgina Inicio deber contener a los dems
elementos <siteMapNode>. Segn la estructura anterior deberamos tener un mapa de sitio Web tal
como el que aparece en el Cdigo fuente 3.
Eje
P g i n a | 22
de
l
ec
tur
a
A continuacin vamos a pasar a comentar brevemente los distintos controles que aparecen en este
nuevo grupo.
SiteMapPath: este control se alimenta directamente de los datos en XML indicados en el
fichero Web.sitemap, no necesita de un proveedor intermedio, como si sucede con los otros
dos controles de navegacin, el control TreeView y Menu. La funcin de este control es la
de indicar en que lugar exacto de la estructura del sitio Web nos encontramos actualmente,
adems de ofrecernos un sistema de navegacin de forma automtica, ya que, como hemos
dicho, lee directamente los datos del mapa del sitio y los interpreta, generando de forma
dinmica los enlaces que nos permiten navegar a travs de las distintas pginas que conforman
la estructura del sitio Web. Los enlaces se generan siguiendo una estructura lineal y utilizando
un separador. Estos enlaces se generan de forma dinmica a partir del fichero
Web.sitemap, y variarn segn en la pgina ASPX en la que nos encontremos en cada
momento. As si tenemos en cuenta el mapa de sitio Web definido anteriormente, y aadimos
un control SiteMapPath en la pgina Helados.aspx, obtendramos como resultado un
sistema de navegacin como el de la Figura 6.
Eje
mp
lo
Figura 6
TreeView: en este caso el acceso a la estructura del sitio Web definida por el fichero
Web.sitemap, no se realiza directamente, tal como hacamos en el caso del control
SiteMapPath, sino que se tiene que hacer a travs de un proveedor de fuente de datos, es
decir, ya no existe un vnculo directo entre el control de navegacin y el mapa del sitio Web.
P g i n a | 23
tur
a
El control TreeView posee un uso ms general, no slo para la navegacin dentro de un sitio
Web, sino que podremos utilizar el control TreeView para mostrar informacin de forma
jerrquica y de forma muy intuitiva para el usuario, ya que muestra la informacin en
estructura de rbol, como su propio nombre indica. El proveedor de fuente de datos que vamos
a utilizar para establecer el enlace con el fichero del mapa del sitio Web, es el control llamado
SiteMapDataSource.
Menu: este control va a ser utilizado para ofrecer un gran nmero de opciones de navegacin
al usuario mediante un men. 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 opcin principal.
ec
Veamos en accin estos controles Web de navegacin. En primer lugar vamos a ver un ejemplo muy
sencillo de utilizacin del control Menu. En este ejemplo y en el siguiente vamos a utilizar el fichero
de mapa del sitio Web visto anteriormente. En el Cdigo fuente 4 se puede ver la utilizacin del
control Menu.
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="EjemploVB5.aspx.vb"
Inherits="EjemploVB5" %>
de
l
lo
Cdigo fuente 4
mp
Cada opcin del control Menu, cuando se utiliza la fuente de datos SiteMapDataSource, se
corresponde con un enlace a una pgina dentro de la estructura del mapa del sitio Web.
En la Figura 7 se puede ver el aspecto del control Menu, segn nos vamos posicionando con el
puntero del ratn en las distintas opciones se van abriendo las subopciones, si una opcin tiene
subopciones en su interior aparece un icono de un tringulo para indicarlo. Por defecto la distribucin
de las distintas opciones del control Menu es vertical y como se puede apreciar en el ejemplo, en un
primer momento slo aparece la opcin principal Inicio.
Eje
El control Menu posee elementos estticos y dinmicos, en este caso el elemento esttico es la opcin
Inicio que siempre aparece cuando se genera la pgina, y los elementos estticos son los que van
apareciendo segn nos vamos situando con el puntero del ratn.
P g i n a | 24
tur
a
ec
Figura 7
Ahora veremos en accin un control TreeView para mostrar el mapa del sitio Web en la estructura
de rbol. Vamos a seguir con el ejemplo del supermercado y con el mismo fichero Web.sitemap.
de
l
Antes de aadir el control TreeView, recordemos que tenemos que incluir el control
SiteMapDataSource, para poder acceder al mapa del sitio Web que tenemos definido en el
archivo Web.sitemap.
Una vez aadido el control de fuente de datos, ya estamos en disposicin de aadir el control
TreeView. Ahora nos queda conectar el control TreeView con el control
SiteMapDataSource, esto lo haremos a travs de la propiedad DataSourceId del control
TreeView, a esta propiedad le asignaremos el nombre del control SiteMapDataSource.
El Cdigo fuente 5 sera el cdigo de la pgina ASPX que mostrara el mapa del sitio Web dentro de
un control TreeView.
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Limpieza.aspx.vb"
Inherits="Limpieza" %>
lo
Eje
mp
La Figura 8 mostrara el resultado de la ejecucin de esta pgina. Ahora la pgina en la que se muestra
el control TreeView no interviene en la forma en la que se muestra la informacin, tal como suceda
con el control SiteMapPath. Lo que si sucede es que cada uno de los nodos hoja (nodos finales) del
rbol se corresponde con una de las pginas definidas en el mapa del sitio Web, cada nodo hoja es un
enlace a la pgina que representa, y al pulsar sobre cada uno de estos nodos, el navegador nos llevar a
la pgina correspondiente.
P g i n a | 25
tur
a
ec
de
l
Figura 8
lo
Tambin aparece una nueva categora de controles llamada de inicio de sesin, estos controles nos van
a ofrecer un interfaz y funcionalidad para realizar labores de autenticacin y autorizacin dentro de
nuestro sitio Web. Dentro de este grupo tenemos por ejemplo, el control Login que nos ofrece un
interfaz grfico consistente en las cajas de texto y botones para indicar un nombre de usuario y una
contrasea, y el control ChangePassword que nos provee de un formulario para realizar el cambio
de contrasea.
Estos controles no van a ofrecer nicamente un interfaz, sino que tambin ofrecen un gran nmero de
funcionalidades, que estn estrechamente relacionadas con las tareas propias de la autenticacin y
autorizacin de usuarios.
mp
El proceso de autenticacin es el que determina la identidad del usuario, una vez que el usuario se ha
autenticado el siguiente paso ser comprobar si tiene la autorizacin necesaria para acceder a un
recurso determinado, como puede ser una pgina ASPX.
El proceso de autenticacin est implementado en ASP .NET mediante el servicio de pertenencia a
grupo (Membership), y el proceso de autorizacin mediante el servicio gestor de roles (RoleManager).
Y los controles de inicio de sesin, nos ofrecen una serie de funcionalidades, apoyndose en estos dos
nuevos servicios de ASP .NET 2.0, para que podamos realizar tareas de autenticacin y autorizacin
de usuarios en nuestras aplicaciones Web de forma muy sencilla.
Eje
A continuacin vamos a describir brevemente los distintos controles de inicio de sesin que nos ofrece
ASP .NET para realizar las tareas de autenticacin y autorizacin dentro de nuestras aplicaciones
Web, junto con esta descripcin se ofrece una figura con el aspecto bsico que tienen estos controles
en la vista de diseo de VS 2005.
CreateUserWizard: este control hereda del control nuevo control Web estndar Wizard
y nos ofrece la posibilidad de aadir un nuevo usuario a la aplicacin Web. Basndose en el
servicio de pertenencia a grupo aadir un nuevo usuario al almacn de datos del servicio. Por
P g i n a | 26
de
l
ec
tur
a
Figura 9
Login: este control lo vamos a utilizar para autenticar un usuario, que ya ha sido creado
previamente, en nuestro sitio Web. Este control utilizar internamente la clase Membership
para autenticar el usuario en el servicio de pertenencia a grupo. Este control se utilizar
normalmente en la pgina de inicio de sesin de nuestra aplicacin Web.
mp
lo
Eje
Figura 10
P g i n a | 27
ec
PasswordRecovery: este otro control tambin nos va a permitir gestionar las contraseas,
en este caso su funcin es la de enviar al usuario, va correo electrnico, su contrasea actual.
Este control se utiliza cuando el usuario ha olvidado su contrasea, y le pedir su nombre de
usuario y una respuesta a una pregunta secreta, si es que tenemos ese tipo de configuracin en
nuestro servicio de pertenencia a grupo. Para utilizar este control, no es necesario que el
usuario se encuentre autenticado en la aplicacin Web. Tambin veremos que mediante este
control se puede cambiar tambin la contrasea del usuario segn la configuracin que
tengamos.
de
l
tur
a
Figura 11
Figura 12
lo
Figura 13
mp
Figura 14
LoginView: en este caso este control adems de utilizar la clase Membership del servicio
de pertenencia a grupo, tambin har uso de la clase Roles del servicio gestor de perfiles.
Segn el rol al que pertenezca el usuario actual, este control mostrar unos contenidos u otros,
basndose en el, ya conocido por todos, mecanismo de plantillas (templates). Por defecto,
como se puede ver en la Figura 15, este control no tiene una representacin grfica, la tendr
cuando indiquemos una plantilla para el mismo. Este ser el nico control Web de inicio de
sesin que haga uso del servicio gestor de roles.
Eje
P g i n a | 28
WebParts
tur
a
Figura 15
ec
El grupo de controles llamado Elementos Web tambin podemos encontrarlo por su nomenclatura en
ingls, que suele ser ms comn, se trata de los controles WebPart. Estos son unos controles de
servidor bastante potentes que permiten al usuario del sitio Web personalizar el aspecto y distribucin
del mismo, estos controles son utilizados en aplicaciones Web de tipo portal para que el usuario tenga
una experiencia completamente personalizada del sitio Web. Por lo tanto el usuario podr modificar en
tiempo de ejecucin las propiedades de los controles WebPart.
de
l
Adems cuando el usuario regrese al sitio Web lo encontrar de la misma forma que lo dej, y cada
usuario tendr su propia personalizacin del sitio Web.
Las operaciones que el usuario puede realizar sobre los controles WebPart vienen determinados por el
modo que se define para el control WebPartManager , que ser el gestor de todos los controles
WebPart de la pgina, y que se har a travs de su propiedad DisplayMode. Este control puede
presentar los siguientes modos:
Normal (BrowseDisplayMode): es el modo de navegacin y la pgina ASPX se presenta
como una pgina normal, sin que el usuario pueda editar las propiedades de los controles
WebParts o bien moverlos por la pgina y cambiarlos de posicin. Ni siquiera aparecen
destacados los controles WebPartZone, que son los que indican cada una de las secciones o
zonas en las que se divide la pgina. Aunque lo que si podremos hacer ser minimizar,
maximizar y cerrar los elementos WebPart presentes en la pgina. Este es el modo por defecto
que ofrece la propiedad DisplayMode del control WebPartManager.
Edicin (EditDisplayMode): en este modo se nos permite editar una serie de propiedades
que pueden mostrar los controles WebParts. Estas propiedades pueden ser, entre otras, el ttulo
del control WebPart, el color, la forma en la que se presenta por defecto, etc.
mp
lo
Eje
Veamos brevemente los principales controles que podemos encontrar dentro de esta nueva categora
que nos ofrece ASP .NET 2.0.
WebPartManager: este control va a ser el encargado de gestionar las distintas zonas en las
que se van a encontrar los distintos controles WebParts. Este control no va a tener un aspecto
visual, pero siempre ser necesario que exista un control de este tipo para poder utilizar lo que
se denomina el Framework de portal, que es la parte del .NET Framework que implementa el
mecanismo de WebParts.
WebPartZone: este control define las zonas en las que se van a distribuir los controles
WebParts dentro de la pgina ASPX correspondiente. Estos controles definen reas de
P g i n a | 29
tur
a
EditorZone: este control tambin resulta muy interesante, ya que nos permite editar las
propiedades de los distintos controles WebPart presentes en la pgina ASPX. Este control se
podr utilizar nicamente en el modo de edicin.
LayoutEditorPart: este control se encuentra relacionado con los dos anteriores, y lo que
permite modificar al usuario es el diseo del control. Algunas de las propiedades que se
pueden editar mediante este control es la zona a la que pertenecen y el orden de posicin que
presentan dentro de la misma.
lo
de
l
ec
mp
Todos estos controles, y otros ms, los veremos con ms detalle en este texto, en el captulo
correspondiente en el que se tratar el Portal Framework y todo lo relacionado con los controles
WebParts.
Como anticipo se muestra el Cdigo fuente 6 que se corresponde con una pgina ASPX que hace uso
de los distintos controles WebPart que se acaban de describir. En negrita se destacan los elementos
ms importantes de la pgina ASPX.
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb"
Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Eje
P g i n a | 30
mp
lo
de
l
ec
tur
a
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.8em" />
<MenuLabelStyle ForeColor="White" />
<MenuVerbHoverStyle BackColor="#F7F6F3" BorderColor="#CCCCCC"
BorderStyle="Solid" BorderWidth="1px" ForeColor="#333333" />
P g i n a | 31
Eje
mp
lo
de
l
ec
tur
a
P g i n a | 32
tur
a
</table>
</form>
</body>
</html>
Partial Class _Default
Inherits System.Web.UI.Page
ec
End Class
de
l
En este caso se tienen dos zonas definidas por dos controles WebPartZone, una zona de catlogo
definida mediante un control CatalogZone, y otra zona de edicin especificada mediante un control
EditorZone. Las distintas zonas de la pgina se encuentran en una tabla de HTML, para tener un
control sobre ellas y poder distribuirlas. Esta es una prctica muy comn a la hora de distribuir las
distintas zonas que incluyen en su interior uno o varios controles WebPart.
mp
lo
Sobre las distintas zonas se han aplicado formatos automticos que nos ofrecen sus smart tags
(etiquetas inteligentes), que son una serie de etiquetas especiales que nos ofrece el entorno de
desarrollo VS 2005 en la vista de diseo, y que nos van a permitir realizar distintas operaciones sobre
los controles Web de forma rpida y sencilla. Debido a estos formatos aparecen en la pgina ASPX
tantas etiquetas, estas se utilizan para definir distintos estilos que afectan a los controles
WebPartZone.
Como se puede ver en el evento Page_Load se indica el modo que va a utilizar el control
WebPartManager, 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 configuracin que presentan los controles WebParts en los distintos modos.
Eje
En la Figura 16 se puede ver un ejemplo de ejecucin de la pgina ASPX. En este caso se corresponde
con el modo de diseo.
P g i n a | 33
tur
a
ec
de
l
Figura 16
lo
Como ya hemos comentado, las distintas modificaciones que realice el usuario sobre los distintos
controles WebPart se mantendrn para las siguientes veces que el usuario visite la pgina, adems
cada usuario tendr su propia visin de la pgina ASPX, atendiendo a la configuracin de controles
WebPart que haya realizado sobre la misma.
mp
Para mantener el estado de los distintos controles WebPart, se recurre a una base de datos de SQL
Server Express 2005, llamada ASPNETDB.MDF. Esta base de datos la aade VS 2005 a nuestro
directorio App_Data de nuestra aplicacin, en el momento que empecemos a utilizar controles
WebPart en cualquiera de las pginas ASPX de nuestro proyecto. El directorio App_Data que va a
contener los almacenes de datos utilizados por la aplicacin, podrn contener ficheros de SQL Server
(.MDF), Access (.MDB), ficheros XML. En el siguiente captulo se comentarn los distintos
directorios especiales que presenta ASP .NET 2.0 para las aplicaciones Web.
Esta misma base de datos tambin es utilizada por los servicios de suscripcin (Membership) y de
gestin de roles (RoleManager), que nos ofrece ASP .NET 2.0.
Eje
Controles Estndar
Dentro del grupo de controles estndar tambin aparecen nuevos controles de servidor, tan sencillos
como puede ser el control BulletedList, que representa una lista de elementos, el control
HiddenField, para representar un campo oculto de un formulario, y ms complejos como puede ser
el control Wizard, que permite definir una serie de pasos en forma de un asistente. En general los
P g i n a | 34
tur
a
nuevos controles estndar que se han aadido en ASP .NET 2.0 nos van a permitir ahorrarnos mucho
trabajo debido a las funcionalidades que ofrecen.
A continuacin, al igual que hemos hecho en otros apartados, se van a comentar brevemente algunos
de estos nuevos controles:
BulletedList: este control representa una lista ordenada (etiqueta <ol>) o desordenada
(etiqueta <ul>). El control BulletedList est formado por controles ListItem.
HiddenField: representa un campo oculto del formulario, es decir, como cdigo HTML
generar <input type=hidden>. Ser muy til cuando queramos enviar informacin
que no queremos que se visualice en el formulario, pero esta informacin si que ser visible si
el usuario en el navegador selecciona ver el cdigo de la pgina.
FileUpload: nos permite enviar archivos al servidor Web de forma muy sencilla, por lo
tanto se corresponde con un elemento <input type=file> de HTML. Antes de
ponernos a utilizar este control Web debemos tener en cuenta dos aspectos, por un lado si
tenemos permisos de escritura en el destino en el que queremos copiar el archivo, y las
limitaciones de tamao que tenemos a la hora de enviar un archivo al servidor Web.
ImageMap: en este caso se trata de un control Web que nos permite definir un mapa de
imagen sensible, es decir, una imagen que posee varias secciones y segn en la seccin en la
que se pulse la pgina realizar una accin u otra. Con este control podemos utilizar una
imagen como un men de navegacin, por ejemplo.
lo
de
l
ec
mp
Para terminar con el presente captulo, se va a mostrar de forma rpida un ejemplo de utilizacin del
control Wizard.
A continuacin se ofrece el Cdigo fuente 7, que es el cdigo que se generara al crear un control
Wizard sencillo, con tres pasos, utilizando un formato predeterminado y luego aadiendo un control
Button al paso uno, y un control Image al paso dos.
Eje
P g i n a | 35
de
l
ec
tur
a
Eje
mp
lo
Figura 17
En el siguiente captulo seguiremos comentando las novedades que podemos encontrarnos dentro de
ASP .NET 2.0.
P g i n a | 36