Software deComunicaciones
2008-2009
ASP .NET
Diego CarreroVíctor Estaban
Carlos MarínIrene Sánchez
Departamento de Ingeniería Telemática
Universidad Carlos III de Madrid
2
Software deComunicaciones
2008-2009
Contenido
• Introducción
• Internet Information Server (IIS)I
• .NET Framework
• Etiquetas ASP
• Code-Inline vs Code-Behind
• Procesado de Páginas ASP .NET
• Controles de Usuario
• Controles del Lado del Servidor
• Control de Estado
• Referencias
3
Software deComunicaciones
2008-2009
IntroducciónASP .NET
• ASP.NET es un framework para aplicaciones web desarrollado y comercializado por Microsoft.– Construir sitios web dinámicos.– Aplicaciones web.– Servicios web XML.
• Tecnología sucesora de la tecnología Active Server Pages (ASP).
• Permite escribir código ASP.NET usando cualquier lenguaje admitido por el .NET Framework
4
Software deComunicaciones
2008-2009
Internet Information Server (IIS)Definición
• Componente de Windows que convierte un sistema Windows en un servidor de Internet o Intranet (Servidor Web).
• Los servicios que ofrece entre otros son: FTP, SMTP, NNTP y HTTP/HTTPS.
• Basado en módulos:
– Microsoft incluye los de Active Server Pages (ASP) y ASP.NET.
– Capacidad para incluir otros módulos como PHP o Perl.
5
Software deComunicaciones
2008-2009
Internet Information Server (IIS)Directorio Virtual
• Una aplicación web solo existe si se localiza en lo que un IIS determina como directorio virtual.
• Recurso compartido, identificado con un alias que representa la localización física del servidor.
6
Software deComunicaciones
2008-2009
‒ IIS 5.1: Windows XP Professional
‒ IIS 6.0: Windows Server 2003 y Windows XP Profesional x64 Edition
‒ IIS 7.0: Windows Vista y Windows Server 2008
• Alternativa en Linux: Apache2 + Mono
‒ Mono es proyecto multiplataforma, de código abierto para desarrollar .NET Framework.
Internet Information Server (IIS)Versiones
7
Software deComunicaciones
2008-2009
• .NET Framework se puede describir como un pequeño sistema operativo virtual que corre sobre Windows.
• Formado por dos componentes: the .NET Class Library and the Common Language Runtime (CLR).
.NET Framework
8
Software deComunicaciones
2008-2009
• Lenguaje que reune las ventajas de lenguajes como C, C++ y Visual Basic en uno solo.
• CLR es el verdadero núcleo del framework de .NET, entorno de ejecución en el que se cargan las aplicaciones desarrolladas en los distintos lenguajes.
.NET FrameworkCommon Language Runtime (CLR)C
9
Software deComunicaciones
2008-2009
• Librería incluida en el .NET Framework formada por cientos de tipos de datos que permiten acceder a los servicios ofrecidos por el CLR y a las funcionalidades más frecuentemente usadas a la hora de escribir programas.
.NET FrameworkLibrería de Clase Base (BCL)L
Espacio de nombre s De scripción
System
System.Co lle ctio ns
System.Data
System.IO
System.Ne t Re alizació n d e co municacio nes e n red .
System.Re fle ctio n
System.Runtime .Re mo ting Acce so a ob je to s re mo to s.
System.Se curity
System.Thre ad ing Manip ulació n d e hilo s.
System.We b .UI.We bCo ntro ls
System.Wind ows.Fo rms
System.XML Acce so a dato s e n fo rmato XML.
Tip o s muy fre cue nte me nte usad o s, co mo lo s lo s tipo s b ásico s, tab las, e xce p cione s, fe chas, núme ro s ale ato rio s, reco le cto r d e b asura, e ntrad a/salid a en co nso la, e tc.Co le ccione s d e d ato s d e uso co mún co mo p ilas, co las, l is tas, d icc io narios, e tc.Manip ulació n d e base s d e d ato s. Fo rman la d e no minada arq uite ctura ADO.NET.Manip ulació n d e fiche ro s y o tro s flujo s d e d ato s.
Acce so a lo s me tad ato s q ue aco mp añan a lo s mó d ulo s d e có d igo .
Acce so a la p o lítica d e se g urid ad e n q ue se b asa e l CLR.
Cre ació n d e inte rface s de usuario b asad as en ve ntanas p ara ap licacio ne s Web .Cre ació n d e inte rface s de usuario b asad as en ve ntanas p ara ap licacio ne s e stánd ar.
10
Software deComunicaciones
2008-2009
Etiquetas en ASP
● ASP utiliza los delimitadores <% y %> para enmarcar los comandos. Dentro de los delimitadores puede incluir cualquier comando válido dentro del lenguaje de secuencia de comandos que esté utilizando.
● La directiva de resultado de ASP <%= expresión %> presenta el valor de una expresión.
● La directiva de proceso de ASP <%@ palabra clave %> ofrece a ASP la información que necesita para procesar un archivo .asp.
11
Software deComunicaciones
2008-2009
• Algunas de las palabras clave para la directiva anterior son:– La palabra clave LANGUAGE establece el lenguaje
principal de secuencia de comandos de la página. – La palabra clave ENABLESESSIONSTATE
especifica si un archivo ASP utiliza el estado de la sesión.
– La palabra clave CODEPAGE establece la página de códigos (la codificación de caracteres) del archivo .asp.
– La palabra clave LCID establece el identificador de configuración regional del archivo.
– La palabra clave TRANSACTION especifica que el archivo .asp se ejecutará dentro del contexto de una transacción.
Etiquetas en ASP
12
Software deComunicaciones
2008-2009
Code-Inline vs Code-Behind
• Cuando usamos Code-Inline el manejador de eventos para nuestra página se coloca en la misma página que contiene los controles de servidor
• Cuando usamos Code-Behind, el código que maneja los eventos se sitúa en un fichero que está separado físicamente de la página que contiene los controles de servidor y las marcas. Esta clara diferenciación entre código y contenido es útil cuando necesitamos mantener éstos separados, como cuando más de una persona está involucrada en la creación de la aplicación.
13
Software deComunicaciones
2008-2009
• Cuando usamos Code-Behind debemos indicar en nuestra página cual es el archivo que manejará los eventos mediante el atributo Inherits:
<%@ page language="VB" CodeFile="CodeBehind_vb.aspx.vb" Inherits="CodeBehind_vb_aspx" %>
Code-Inline vs Code-Behind
14
Software deComunicaciones
2008-2009
Procesado de Páginas ASPX
CLIENTE
SERVIDOR
1. Petición aspx
4. Instanciación del Proceso
5. Respuesta html
2. Generación
3. Compilación (la primera vez)(
15
Software deComunicaciones
2008-2009
Controles de UsuarioDefinición
• Componentes reutilizables definidos por el usuario
• Archivo .ascx que puede contener– Elementos del interface de usuario– Código para controlarlos
• Para registrar el control de usuario<%@ Register TagPrefix=“pfx” TagName=“control” src=“file.ascx />
– Directiva de Página @Register• Establece prefijo y nombre para el control
• Para utilizar el control<pfx:control runat=“server” atribute1=“true” />
• Una misma funcionalidad se puede reutilizar en varias páginas aspx
16
Software deComunicaciones
2008-2009
Controles del Lado del ServidorDefinición
• Permiten obtener presentaciones y comportamientos complejos
• Componentes de bloques construidos
• Fáciles de personalizar
• Tipos de controles– Controles HTML– Controles estándar– Controles de validación– Controles de navegación– Controles de inicio de sesión– …
17
Software deComunicaciones
2008-2009
Controles del Lado del ServidorControles HTML vs Controles WEB
• Controles HTML<input type=“password” ID=“password” runat=“server”/>
– Representación de elementos HTML estándar– Limitados por las restricciones de HTML– Cada control se traduce en una etiqueta HTML– Dos tipos de eventos:
• Evento ServerClick• Evento ServerChange
• Controles WEB<asp:TextBox ID=“textBox” runat=“server” />
– Modelo de objetos más rico– Mayor variedad de propiedades y de eventos
18
Software deComunicaciones
2008-2009
Controles del Lado del Servidor Eventos
• Control de formularios dirigido por eventos– Acciones del usuario generan eventos en el código
• Asociación de controles mediante atributos de control
• En la página aspx<asp:Button ID=“submitBt” Text=“Submit” OnClick=“Access”
runat=“server” />
• En la página code-behind– C#protected void Access(Object sender, EventArgs e) {
//Funcionalidad del event-handler}
– Visual BasicSub Access(Obj As Object, e As EventArgs)S
//Funcionalidad del event-handlerEnd Sub
19
Software deComunicaciones
2008-2009
Control de EstadoEstado de la Aplicación
• Colección de variables definidas por el usuario
• COMPARTIDAS por TODAS las instancias de la aplicación
• Inicialización:– Evento Application_OnStart
• Destrucción:– Finalización última instancia
20
Software deComunicaciones
2008-2009
Control de EstadoEstado de la Sesión
• Colección de variables definidas por el usuario
• ÚNICAS para cada instancia de la aplicación. Se identifican mediante– Cookie con ID de la sesión– Codificación de la ID de la sesión en la URL
• Se almacenan en la colección Session– Añadir elemento a la sesión
Session.Add("login", "userName");
– Recuperar elemento de la sesiónString login = (String)Session["login"];
• Destrucción:– Tras tiempo de inactividad– Finalización de la sesión
21
Software deComunicaciones
2008-2009
Control de EstadoEstado de la Vista
• Mantenimiento del estado de los controles de la página
• Campo oculto __VIEWSTATE en el formulario
• El explorador codifica el valor de las variables y lo envía en cada petición
• El servidor decodifica el estado individual de los controles
• El servidor procesa la petición y devuelve el valor de las variables para mostrarlas una vez se construye la página
22
Software deComunicaciones
2008-2009
Referencias
• Payne C.: “Aprendiendo ASP .NET”. Ed. Prentice Hall, 1ª edición. 2002.
• Meyne H and Davis S.: “Developing Web Applications with ASP .NET and C#”. Ed.
John Wiley. 2002.
• Steven A. Smith: “ASP.NET by Example”. Ed. Que. 2001
• The Official Microsoft IIS Site
– http://www.iis.net/
• Mono Project: cross platform, open source .NET development framework.
– http://www.mono-project.com/
• .NET Framework 3.5
– http://msdn.microsoft.com/es-es/library/w0x726c2.aspx
• ASP .NET de Wikipedia:
– http://es.wikipedia.org/wiki/ASP.NET