Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introduccion A ASP .NET 2.0
Introduccion A ASP .NET 2.0
0
Comercio Electrnico
Universidad de Oviedo
Pginas estticas
Al principio, el Web estaba poblado nicamente por pginas estticas
El servidor Web simplemente localizaba el documento solicitado en el URL y se lo entregaba al cliente
Pero no permitira, por ejemplo, crear un sitio de comercio electrnico donde se pueda comprar, o el de un banco
Es necesario acceder a datos en el servidor y crear una pgina a peticin
Comercio Electrnico (EUITIO). Curso 2007-2008 2007-
Modo de funcionamiento
El esquema de funcionamiento de las pginas dinmicas es siempre similar independientemente de en qu se hayan desarrollado stas
CGI, ASP, Servlets/JSP
El servidor Web detecta una peticin de una pgina dinmica y se la pasa al programa necesario
Podra ser una extensin del servidor O bien un programa completamente independiente
Este programa es quien sabe cmo interpretar el cdigo de la pgina para devolver el HTML apropiado
Comercio Electrnico (EUITIO). Curso 2007-2008 2007-
Introduccin a ASP
Antes de empezar a estudiar ASP .NET, echemos un vistazo a la versin anterior de la tecnologa de pginas dinmicas de Microsoft.
Requisitos de software
Uno de los inconvenientes de ASP es que es dependiente de un servidor Web concreto
El Internet Information Server (IIS) de Microsoft
Sintaxis general
ASP, al igual que las JSP de Java, se basa en mezclar instrucciones de programacin en nuestras pginas HTML El motor de ASP procesar dichas instrucciones dinmicamente y obviar el HTML
Esto permite generar HTML dinmicamente, aadiendo lgica a nuestras pginas
Para ello, hay que encerrar el cdigo ASP entre los smbolos <% %>
Comercio Electrnico (EUITIO). Curso 2007-2008 2007-
Lenguaje de programacin
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 implementacin de ECMAScript que a su vez es el estndar de JavaScript) JavaScript
10
ASP .NET
Es mucho ms que la siguiente versin de ASP. Realmente, tiene poco que ver con el ASP tradicional; supone un rediseo completo, integrado en la plataforma .NET, y hay que cambiar la forma de hacer las cosas para adaptarnos a la nueva filosofa.
Framework de pginas
Pgina Web Forms (.aspx + fichero de clases) Pgina Web Forms (.aspx + fichero de clases)
ADO .NET
Proveedores de datos rdenes de datos Datasets
13
15
16
Ejecutar el ejemplo
Cpiese al directorio C:\Inetpub\wwwroot C:\Inetpub\
O bien a algn subdirectorio o directorio virtual
Y tecleamos en el navegador:
http://localhost/HolaMundo.aspx
17
Formularios Web
Veamos un ejemplo de formularios Web en HTML, para entender luego qu es lo que hace ASP .NET y cmo se relaciona con stos.
Formularios
Son la forma que hay en HTML de enviar datos
19
20
Formularios
Esos datos se envan al URL especificado en el atributo action de form Hay dos mtodos de envo
GET
Los datos se codifican en el propio URL
POST
Viajan ocultos en el propio mensaje HTTP
Es lo habitual
21
22
24
25
26
27
CodeCode-behind
Es una de las mejores caractersticas de ASP .NET
Y que es an mejor en ASP .NET 2.0 con las clases parciales
Permite separar el cdigo HTML de la lgica de programacin Adems, no hay que esperar a que el servidor web nos d los errores al mostrar la pgina, sino que podemos compilar el cdigo como cualquier otra clase
Y, con Visual Studio 2005, incluso depurar
Comercio Electrnico (EUITIO). Curso 2007-2008 2007-
28
CodeCode-behind
Pulsando en Default.aspx con el botn secundario y seleccionando View Code obtenemos:
29
Clases parciales
Ocultan gran parte del cdigo generado automticamente por Visual Studio 2005
Por ejemplo, aunque tenemos acceso a los controles de ASP .NET definidos en la pgina, no aparecen aqu como atributos de la clase Lo mismo con las suscripciones a eventos
Como veremos, se llama automticamente a los manejadores de eventos, sin que veamos la asociacin explcita entre el evento y su manejador, como ocurra en ASP .NET 1.0
30
Y los estndares?
Con ASP .NET 2.0 es posible generar cdigo XHTML Strict vlido Para ello, es necesario hacer lo siguiente:
Aadir al sitio web un fichero de configuracin (Web Web configuration file Web.config file) Aadir esta seccin:
<xhtmlConformance mode="Strict"/>
31
El !DOCTYPE
Tambin es necesario cambiar el !DOCTYPE que nos genera por ste:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
32
Fichero Default.aspx
Representa la pgina en s
El cdigo HTML junto con los controles de ASP .NET
Lo renombraremos apropiadamente
Por ejemplo, HolaMundo.aspx
33
34
Comentarios
<asp:Label> es un Control Web de ASP .NET
Uno de los muchos incluidos en el Framework .NET
Todos los controles Web de ASP .NET deben estar dentro de un formulario que tambin tenga el atributo runat=server
35
Probar la pgina
Con Build Build Web Site compilamos toda la aplicacin La ejecutamos en el men Debug Start Without Debugging
36
Depuracin
Si queremos depurar (Debug Start Debugging) (Debug Debugging) Y activar la depuracin en el fichero de configuracin
Nos pregunta si quiere que lo haga l automticamente
37
Resultado de la ejecucin
38
39
Manejo de eventos
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 cmo hacer que al pulsar un botn en la pgina cambie el texto del mensaje
40
Eventos
Formas de aadir los manejadores de eventos: eventos:
Desde el cdigo HTML Desde la vista de diseo
Haciendo doble clic sobre el control se generar el manejador para el evento predefinido del control Tambin podemos crear cualquier otro manejador en la ventana de propiedades
41
Aadir un botn
... <form method=post runat=server> <asp:Label id=Mensaje text=Hola, Mundo! runat=server/><br/> <asp:Button onclick="CambiarSaludo" text="Plsame runat="server"/> </form> ...
42
...
43
Comentarios
Le hemos dado un identificador (id) a la etiqueta (Label) para poder acceder a ella por programa
Antes se lo daba ASP .NET automticamente por nosotros
Una vez pulsado el botn (el texto cambiar), qu ocurre si actualizamos la pgina?
Comercio Electrnico (EUITIO). Curso 2007-2008 2007-
44
45
Eventos de la pgina
Una pgina ASP .NET pasa por una serie de estados a lo largo de su ciclo de vida
1. 2. 3. 4.
Se inicializa la pgina
Se crean los objetos de los controles y se establecen los manejadores de eventos
Se procesa el estado de la vista (_VIEWSTATE), poblando los controles con los ltimos datos que tuvieran Se lanza el evento Load
Aqu es donde comenzaremos a escribir la lgica de nuestra pgina
Se llama a los manejadores de eventos correspondientes a las acciones de usuario que hayan tenido lugar
47
Eventos de la pgina
5. 6.
Se salva el estado de la vista Se muestra la pgina
48
Init
Es el primer evento que tiene lugar ASP .NET crea todos los controles de la pgina Visual Studio tambin aadir aqu los manejadores de los eventos de usuario que hayamos definido
override protected void OnInit(EventArgs e) { InitializeComponent(); base.OnInit(e); } private void InitializeComponent() { this.Load += new System.EventHandler(this.Page_Load); } Comercio Electrnico (EUITIO). Curso 2007-2008 2007-
49
50
Load
Este evento se produce justo despus de Init Aqu ya est disponible el estado de la vista
Ya podemos mirar qu valores tienen los controles y procesar la pgina como corresponda
51
52
54
Control CheckBox
La tpica casilla de verificacin Tiene un mtodo Checked que permite saber si est seleccionada o no
55
Ejercicio
Aadir, al ejemplo anterior, una casilla que permita seleccionar si se quieren mostrar los segundos o no
56
Controles de tabla
Permiten crear una tabla de HTML:
<table> <tr> <td>(1, <td>(1, <td>(1, </tr> <tr> <td>(2, <td>(2, <td>(2, </tr> </table> 1)</td> 2)</td> 3)</td>
(1, 1) (2, 1)
(1, 2) (2, 2)
(1, 3) (2, 3)
57
Controles de tabla
ASP .NET proporciona los siguientes controles Web bsicos para crear una tabla (hay otros ms complejos):
Table TableRow TableCell
58
Ejercicio
Crear dinmicamente una tabla para mostrar los contenidos de dos colecciones como stas:
private string[] peliculas = new string[] { "El ro de la vida", "You're the one", "El abuelo", "Historia de un beso", "La leyenda de Bagger Vance", "Un lugar llamado Milagro" }; private string[] ao = new string[] { "1992", "2000", "1998", "2002", "2000", "1988" };
59