Línea de ejecución de un módulo HTTP Módulo HTTP Clases administradas Cada módulo implementa una interfaz específica Ejemplos: Administración de Estado o Seguridad Todas las llamadas se reenvían a la misma línea de ejecución Se agregan módulos por el Config.web Manejador de requerimientos Clases administradas Múltiples manejadores para una aplicación Pero sólo uno por URL
Configuración Conceptos y Arquitectura Arch. de configuración: Config.web Basado en XML, legible y modificable por “humanos” El archivo se mantiene en el mismo directorio que la aplicación Los cambios se detectan automáticamente Arquitectura de configuración jerárquica Afecta el subdirectorio actual y todos los dependientes Root Dir Sub Dir1 Sub Dir2 Config.web
Configuración Ejemplo Config.web
Configuración Configuración por defecto y personalizada El Config.web por defecto está en %windir%Microsoft.NETFrameworkVersion Conjunto estándar de configuración Capacidades de los navegadores, mensajes de error personalizados, etc. Configuración personalizada Extiende el conjunto de las estándares Implementando la interfaz: System.Web.Configuration.IConfigurationSectionHandler
Jerarquía System.Web.UI.WebControls (Gp:) ListControl
(Gp:) ListBox
(Gp:) CheckBoxList
(Gp:) Button
(Gp:) Table
(Gp:) WebControl
(Gp:) System.Web.UI.Control
(Gp:) System.Object
(Gp:) TextBox
(Gp:) …
(Gp:) …
Características Sintaxis y lenguajes soportados por ASP.NET Ejemplos Proceso de ejecución Assemblies Administración de Estado, Seguridad, y Manejo de Eventos
Presentación y lógica de negocios No hay más mezcla entre HTML y código ejecutable Mayor facilidad en el mantenimiento Separación completa entre la presentación y la lógica Sin código en los archivos HTML Archivos para diseñadores y Archivos para programadores Así y todo, todavía es posible mezclar HTML y código si es necesario .aspx .cs .vb o
Lenguajes soportados Visual Basic ¡VBScript es no administrado! JScript C# Nuevo lenguaje basado en componentes C++ Extensiones administradas para C++ Otros: Cobol, Smalltalk, … Que respeten el Common Language Specification (CLS)
Introducción Diferentes archivos, distinguibles por su extensión Archivos ASP.NET estándar: .aspx o .ascx Servicios Web : .asmx Archivos de código: .cs, .vb, … Configuración: Config.web Aplicaciones Web : Global.asax Son todos Archivos de texto La forma más rápida de comenzar Cambiar la extensión .asp por .aspx
Sintaxis de la página Directivas
Bloques de declaración de código [ líneas de código ] Código de conversión (Render)
Sintaxis de controles HTML
Sintaxis de la página Sintaxis de Controles Controles del Lado del servidor
Propiedades del control del servidor
Sub propiedad (del lado del cliente)
Vinculación a eventos del control
Sintaxis de la página Expresión de vinculación a datos
Marcadores de objetos del lado del servidor
Directivas de inclusión en el servidor
Comentarios en el servidor
Sub SubmitBtn_Click(Sender As Object, E As EventArgs) Message.Text = “Hi “ & Name.Text End Sub Name:
Title: Ejemplo ASP.NET
Title: Ejemplo ASP.NET
Title: Ciclo de ejecución .aspx IIS ASP.NET Runtime (Gp:) Instancia los controles
(Gp:) Analiza el .aspx
(Gp:) Genera la clase Page
Pide archivo aspx Respuesta Cliente Servidor
Title: Proceso de ejecución Body: Compilación, la primera vez que se pide una página Microsoft intermediate language (MSIL) Lenguaje de estilo Assembly Independiente de la CPU Provee una capa de independencia del hardware MSIL es ejecutado por el Motor Común de ejecución (common language runtime) Motor de ejecución común Compilador “justo en el momento” (JIT) Código administrado
Title: Administración de estados Body: Estado de una Aplicación Que es una “aplicación”? Archivos, páginas, módulos, y código ejecutable Un subdirectorio virtual y sus dependientes Variables de estado de la Aplicación Información global Reglas de Implementación Utilización de recursos del sistema Bloqueo y desbloqueo de la información global En entornos de múltiples hilos (“multithreaded”) se debe tener cuidado Se pierde el estado cuando el cliente se cierra No hay estado a través de una Granja de servidores
Title: Administración de estado Body: Estado de sesión ¿Que es una sesión? Restringida a una aplicación lógica Contexto en el cual un cliente se conecta con un servidor Funcionalidad Solicitud de identificación y calificación Almacenar Datos entre llamadas Eventos de Sesión Liberación de los datos de Sesión Proceso de estado en el Servidor .NET
Title: Seguridad Body: Motivos Prevenir el acceso a áreas del Servidor Web Registrar y almacenar información relevante de los usuarios Configuración de Seguridad Tag en el archivo Config.web Autenticación, Autorización, Impersonalización Seguridad de acceso al código ¿es éste realmente el código original del servidor? Proteger el servidor de “código malicioso”
Página anterior | Volver al principio del trabajo | Página siguiente |