Anda di halaman 1dari 38

ASP.

NET
II Unidad. a) Arquitectura. b) Contenido dinmico. c) Controles del lado del servidor. d) Code behind 1.1 y 2.0. e) Ciclo de vida de la pagina. f) AutoEventWireUp. g) Directorios de compilacin. h) Shadow Copying.

a) Arquitectura de ASP.NET
Todas las paginas (.aspx) son transformadas en una

definicin de clases y compiladas a ensamblados.


Todos los ensamblados son cargados en runtime (tiempo

de ejecucion) en el worker process (w3wp.exe).


Las clases son creadas en demanda para responder

peticiones.

Como funciona.

Como podemos trabajar con ASP.NET


Construyendo clase adicionales. Extendiendo clases base. Controlando la generacin de clases desde los archivos

.aspx

Empecemos con un ejemplo sencillo.


1. Abrir el block de notas 2. Escribimos una pagina simple en nuestro documento.

Ahora
3. Guardamos el documento con extensin .aspx en el

directorio del IIS C:\inetpub\wwwroot\


4. Abrimos el internet explorer y escribimos

http://localhost/Nombre_del_Documento.aspx
5. Nos aparecer la pgina que acabamos de hacer, pero

esta vez, corriendo desde el IIS.

Veamos como funciona


Ahora que tenemos nuestra pgina, podemos ver

facilmente como funciona la transformacin de un documento .aspx a: 1. Una definicin de clase. 2. Un archivo de ensamblado. Para ello agregaremos algo llamado Directiva de pagina que le dice a el motor de asp.net que atributos van a ser usados por el compilador y el parser Como nota, las directivas son usadas para especificar atributos que son usados por las pginas o por los controles web a la hora de la compilacin

Al final debe quedar asi:

Si le damos actualizar al navegador:

Si vamos a esa ruta:

Nos encontraremos con las clases generadas y el ensamblado de la pagina, si lo abrimos podremos ver el cdigo que genera asp.net. ASP.NET hace esto cada vez que se realiza una peticin a un fichero con extensin .aspx. El Debug=True nos permite ver el cdigo fuente generado por el motor de asp.net.

b) Contenido dinmico.
En general, la idea de contenido dinmico en una pgina

web puede ser aplicada usando ASP.NET


En el ejemplo anterior usamos contenido dinmico para

presentar el nombre del ensamblado generado por el motor de ASP.NET


En este tema veremos como hacer contenido dinmico

en ASP.NET usando algo llamado Server Side Script.

Qu es Server Side Script?


Como su nombre en espaol lo indica, el Script del lado

del Servidor, son las instrucciones que ejecuta en motor de ASP.NET y que estn embebidas en la pgina .aspx, para posteriormente enviarla al cliente
Este cdigo no es visible para el destinatario final, es

compilado y ejecutado en el servidor

Cmo agrego este cdigo?


En el ejemplo anterior utilizamos una etiqueta para que

nos escribiera donde se encontraba el ensamblado:

Esta etiqueta es el equivalente a un printf() en C, o un

echo en php; lo que hace es mostrar en pantalla lo que este dentro de ella. Es una abreviacin del comando Response.Write() en cdigo C#.

Veamos un ejemplo:

Otra forma de agregar S.S.S.

c) Controles del lado del Servidor. (Server-Side-Controls)


Los controles del lado del servidor son aquellos

elementos marcados con el atributo runat=server


Los controles del lado del servidor son agregado a la

definicin de clases de la pgina como variables, cuyo nombre es el atributo ID del control.
Podemos entonces interactuar con estos controles

usando S.S.S. (Server-Side-Script) y manipularlos como cualquier objeto.

Como agrego estos controles:


Primero que nada debe existir una etiqueta form en el

documento, esto porque los controles de ASP.NET trabajan sobre formularios, ademas esta etiqueta form debe tener el atributo runat=server.
Estos controles en el documento .aspx no son mas que

otra etiqueta pero con ciertas diferencias. Todos los controles ASP.NET inician con el prefijo asp seguido de :.

Ejemplo:

En este ejemplo vemos que se agrega el runat=server a la etiqueta form y 2 botones, uno de HTML y otro de ASP. Si abrimos esta pgina en el navegador, y luego vemos el cdigo fuente de la pgina generada; la etiqueta asp se transforma en html, en este caso un simple input como el de arriba.

Manejando eventos
Con estos controles podemos manejar eventos del lado

del servidor, por medio de funciones.


Estas funciones tienes que ser de tipo protected y

adems pasar por parmetro un tipo EventArgs y un Object. Para asignar la funcin a un evento, se escribe el nombre del evento con el prefijo on en la etiqueta del S.S.C.(Server-Side-Control), por ejemplo, para el evento click, se deber escribir onclick en la etiqueta del S.S.C.

Ejemplo

Ejercicio
Realizar una calculadora que realice las operaciones, del

lado del servidor usando asp:textbox asp:button.


Debe permitir ingresar la operacin que deseo realizar

atreves de un asp:DropDown y las opciones asp:ListItem


Para cargar los elementos del asp:DropDown pueden

auxiliarse de el evento OnLoad de la pgina.

d) Code behind 1.1, 2.0


Hasta donde hemos visto, no hay separacin del cdigo

fuente y el HTML, o podemos llamarla, presentacin.


El code behind (cdigo de respaldo), permite esta

separacin, esto para que el cdigo sea mas legible y mas fcil de programar, y as evitar que el cdigo este embebido en la pgina.
En esta seccin veremos como hacer esta separacin

usando el Code behind 1.1 y el 2.0 y las diferencias entre ellos.

Code behind 1.1


Se basa en la capacidad de Herencia (Inherits) que

posee la directiva de pgina para crear una clase separada que herede de la clase Page.
Promueve la separacin del cdigo y presentacin. Las clases que son usadas como code-behind pueden

ser compiladas on-demand utilizando el atributo src de la directiva de pgina.

Agregando propiedades a la directiva de pgina.


La propiedades que se les agregara sern Inherits y

src.El valor para Inherits es el nombre de la clase donde se ubicara el cdigo.

Lo segundo ser crear un archivo nuevo para colocar el

cdigo fuente. Este archivo por convencin debe tener el nombre de la pgina, y terminar con extensin .cs

SegundaPagina.aspx.cs

SegundaPagina.aspx

Desventajas de Code-Behind 1.1


La manipulacin de los controles que estn en la pgina

desde el fichero de code-behind debe hacerse atreves de variables protected como se ve en la imagen.

Code behind 2.0


Con la aparicin de una nueva versin de .NET

Framework 2.0, surgen nuevas tecnologas, y una de ellas es la conicidad como clases parciales (partial class).
Esta permita la escritura de cdigo fuente distribuida en

varios ficheros.
Las clases parciales fueron las que permitieron la

creacin de la nueva versin de code-behind, esta vez, en lugar de heredar, se hara una clase parcial.

Nueva propiedad de directiva Page


Con esta versin de code-behind agrego una nueva

propiedad, pero tambin se puede decir que se cambio. Ahora en lugar de escribir src, se usara codefile
Entonces si queremos llevar el ejemplo de 1.1 a 2.0

empecemos por cambiar el src por codefile, en nuestra pagina

SegundaPagina.aspx.cs
Ahora emplearemos el uso de la clase parcial en nuestro

fichero de cdigo fuente.

Ventajas del code-behind 2.0


A diferencia del code-behind 1.1, en el 2.0 no hay que

declarar los controles que deseamos utilizar en nuestro cdigo fuente como protected, esta ventaja es gracias al uso de las clases parciales, donde hay una clase donde ya estn declarado los controles
Otra ventaja de usar clases parciales es poder seguir

extendiendo la clase entre ficheros, esto es lo que hace visual studio, creando una clase donde esta contenida la definicin de los controles.

e) Ciclo de vida de la pgina


Cuando una pgina ASP.NET es ejecutada, esta

atraviesa el ciclo de vida, en la cual ejecuta una seria de pasos de procesamiento.


Inicializacin, instanciacin de controles, restauracin y

mantenimiento del estado, corriendo manejador de eventos y rende rizando la pgina


Es importante estar familiarizado con el ciclo de vida de

una pgina, para que de esta manera podamos inicializar controles, asignar propiedades o datos usando el ViewState y ejecutar acciones de los controles.

AutoEventWireup
Este atrubuto asigna automticamente a los mtodos con

la sintaxis Control_Event , su respectivo evento.


Estos mtodos deben ser privados, tener como

parmetros un Object que hace referencia al objeto que esta ejecutando la accion, y tambin un EventArgs, que son los argumentos de la accin.
Ejemplo:

Metodos AutoEventWireUp

Directorios de compilacin
ASP.NET, trae definidas carpetas de compilacin, estas

carpetas permiten aadir archivos y carpetas sin necesidad de volver a generar toda la aplicacin.
Folder /App_Browsers /App_Code Contenido Archivos XML con extensin .browsers Archivos de cdigo fuente Funcin Describe las capacidades de cada Navegador Web. Los archivos de cdigo fuente son compilados en un ensamblado Compilado en un ensamblado diferente Proxy de WebService No hay compilacin en esta carpeta, utiliza shadow copy

/App_Themes /App_WebReferences /Bin

.css .skin , imagenes .wsdl .xsd .disco .discomap .dll Archivos ensamblados

Shadow Copying
Es una tcnica que utiliza el directorio de compilacin

Bin donde podemos fcilmente remplazarlos por una nueva versin, sin necesidad de detener el servidor, o recompilar la aplicacin.
Se basa en el hecho de que cada vez que se hace una

peticin a una pgina .aspx esta genera su ensamblado y si tiene alguna dependencia del directorio Bin, lo copia al directorio temporal donde esta su mismo ensamblado.

Anda mungkin juga menyukai