ASP NET Daniel A Seara Director Regional MSDN

  • Slides: 50
Download presentation
ASP. NET Daniel A. Seara Director Regional MSDN Buenos Aires – ARGENTINA NDSoft

ASP. NET Daniel A. Seara Director Regional MSDN Buenos Aires – ARGENTINA NDSoft

Objetivos • Introducción a ASP. NET ü Conceptos y Arquitectura ü Características de ASP.

Objetivos • Introducción a ASP. NET ü Conceptos y Arquitectura ü Características de ASP. NET ü ASP. NET Avanzado • ASP. NET y el Microsoft®. Net Framework

Contenido • Sección 1: Generalidades • Sección 2: Arquitectura ü El. NET Famework y

Contenido • Sección 1: Generalidades • Sección 2: Arquitectura ü El. NET Famework y la configuración de ASP. NET • Sección 3: Características de ASP. NET ü Administración de estado, Seguridad, y Modelo de Eventos • Sección 4: ASP. NET Avanzado ü Web Forms ü Trabajando con Datos ü Migrando ASP a ASP. NET

Sección 1: Generalidades • “Mirando atrás. . . “ • Conceptos centrales de ASP.

Sección 1: Generalidades • “Mirando atrás. . . “ • Conceptos centrales de ASP. NET

Mirando atrás: Active Server Pages • ¿Que es ASP? ü Tecnología de scripting del

Mirando atrás: Active Server Pages • ¿Que es ASP? ü Tecnología de scripting del lado del servidor ü Archivos conteniendo HTML y código de scripting ü Acceso a través de peticiones HTTP ü El código es interpretado en el servidor • ¿Que se puede hacer con ASP? ü Creación rápida y fácil de aplicaciones Web simples ü Generar contenido Web dinámico ü Generar código de validación del lado del cliente ü Acceder a componentes COM para extender la funcionalidad ØBases de datos

¿Y qué hay de malo? • Mucha “mezcla” de código y HTML de presentación

¿Y qué hay de malo? • Mucha “mezcla” de código y HTML de presentación • El código ASP se interpreta disminuyendo el rendimiento • El código de scripting es poco específico ü Microsoft JScript® ü Microsoft Visual Basic® Scripting Edition (VBScript) • Compatibilidad con los navegadores • No hay administración real del estado ü No se puede compartir estados en una “granja de servidores” ü El estado se pierde cuando el IE falla • Sólo se pueden actualizar archivos cuando el servidor no está en actividad

Conceptos centrales de ASP. NET • Plataforma de desarrollo de Web • Nuevo modelo

Conceptos centrales de ASP. NET • Plataforma de desarrollo de Web • Nuevo modelo de programación Cliente Web IIS Aplicaciones ASP. NET Framework Sistema Operativo

Conceptos centrales de ASP. NET • Separar presentación de lógica del negocio • Usar

Conceptos centrales de ASP. NET • Separar presentación de lógica del negocio • Usar servicios provistos por el. NET Framework • El código es compilado la primera vez que se accede a una página • Administración de estado • Utilización de cualquier lenguaje ü Integración entre varios • ¡Actualizar archivos mientras se está ejecutando la aplicación!

Sección 2: Arquitectura • • La Arquitectura del. NET Framework Modelo de Aplicación Web

Sección 2: Arquitectura • • La Arquitectura del. NET Framework Modelo de Aplicación Web Configuración Jerarquía de Clases

El. NET Framework- Arquitectura. NET Framework ASP. NET Web Forms Windows Forms Servicios Web

El. NET Framework- Arquitectura. NET Framework ASP. NET Web Forms Windows Forms Servicios Web Marco de Servicios Base Datos Depuración Common Language Runtime Servicios del Sistema . . .

Modelo de Aplicación Web Código no administrado HTTP Request Host (IIS, Internet Explorer) HTTP

Modelo de Aplicación Web Código no administrado HTTP Request Host (IIS, Internet Explorer) HTTP Runtime Módulo HTTP Manejador de Requerimientos. . . Código administrado

HTTP Runtime • Código administrado ü Se ejecuta en un proceso no administrado •

HTTP Runtime • Código administrado ü Se ejecuta en un proceso no administrado • Permite 100% de disponibilidad ü Procesa asincrónicamente todas llamadas ü Multithreaded • Reemplaza ISAPI ü Internet Server Application Programming Interface

Línea de ejecución de un módulo HTTP • Módulo HTTP ü Clases administradas ü

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 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 1/3 • Conceptos y Arquitectura ü Arch. de configuración: Config. web Ø Basado

Configuración 1/3 • 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 Config. web Sub Dir 1 Sub Dir 2

Configuración 2/3 • Ejemplo Config. web <configuration> <configsections> <add names=“httpmodules“ type=“System. Web. Config. http.

Configuración 2/3 • Ejemplo Config. web <configuration> <configsections> <add names=“httpmodules“ type=“System. Web. Config. http. Modules. Config. Handler“/> <add names=“sessionstate“ type=“. . . “/> </configsections> <httpmodules> <!--- Subelementos de http --> </httpmodules> <sessionstate> <!--- Subelementos de estado de sesión --> </sessionstate> </configuration>

Configuración 3/3 • Configuración por defecto y personalizada ü El Config. web por defecto

Configuración 3/3 • 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. IConfiguration. Section. Handler

Jerarquía System. Object System. Web. UI. Control Web. Control System. Web. UI. Web. Controls

Jerarquía System. Object System. Web. UI. Control Web. Control System. Web. UI. Web. Controls List. Control Table List. Box Button Check. Box. List. . . Text. Box. . .

Sección 3: características • Sintaxis y lenguajes soportados por ASP. NET ü Ejemplos •

Sección 3: 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

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. cs. aspx o. vb

Lenguajes soportados • Visual Basic ü ¡VBScript es no administrado! • JScript • C#

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: Ø.

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 1/3 • Directivas ü <%@ Page language=“VB“%> • Bloques de

Sintaxis de la página 1/3 • Directivas ü <%@ Page language=“VB“%> • Bloques de declaración de código ü <script runat=“server“ [language = . . . ]> [ líneas de código ] </script> • Código de conversión (Render) ü <% %> [código en línea o expresión] • Sintaxis de controles HTML ü <HTMLtag runat=“server“ [attribute = . . . ]> </HTMLtag>

Sintaxis de la página 2/3 • Sintaxis de Controles ü Controles del Lado del

Sintaxis de la página 2/3 • Sintaxis de Controles ü Controles del Lado del servidor Ø <ASP: Text. Box id=“My. Tb 1“ runat=“server“> ü Propiedades del control del servidor Ø <ASP: Text. Box maxlength=“ 80“ runat=“server“> ü Sub propiedad (del lado del cliente) Ø <ASP: Label font-size=“ 14“ runat=“server“> ü Vinculación a eventos del control Ø <ASP: Button On. Click=“My. Click“ runat=“server“>

Sintaxis de la página 3/3 • Expresión de vinculación a datos ü <%# Expresión

Sintaxis de la página 3/3 • Expresión de vinculación a datos ü <%# Expresión de vinculación %> • Marcadores de objetos del lado del servidor ü <object id=“id“ runat=“server“ identifier=“Nombre“> • Directivas de inclusión en el servidor ü <!-- #include Tipo = Archivo --> • Comentarios en el servidor ü <%-- Comentario --%>

Ejemplo ASP. NET 1/2 <html> <script language=“VB“ runat=server> Submit. Btn_Click(Sender As Object, E As

Ejemplo ASP. NET 1/2 <html> <script language=“VB“ runat=server> Submit. Btn_Click(Sender As Object, E As Event. Args) Message. Text = “Hi “ & Name. Text End Sub </script> <body> <form action=“thisfile. aspx“ method=post runat=server> <h 3> Name: <asp: textbox id=“Name“ runat=server/> <asp: button type=submit text=“Look. Up“ On. Click=“Submit. Btn_Click“ runat=server/> <p> <asp: label id=“Message“ runat=server/> </form> </body> </html>

Ejemplo ASP. NET 2/2

Ejemplo ASP. NET 2/2

Ciclo de ejecución. aspx Cliente Servidor IIS Pide archivo aspx ASP. NET Runtime Analiza

Ciclo de ejecución. aspx Cliente Servidor IIS Pide archivo aspx ASP. NET Runtime Analiza el. aspx Genera la clase Page Instancia los controles Respuesta

Proceso de ejecución • Compilación, la primera vez que se pide una página •

Proceso de ejecución • 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

Administración de estados 1/2 • Estado de una Aplicación ü Que es una “aplicación”?

Administración de estados 1/2 • 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

Administración de estado 2/2 • Estado de sesión ü ¿Que es una sesión? ØRestringida

Administración de estado 2/2 • 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

Seguridad 1/3 • Motivos ü Prevenir el acceso a áreas del Servidor Web ü

Seguridad 1/3 • Motivos ü Prevenir el acceso a áreas del Servidor Web ü Registrar y almacenar información relevante de los usuarios • Configuración de Seguridad ü Tag <Security> 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”

Seguridad 2/3 • Autenticación ü Validar credenciales del usuario ü Utilizar identidades de autenticación

Seguridad 2/3 • Autenticación ü Validar credenciales del usuario ü Utilizar identidades de autenticación ü Tipos de Autenticación Ø Windows, integrada con IE 5. 0 Ø Passport, servicios centralizados provistos por Microsoft Ø Cookie, adjunto en el requerimiento • Autorización ü Determinar cuando es permitido un requerimiento ü Autorización por Archivo y por URL

Seguridad 3/3 • Impersonalización ü IE autentica al “usuario” ü Se pasa un “token”

Seguridad 3/3 • Impersonalización ü IE autentica al “usuario” ü Se pasa un “token” a la aplicación ASP. NET ü ASP. NET lo impersona ü El acceso se permite de acuerdo a las asignaciones por NTFS • Seguridad de Acceso al código ü Característica del. NET Famework ü Verifica la identidad del código y su origen ü Especifica las operaciones que el código tiene permitido ejecutar

Modelo de Eventos 1/2 • Manejo de eventos a nivel de la Aplicación ü

Modelo de Eventos 1/2 • Manejo de eventos a nivel de la Aplicación ü Web Forms • Modelo de delegados ü Conecta un manejador de evento con un receptor ü Delegados simples y múltiples • Los Delegados de eventos son “Multicast” • Enlace de Evento ü Registra un manejador con el que envía el evento

Modelo de Eventos 2/2 • Evento disparado en el cliente, pero controlado en el

Modelo de Eventos 2/2 • Evento disparado en el cliente, pero controlado en el servidor Cliente Web evento mensaje Server Analiza el mensaje Llama al manejador apropiado manejador respuesta

Ejemplos • Ejemplo ü System. Web. UI. Web. Controls Clase Button, evento público Click

Ejemplos • Ejemplo ü System. Web. UI. Web. Controls Clase Button, evento público Click ü System. Web. UI Clase Page, evento público Load • Eventos en C# ASP. NET <asp: Image. Button id=btn. Next runat=“server“ imageurl=“. . . “ onclick=“btn. Next_Click“/> C# protected void btn. Next_Click(Object S, Image. Click. Event. Args E) { [. . . do something. . . ] }

Sección 4: ASP. NET Avanzado • • • Web Forms Controles del Servidor Trabajando

Sección 4: ASP. NET Avanzado • • • Web Forms Controles del Servidor Trabajando con Datos Aplicaciones Web Migrando de ASP a ASP. NET

Generalidades de Web Forms thisfile. aspx. . . <asp: Button id=“Look. Up“ On. Click=„Submit.

Generalidades de Web Forms thisfile. aspx. . . <asp: Button id=“Look. Up“ On. Click=„Submit. Btn_Click“ />. . . thisfile. cs Submit. Btn_Click() {. . . 1/2

Generalidades de Web Forms 2/2 • Crear páginas Web Programables ü Usando cualquier lenguaje.

Generalidades de Web Forms 2/2 • Crear páginas Web Programables ü Usando cualquier lenguaje. NET ü Provee un rico conjunto de controles del lado del servidor ü Modelo de Eventos de los Web Forms • Corren en cualquier navegador • Partes visuales y lógicas de la Aplicación • System. Web. UI. Web. Controls

Ejemplos Web Forms • thisfile. cs: Protected void Submit. Btn_Click(Object S, Event. Args E)

Ejemplos Web Forms • thisfile. cs: Protected void Submit. Btn_Click(Object S, Event. Args E) Message. Text=“Hi “ & Name. Text End Sub • thisfile. aspx: <%@ Page Language=“C#“ Codebehind=“thisfile. cs“. . . %> <body> <form action=“thisfile. aspx“ method=post runat=server> <h 3> Name: <asp: textbox id=“Name“ runat=“server“ /> <asp: button type=submit text=“Look. Up“ id=“Look. Up“ On. Click=“Submit. Btn_Click“ runat=“server“ /> <asp: label id=“Message“ runat=“server“ /> </form> </body> </html>

Controles del Servidor Generalidades • Web Forms • Familias ü HTML ü ASP. NET

Controles del Servidor Generalidades • Web Forms • Familias ü HTML ü ASP. NET ü Validación ü Usuario ü Móvil • Vinculación a Datos • Clase Page ü Reunión de código y contenido

Familias 1/2 • HTML ü Vinculados directamente con elementos HTML ü Atributos HTML ü

Familias 1/2 • HTML ü Vinculados directamente con elementos HTML ü Atributos HTML ü Ejemplos: Html. Anchor (<a>), Html. Table (<table>) • ASP. NET ü Controles abstractos Ø No hay una relación “uno a uno” con HTML ü Modelo de objetos predefinido ü Detección automática del navegador ü Conjunto rico ü Ejemplo: Text. Box (<asp: textbox>)

Familias 2/2 • Validación ü Controla los ingresos del usuario ü Diferentes tipos ØIngreso

Familias 2/2 • Validación ü Controla los ingresos del usuario ü Diferentes tipos ØIngreso requerido ØComparación, rango, patrón ØDefinidos por el usuario • Pagelets (Definidos por el usuario) ü Permite reutilizar funcionalidad ü Extensión. ascx ü Soporte a un modelo de objetos • Controles “Mobile”

Sintaxis • Enfocado a ASP. NET ü <asp: Nombre atributos /> ü Nombre ØText.

Sintaxis • Enfocado a ASP. NET ü <asp: Nombre atributos /> ü Nombre ØText. Box, Drop. Down. List, etc. ü atributos ØId=IDdel. Control Ørunat=server

Ejemplo de Control del Servidor • Controlado. aspx: <asp: Text. Box id=txt. Address runat=server

Ejemplo de Control del Servidor • Controlado. aspx: <asp: Text. Box id=txt. Address runat=server Max. Length=255> <asp: Required. Field. Validator id=RFV 1 runat=server. . . > • Controlado. cs: foreach (Ivalidator val in Page. Validators) { val. Validate(); }

Caché • Mejora el rendimiento de la aplicación Web • Caché de salida ü

Caché • Mejora el rendimiento de la aplicación Web • Caché de salida ü Almacena y obtiene páginas y objetos ü Caché de página ü Caché de fragmentos • Reglas de expiración • APIs ü Permite personalizar las acciones del Caché

Aplicaciones Web • ASP. NET define una aplicación Web como la “suma de todos

Aplicaciones Web • ASP. NET define una aplicación Web como la “suma de todos los Archivos, páginas, manejadores (de eventos), módulos, y código ejecutable que pueden ser invocados o ejecutados en el entorno de un directorio virtual dado, en un Servidor Web” • Aplicaciones distribuidas Presentación Web Form Capa de Negocio Internet Servicio Web Base de Datos

Migración de ASP a ASP. NET • ASP y ASP. NET pueden coexistir en

Migración de ASP a ASP. NET • ASP y ASP. NET pueden coexistir en el mismo servidor • Puede usar características de ASP. NET • Al migrar, los archivos ASP deben ser modificados • Rendimiento ü Código administrado vs. no administrado ü Vinculación temprana vs. tardía

Temas de Migración • Estructura ü Bloques de código y directivas • Seguridad ü

Temas de Migración • Estructura ü Bloques de código y directivas • Seguridad ü Seguridad ASP. NET como se describió antes • Lenguajes ü C#, Visual Basic. NET • Acceso a Datos ü ADO a ADO. NET

Resumen • Elementos importantes de ASP. NET ü Configuración ü Web Forms y Servicios

Resumen • Elementos importantes de ASP. NET ü Configuración ü Web Forms y Servicios Web ü Seguridad ü Administración de estados ü Acceso a Datos ü Aplicaciones Web ü Migración