Está en la página 1de 59

m 

 
 m
ñ   


  

m 
À Al principio, el Web estaba poblado únicamente por páginas
estáticas
El servidor Web simplemente localizaba el documento solicitado en el URL
y se lo entregaba al cliente
À Este enfoque puede ser perfectamente válido para muchos sitios
Siempre y cuando no requieran actualizaciones continuas, ya que hay que
eso implica o bien modificar, a mano, las páginas existentes, o bien crear
una nueva
À Pero no permitiría, por ejemplo, crear un sitio de comercio
electrónico donde se pueda comprar, o el de un banco
Es necesario acceder a datos en el servidor y crear una página a petición

ñ   
   ñ
   ñ 

Ú
× 
 
  


ñ   
   ñ
   ñ 

{
× 
 
  
 

ñ   
   ñ
   ñ 

©
u

  
 

À El esquema de funcionamiento de las páginas dinámicas


es siempre similar independientemente de en qué se
hayan desarrollado éstas
CGI, ASP, Servlets/JSP«
À El servidor Web detecta una petición de una página
dinámica y se la pasa al programa necesario
Podría ser una extensión del servidor
O bien un programa completamente independiente
À Este programa es quien sabe cómo interpretar el código
de la página para devolver el HTML apropiado
ñ   
   ñ
   ñ 

G
 
 m
Antes de empezar a estudiar ASP .NET,
echemos un vistazo a la versión anterior de
la tecnología de páginas dinámicas de
Microsoft.
x 
 
 
À Uno de los inconvenientes de ASP es que es
dependiente de un servidor Web concreto
El Internet Information Server (IIS) de Microsoft
À Dicho servidor ya viene de manera predeterminada en
las últimas versiones de Windows
Aunque quizá no lo hayamos instalado junto con el Sistema
Operativo
± En ese caso, podríamos hacerlo a través de la opción de Añadir o
quitar componentes de Windows del Panel de Control
¿Cómo probar si está instalado?
± Teclear en el navegador ë ë 
ñ   
   ñ
   ñ 

   
À ASP, al igual que las JSP de Java, se basa en mezclar
instrucciones de programación en nuestras páginas
HTML
À El motor de ASP procesará dichas instrucciones
dinámicamente y obviará el HTML
Esto permite generar HTML dinámicamente, añadiendo lógica
a nuestras páginas
À Para ello, hay que encerrar el código ASP entre los
símbolos ü  

ñ   
   ñ
   ñ 

M
   
 
À ¿Y en qué lenguaje se escriben esas instrucciones?
À ASP permite el uso de dos lenguajes:
Visual Basic Script (VBScript
VBScript)
JScript (como denomina Microsoft a su implementación de
ECMAScript ±que a su vez es el estándar de JavaScript
JavaScript±)
À Si no decimos nada, por omisión asume VBScript

ñ   
   ñ
   ñ 

^

   m
À Será ±¡cómo no!
no!±± el archiconocido ³Hola, mundo´
À La página siguiente escribe dinámicamente el mensaje

üë 

üë 

ü  
    ü  

üë 

ü  

üë

ü 
 
     
üë

ü  

üë 

ñ   
   ñ
   ñ 

£

  m
ë ë
   ü 
   
  
ü        
     
  
  !
"
ü# 

ü$% ü&
ü$'( ))ü#$'
  
ü$** * ü
ü ** ü#$*
 
ü& & *
 
ü     +!ü'+!  
üü,-üü   ü  
.+ü#ü,-ü .'ü#ü#
ü " 
ü#&
   ü ,  /01ü$*0 ,  ü#$*1! 
  
 ü#& ü#$%

ñ   
   ñ
   ñ 

££
m
Es mucho más que la siguiente versión de ASP.
Realmente, tiene poco que ver con el ASP tradicional;
supone un rediseño completo, integrado en la plataforma
.NET, y hay que cambiar la forma de hacer las cosas para
adaptarnos a la nueva filosofía.
    m    ! 
 &  &
!$   & '( )  ) 
% %  % * ë  % * ë 
   

›    ›

  


   !ë" +     
     # +     $
+    $

 ›
    
,    
-  
›    ›

( .   $
- $
     /  
%

ñ   
   ñ
   ñ 

£{
 
!   m
Para estudiar las diferencias entre ASP y ASP
.NET, comencemos creando nuestra primera
página ASP .NET a mano, empleando sólo el
bloc de notas.
 
"
À En su forma más simple, una página ASP .NET no es
más que HTML puro
À Cualquier fichero con la extensión /  será
procesado por el entorno en tiempo de ejecución de
.NET ( 2-/)
À Si no hay ningún script en dicha página ni tampoco
referencias a ningún código externo (â 

  )
entonces la página es devuelta directamente al cliente

ñ   
   ñ
   ñ 

£G

#$
%
&
À Guardar el siguiente documento como -3/ :

ü4%   1'/+1  1567889:7'14


ü;<6.(=)>$%)?@A5.17##0B.##<(<C-(3A'/+ ##>D1
1$E##---/-B/#(,#$%'#<(<#$%'7  /1
ü$%% 1$E##---/-B/#':::#$%1
ü$
ü3%F)/D>(ü#
ü#$
ü&
ü$'3%F)/D>(ü#$'
üG-%;ü#
ü#&
ü#$%

ñ   
   ñ
   ñ 

£
  

À Cópiese al directorio .E
.EH
H5&
5&H
H---
O bien a algún subdirectorio o directorio virtual
À Y tecleamos en el navegador:
$E## $ #-3/ 

ñ   
   ñ
   ñ 

£
×
  
'"
Veamos un ejemplo de formularios Web en
HTML, para entender luego qué es lo que hace
ASP .NET y cómo se relaciona con éstos.
×
  

À Son la forma que hay en HTML de enviar datos

ñ   
   ñ
   ñ 

£^

 
  
 $u
///
ü%  1$E## $ # #%/ 1%$ 1 1
ü
D%&Eü 11% 1%&1#ü&#
 Eü 11% 1 1#ü&#
IJK  % L 4ü&#
ü  % 1  %6 1
ü  10- :810- :8ü#
ü  10- *+++10- *+++ü#
ü  10- C)10- C)ü#
ü  1A#?1A#?ü#
ü#  ü&#
ü  1 &%1#
ü#
ü#%
///

ñ   
   ñ
   ñ 

Ú
×
  

À Esos datos se envían al URL especificado en el atributo
  de %
À Hay dos métodos de envío
GET
± Los datos se codifican en el propio URL
POST
± Viajan ocultos en el propio mensaje HTTP
Es lo habitual

ñ   
   ñ
   ñ 

Ú£
x
  
 

À ¿Cómo se recogen esos datos en el servidor, en el URL
especificado?
Depende de la tecnología de páginas dinámicas que estemos
empleando
Veamos un ejemplo sencillo en ASP tradicional que muestre
un mensaje personalizado en función de los datos
introducidos en el formulario anterior

ñ   
   ñ
   ñ 

ÚÚ
(#$
%u
&)

*  

ñ   
"
À Creamos un nuevo sitio web:
En × ĺ D-0&
M
O a través de la ventana de
inicio, en ³proyectos
recientes´

ñ   
   ñ
   ñ 

Ú©
ñ   
"
À Visual Studio 2005 elimina la necesidad de tener
instalado el Internet Information Server
Se puede crear un ³sitio web´ en cualquier carpeta del sistema
de ficheros local
Para ello, especificaremos:
r A E × %
À El lenguaje será C#
À La plantilla a utilizar es ?   ë

ñ   
   ñ
   ñ 

ÚG
ñ   
"

ñ   
   ñ
   ñ 

Ú
ñ   
   ñ
   ñ 

Ú
ñ
++",
ñ

À Es una de las mejores características de ASP .NET
Y que es aún mejor en ASP .NET 2.0 con las ³clases
parciales´
À Permite separar el código HTML de la lógica de
programación
À Además, no hay que esperar a que el servidor web nos
dé los errores al mostrar la página, sino que podemos
compilar el código como cualquier otra clase
Y, con Visual Studio 2005, incluso depurar

ñ   
   ñ
   ñ 

ÚM
ñ
++",
ñ

À Pulsando en </  con el botón secundario y
seleccionando X  obtenemos:

ñ   
   ñ
   ñ 

Ú^
ñ 
À Ocultan gran parte del código generado
automáticamente por Visual Studio 2005
Por ejemplo, aunque tenemos acceso a los controles de ASP
.NET definidos en la página, no aparecen aquí como atributos
de la clase
Lo mismo con las suscripciones a eventos
± Como veremos, se llama automáticamente a los manejadores de
eventos, sin que veamos la asociación explícita entre el evento y su
manejador, como ocurría en ASP .NET 1.0

ñ   
   ñ
   ñ 

{
  
  -
À Con ASP .NET 2.0 es posible generar código XHTML
Strict válido
À Para ello, es necesario hacer lo siguiente:
Añadir al sitio web un fichero de configuración (Web
Web
configuration file)
file 0&/ 
Añadir esta sección:
ü$%.% % 1 1#
dentro de ü  %/-&
ü  %/-&M
Mü#  %/-&

ñ   
   ñ
   ñ 



;<6.(=)>
;<6.(=)>
À También es necesario cambiar el ;<6.(=)> que nos
genera por éste:
ü;<6.(=)>$%)?@A5.
17##0B.##<(<C-(3A'/+ ##>D1
1$E##---/-B/#(,#$%'#<(<#$%'7
1$E##---/-B/#(,#$%'#<(<#$%'7  /1

À E indicar el juego de caracteres de la página (en el


ü$):
ü%$7N 1.
ü%$7 N 1.7
7(1
 1#$%! $   7
 1#$%! $    7889:
889:7
7'1#

ñ   
   ñ
   ñ 


×,
</ 
À Representa la página en sí
El código HTML junto con los controles de ASP .NET
À Lo renombraremos apropiadamente
Por ejemplo, -3/ 
À En Visual Studio, no hace falta escribir el código de los
controles a mano
Podemos arrastrar y soltar desde el Cuadro de Herramientas
± La pestaña que está en el lateral izquierdo de la ventana
± Podemos modificar sus propiedades desde el cuadro de Propiedades

ñ   
   ñ
   ñ 

{{
(#$
%
&)  *  

À Arrastramos un control estándar A&


À Podemos cambiar a la vista del diseñador
pulsando en la pestaña que está en la
parte inferior izquierda de la ficha

ü EA&5< 1A&(1 1  1


ü EA&5< 1A&(1 1  1
( 1G-%;1ü# EA&

ñ   
   ñ
   ñ 


ñ
  

À ü EA& es un Control Web de ASP .NET
Uno de los muchos incluidos en el Framework .NET
À El atributo  O  P indica que se ejecutará en el
servidor
Quien se encargará de generar el código HTML apropiado para él
± En este caso, simplemente envuelve el texto en un elemento ü  de
HTML
À Todos los controles Web de ASP .NET deben estar dentro de un
formulario que también tenga el atributo  O  P

ñ   
   ñ
   ñ 

{G
m
"  
À Con Build ĺ Build Web Site compilamos toda la
aplicación
À La ³ejecutamos´ en el menú Debug ĺ Start Without
Debugging

ñ   
   ñ
   ñ 

{
[ 
À Si queremos depurar (Debug
(Debug ĺ Start Debugging)
Debugging)
À Y activar la depuración en el fichero de configuración
Nos pregunta si quiere que lo haga él automáticamente

ñ   
   ñ
   ñ 

{
x 
  

ñ   
   ñ
   ñ 

{M
ñ 
$u  

ü;<6.(=)>$%)?@A5.17##0B.##<(<C-(3A'/+ ##>D1
1$E##---/-B/#(,#$%'#<(<#$%'7  /1
ü$%% 1$E##---/-B/#':::#$%1
ü$
ü3%F)/D>(*/+ü#
ü#$
ü&
ü%%$ 1 1  1-3*/ 1  1×%1
ü 
ü 1$1% 122Q5>0((>1 122Q5>0((>1
 1#->)<-?6<>3<>9DL=9RS(&DB-D@D <CCA<?6BJ 1#
ü# 
ü 
ü  1A&(1G-%;ü# 
ü# 
ü#%
ü#&
ü#$%

ñ   
   ñ
   ñ 

{^
u 
 . 

À Uno de los mayores avances de ASP .NET sobre su
predecesor es la capacidad del manejo de eventos
desde una perspectiva orientada a objetos
À Veamos cómo hacer que al pulsar un botón en la página
cambie el texto del mensaje

ñ   
   ñ
   ñ 

©
. 

À Formas de añadir los manejadores de eventos:
eventos:
Desde el código HTML
Desde la vista de diseño
± Haciendo doble clic sobre el control se generará el manejador para el
evento predefinido del control
± También podemos crear cualquier otro manejador en la ventana de
propiedades

ñ   
   ñ
   ñ 

©£
/   "

///
ü%%$ O P O  P
ü EA&

  OG-3;P
 O  P#ü&#
ëë

   ë ë  

ë    
ü#%
///

À ¿Qué es lo que ponemos en el evento   T?


El nombre de la función (realmente será un método de la clase
correspondiente a esta página) que queremos que maneje
dicho evento
± Será llamado automáticamente cuando se produzca el evento
ñ   
   ñ
   ñ 

©Ú
[    

À Escribimos lo siguiente en el método que nos genera:

mmm
ë ë   ë
 

ë? 



  ë 

? 

mmm

ñ   
   ñ
   ñ 

©{
ñ
  

À Le hemos dado un identificador () a la etiqueta
(A&) para poder acceder a ella por programa
Antes se lo daba ASP .NET automáticamente por nosotros
À En el manejador del botón modificamos su propiedad
(
(Los controles de .NET son clases que tienen sus
correspondientes métodos y propiedades)
À Una vez pulsado el botón (el texto cambiará), ¿qué
ocurre si actualizamos la página?

ñ   
   ñ
   ñ 

©©
  

À Que el estado permanece


El texto no vuelve a ser el ³¡Hola, mundo!´ original, sino que
queda con el último valor
À ¿Cómo es posible esto?
Porque lo hace ASP .NET por nosotros
± Todos los controles de un formulario mantienen los valores que
tuvieran la última vez
± Esto lo hace ASP .NET a través del campo 2Q5>0((>
Un elemento ü oculto que mete automáticamente en el
formulario con un ristra de datos que contienen todos los valores de los
campos
± Es una característica nueva de ASP .NET
ñ   
   ñ
   ñ 

©G
. 
 m0
La mayor parte del código siguiente es transparente
para el programador en ASP .NET 2.0.
. 
  
À Una página ASP .NET pasa por una serie de estados a
lo largo de su ciclo de vida
1. Se inicializa la página
Se crean los objetos de los controles y se establecen los
manejadores de eventos
2. Se procesa el estado de la vista (2Q5>0((>), poblando
los controles con los últimos datos que tuvieran
3. Se lanza el evento A
Aquí es donde comenzaremos a escribir la lógica de nuestra página
4. Se llama a los manejadores de eventos correspondientes a
las acciones de usuario que hayan tenido lugar
ñ   
   ñ
   ñ 

©
. 
  
5. Se salva el estado de la vista
6. Se muestra la página

ñ   
   ñ
   ñ 

©M
 
À Es el primer evento que tiene lugar
À ASP .NET crea todos los controles de la página
À Visual Studio también añadirá aquí los manejadores de
los eventos de usuario que hayamos definido
   65>  

5L.%!
& /65!
"

  5L.%



$ /A - %/> -$ /)2A!
"

ñ   
   ñ
   ñ 

©^
. 
u 
1 

À ¿Qué significa esta línea?
$ /A - %/> -$ /)2A!

À Es como nos suscribimos a los eventos en C#


Mediante lo que se denominan delegados
À Asocia al evento Ade la página el método )2A
Se llamará automáticamente a dicho manejador cuando se produzca el
evento
Que deberá concordar con la signatura del delegado
 %/> -

  ë 


ë
  ë
 

ë? 

ñ   
   ñ
   ñ 

G


À Este evento se produce justo después de 5
À Aquí ya está disponible el estado de la vista
Ya podemos mirar qué valores tienen los controles y procesar la página
como corresponda
À La clase ) define una propiedad 5 ) @ T
Permite saber si es la primera vez que se llama a la página o si es que ya
ha sido devuelta por el cliente
Hay código que con ASP .NET, al mantener el estado, sólo necesitaríamos
ejecutar la primera vez
± Por ejemplo, obtener datos de una base de datos para poblar los controles

ñ   
   ñ
   ñ 


  
!
 

ë    ë
  ë 
ë? 

èè   
      

èè  
          
  
èè  
   

!ë

èè      

   

èè  
      

 
 
 



èè            
èè      
  
   
èè 
 
     





ñ   
   ñ
   ñ 


u

 m
Ya hemos visto los controles A& y
@. Veamos ahora, mediante ejemplos,
algunos otros de los que nos proporciona
ASP .NET.
u
  ,
 
À Hacer una página que, al pulsar un botón, actualice la
hora
Hágase uso de la clase <(%de la biblioteca de .NET
± Concretamente, <(%/D- devuelve la hora actual
Luego, llamar a sus propiedades -, 3 y  , y al método
( de cada una de ellas para añadirlas al campo A&

ñ   
   ñ
   ñ 


ñ

.$ T@

.$ T@
À La típica casilla de verificación
À Tiene un método .$ T que permite saber si está
seleccionada o no

ñ   
   ñ
   ñ 

GG
 

À Añadir, al ejemplo anterior, una casilla que permita


seleccionar si se quieren mostrar los segundos o no

ñ   
   ñ
   ñ 

G
ñ

 "
À Permiten crear una tabla de HTML:
ü&
ü
ü''ü#
ü'*ü#
(1, 1) (1, 2) (1, 3)
ü'Bü#
ü#
ü (2, 1) (2, 2) (2, 3)
ü*'ü#
ü**ü#
ü*Bü#
ü#
ü#&

ñ   
   ñ
   ñ 

G
ñ

 "
À ASP .NET proporciona los siguientes controles Web
básicos para crear una tabla (hay otros más complejos):
(&
(&,-
(&.

ñ   
   ñ
   ñ 

GM
 

À Crear dinámicamente una tabla para mostrar los


contenidos de dos colecciones como éstas:
  UV   - UV1>W 1
1=$1
1>&1
1- & 1
1A@Q 1
1?%31"!

  UVX - UV1'::*11*+++11'::81


1*++*11*+++11':881"!

ñ   
   ñ
   ñ 

G^

También podría gustarte