ASP …
Curso – Taller
Active Server Pages
Introducción
El Camino Recorrido
• Centro Europeo de Investigaciones Nucleares (1989)
• Prototipo basado en texto – Hipertext’91
• Mosaic (1993)
• HTML - HTTP
• World Wide Web Consortium – W3C (1994)
• Documento Web estático y dinámico
– CGI – PHP – JSP – ASP
– javascript – applets – controles ActiveX
• XHTML – XML
• e-commerce, e-learning, e-government , e-…
Jujuy - 2008 2
Evolución de ASP
• ISAPI
• ASP
• ASP.NET
• ASP.NET AJAX
• ASP.NET 3.5 Extensions
Jujuy - 2008 3
Concepto Central en ASP.NET
• Plataforma de Desarrollo Web
• Modelo de Programación
Web Client
IIS ASP.NET
Applications
.NET
Framework
Operating System
Jujuy - 2008 4
Otras Cuestiones en ASP.NET
• Apariencia y lógica del negocio separadas.
• Utiliza proveedores de servicios.
• El código se compila la 1ra vez.
• Administración del estado.
• Múltiples lenguajes de programación.
• Actualización de servidores mientras ejecutan.
Jujuy - 2008 5
Arquitectura de .NET Framework
Microsoft .NET Framework
ASP.NET
Windows Forms
Web Forms Web Services
Services Framework
Base Data Debug ...
Common Language Runtime
System Services
Jujuy - 2008 6
Modelo de Aplicación Web
Unmanaged Code
HTTP Request
Host (IIS, Internet Explorer)
HTTP Runtime
HTTP Module
HTTP Module
Request Handler ...
Managed Code
Jujuy - 2008 7
HTTP Conceptos
• Especifica los mensajes que pueden enviar los clientes a los
servidores y las respuestas que obtienen.
• Utiliza una conexión TCP generalmente con el puerto 80 del
servidor
• Métodos: GET, HEAD, PUT, POST, OPTIONS
• Respuestas:
– 1xx Información: 100 servidor de acuerdo
– 2xx Éxito: 200 solicitud exitosa, 204 no hay contenido
– 3xx Redirección: 301 página movida, 304 caché válido
– 4xx Error del cliente: 403 prohibida, 404 no encontrada
– 5xx Error del servidor: 503 interno, 504 intentar más tarde
• Encabezados: User-Agent, Host, Cookie, Server, Last-
Modified, Location, Set-Cookie
Jujuy - 2008 8
HTTP y Ciclo de Ejecución .aspx
Client Server
IIS
Request .aspx file
ASP.NET Runtime
Code
Parse .aspx file behind
Generate page class
Instantiate controls
Response
Jujuy - 2008 9
Aplicación
• Aplicación Web:
– Archivos, páginas, módulos y código ejecutable
– Directorio virtual y subdirectorios
– Información global de la aplicación
– Utilización de los recursos del sistema
– Bloqueo y desbloqueo
– Ambiente de múltiples hilos de ejecución
Jujuy - 2008 10
Sesión
• Sesión Web:
– Restringida a una aplicación lógica
– Entorno de comunicación entre usuario y servidor
– Identificación y clasificación de solicitudes
– Almacenamiento de datos entre solicitudes
– Eventos
– Liberación de datos de sesión
Jujuy - 2008 11
Modelo de Eventos
• Eventos ASP.NET
– Se origina en el cliente, se gestiona en el servidor
– Se gestiona mediante un controlador de evento
• Argumentos de evento
– … void NombreEvento( object sender, EventArgs e)
Jujuy - 2008 12
Modelo de Eventos
event
Web Client message Server
parse message
event
call appropriate
event handler
event handler
response
Jujuy - 2008 13
Modelo de Eventos
• Ejemplo:
System.Web.UI.WebControls
Class: Button, public event Click
En ASP.NET
En C#
protected void btnNext_Click(Object S, ImageClickEventArgs e)
{
// ... Hacer algo ...
}
Jujuy - 2008 14
Tipos de Eventos
• Aplicación y Sesión
– Application_Start, Application_End
– Session_Start, Session_End
• Páginas y Controles
– DataBindig – Enlaza con una fuente de datos
– Dispose – Libera de la memoria
– Error – Excepción sin gestionar (solo páginas)
– Init – Inicializa el control
– Load - Carga el control
– PreRender – Antes de procesarse
– UnLoad – Descarga de la memoria
Jujuy - 2008 15
Ciclo Vital de la Página Web
Inicialización
Determina modo Preinicialización Personalización
Constructor Init,
de PostBack PreInit Inicializa temas
InitComplete
Procesa datos Carga página, Primera
NO
enviados control y estado Carga
SI
Precarga
PreLoad
Gestión envio Notifica
Primera Carga
de datos Cambios en el NO Controles hijos
Carga Load
PostBackEvent envío de datos
SI
Premostrar Gurada estado,
Carga completa PreRender, personalización, Mostrar
Controles hijos
LoadComplete PreRenderCom control, vista y Render
plete página
Desacargar
Unload
Jujuy - 2008 16
Configuración de Aplicaciones
• Archivo Web.Config
– XML
– Directorio de la aplicación
– Detecta cambios automáticamente
• Influencia jerárquica en directorios
– Unico archivo con
– Multiples archivos con allowOverride=“false“
Jujuy - 2008 17
Ejemplo de web.config
Jujuy - 2008 18
Jerarquía de Clases
• Namespaces
– Estructurados jerárquicamente
– Sintaxis con punto, agrupación lógica
– Ejemplo: System.Web.UI.WebControls.Button
• Permite implementar nuevos namespaces
– Ejemplo 1: MiSistema.Stock.Articulos
– Ejemplo 2: MiSistema.Ventas.Factura
Jujuy - 2008 19
Jerarquía de Clases
System.Object
System.Web.UI.Control
System.Web.UI. WebControl
WebControls
ListControl Table
ListBox Button
CheckBoxList
TextBox
...
...
Jujuy - 2008 20
Ensamblados
• El resultado de la compilación puede ser un
archivo .dll o .exe
• Ensamblados de uno o varios archivos
Assembly 1
Assembly 2
MyApp.dll
pic1.jpg
shared name
MyApp.dll
metadata
metadata
Jujuy - 2008 21
Ensamblados - Manifiesto
• Manifiesto de un ensamblado contiene:
– Lista de archivos en el ensamblado
– Información de versiones y nombres compartidos
• Se utiliza para:
– Localizar y cargar clases
– Instanciar objetos en memoria
– Resolver la referencia a métodos y campos
– Seguridad
Jujuy - 2008 22
Lenguaje C#
• Evolución de C y C++
• Type safety, versioning, envent, garbage
collection
• Ejemplo:
using System;
namespace miespaciodenombre
{
public class Hello {
public static void Main() {
Console.WriteLine(“Hello World!“);
}
}
}
Jujuy - 2008 23
Múltiples Sintaxis
• Directivas
• Bloques de código
[ líneas de código ]
• Bloques de enlace en línea
• Sintaxis en HTML
Jujuy - 2008 24