asp - departamento de ingeniería telemática - uc3m€¦ ·  · 2009-01-1210 software de...

22
Software de Comunicaciones 2008-2009 ASP .NET Diego Carrero Víctor Estaban Carlos Marín Irene Sánchez Departamento de Ingeniería Telemática Universidad Carlos III de Madrid

Upload: dinhque

Post on 12-May-2018

216 views

Category:

Documents


2 download

TRANSCRIPT

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