Вы находитесь на странице: 1из 50

ASP.

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

Objetivos
Introduccin a ASP.NET
Conceptos y Arquitectura Caractersticas de ASP.NET ASP.NET Avanzado

ASP.NET y el Microsoft .Net Framework

Contenido
Seccin 1: Generalidades Seccin 2: Arquitectura
El .NET Famework y la configuracin de ASP.NET

Seccin 3: Caractersticas de ASP.NET


Administracin de estado, Seguridad, y Modelo de

Eventos

Seccin 4: ASP.NET Avanzado


Web Forms Trabajando con Datos Migrando ASP a ASP.NET

Seccin 1: Generalidades
Mirando atrs ... Conceptos centrales de ASP.NET

Mirando atrs: Active Server Pages


Que es ASP?
Tecnologa de scripting del lado del servidor Archivos conteniendo HTML y cdigo de scripting Acceso a travs de peticiones HTTP El cdigo es interpretado en el servidor

Que se puede hacer con ASP?


Creacin rpida y fcil de aplicaciones Web simples Generar contenido Web dinmico Generar cdigo de validacin del lado del cliente Acceder a componentes COM para extender la

funcionalidad Bases de datos

Y qu hay de malo?
Mucha mezcla de cdigo y HTML de presentacin El cdigo ASP se interpreta disminuyendo el rendimiento El cdigo de scripting es poco especfico Compatibilidad con los navegadores No hay administracin real del estado
servidores El estado se pierde cuando el IE falla
Microsoft JScript Microsoft Visual Basic Scripting Edition (VBScript)

No se puede compartir estados en una granja de

Slo se pueden actualizar archivos cuando el servidor no est en actividad

Conceptos centrales de ASP.NET


Plataforma de desarrollo de Web Nuevo modelo de programacin
Cliente Web Aplicaciones ASP.NET

IIS

.NET Framework

Sistema Operativo

Conceptos centrales de ASP.NET


Separar presentacin de lgica del negocio Usar servicios provistos por el .NET Framework El cdigo es compilado la primera vez que se accede a una pgina Administracin de estado Utilizacin de cualquier lenguaje
Integracin entre varios

Actualizar archivos mientras se est ejecutando la aplicacin!

Seccin 2: Arquitectura
La Arquitectura del .NET Framework Modelo de Aplicacin Web Configuracin Jerarqua de Clases

El .NET Framework- Arquitectura


.NET Framework ASP.NET Web Forms Servicios Web Marco de Servicios Base Datos Depuracin Windows Forms

...

Common Language Runtime Servicios del Sistema

Modelo de Aplicacin Web


Cdigo no administrado HTTP Request Host (IIS, Internet Explorer) HTTP Runtime

Mdulo HTTP Mdulo HTTP Manejador de Requerimientos ... Cdigo administrado

HTTP Runtime
Cdigo administrado
Se ejecuta en un proceso no administrado

Permite 100% de disponibilidad


Procesa asincrnicamente todas las

llamadas

Multithreaded

Reemplaza ISAPI
Internet Server Application Programming

Interface

Lnea de ejecucin de un mdulo HTTP


Mdulo HTTP
Clases administradas
Cada mdulo implementa una interfaz especfica
Ejemplos: Administracin de Estado o Seguridad

Todas las llamadas se reenvan a la misma lnea de

ejecucin Se agregan mdulos por el Config.web

Manejador de requerimientos
Clases administradas Mltiples manejadores para una aplicacin
Pero slo uno por URL

Configuracin 1/3
Conceptos y Arquitectura
Arch. de configuracin: Config.web
Basado en XML, legible y modificable por humanos El archivo se mantiene en el mismo directorio que la aplicacin Los cambios se detectan automticamente

Arquitectura de configuracin jerrquica


Afecta el subdirectorio actual y todos los dependientes

Root Dir Sub Dir1

Config.web

Sub Dir2

Configuracin 2/3
Ejemplo Config.web
<configuration> <configsections> <add names=httpmodules type=System.Web.Config.httpModulesConfigHandler/> <add names=sessionstate type=.../> </configsections> <httpmodules> <!--- Subelementos de http --> </httpmodules> <sessionstate> <!--- Subelementos de estado de sesin --> </sessionstate> </configuration>

Configuracin 3/3
Configuracin por defecto y personalizada
El Config.web por defecto est en %windir%\Microsoft.NET\Framework\Version Conjunto estndar de configuracin Capacidades de los navegadores, mensajes de error personalizados, etc. Configuracin personalizada Extiende el conjunto de las estndares Implementando la interfaz:
System.Web.Configuration.IConfigurationSectionHandler

Jerarqua
System.Object System.Web.UI.Control

System.Web.UI. WebControls ListControl ListBox CheckBoxList ...

WebControl

Table
Button TextBox ...

Seccin 3: caractersticas
Sintaxis y lenguajes soportados por ASP.NET
Ejemplos

Proceso de ejecucin Assemblies Administracin de Estado, Seguridad, y Manejo de Eventos

Presentacin y lgica de negocios


No hay ms mezcla entre HTML y cdigo ejecutable

Separacin completa entre la presentacin y la lgica


Sin cdigo en los archivos HTML Archivos para diseadores y Archivos para

Mayor facilidad en el mantenimiento

programadores As y todo, todava es posible mezclar HTML y cdigo si es necesario .cs


.aspx

o
.vb

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)

Diferentes archivos, distinguibles por su extensin


Archivos ASP.NET estndar:
Servicios Web : Archivos de cdigo: Configuracin: Aplicaciones Web :
Config.web .cs, .vb, ... .asmx .aspx o .ascx

Introduccin

Son todos Archivos de texto La forma ms rpida de comenzar


Cambiar la extensin .asp por .aspx

Global.asax

Sintaxis de la pgina 1/3


Directivas
<%@ Page language=VB%>

Bloques de declaracin de cdigo


<script runat=server [language =

Cdigo de conversin (Render)


<%

...]> [ lneas de cdigo ] </script>

%>

[cdigo en lnea o expresin]

Sintaxis de controles HTML


<HTMLtag runat=server [attribute =

...]> </HTMLtag>

Sintaxis de la pgina 2/3


Sintaxis de Controles
Controles del Lado del servidor
<ASP:TextBox id=MyTb1 runat=server>

Propiedades del control del servidor


<ASP:TextBox maxlength=80 runat=server>

Sub propiedad (del lado del cliente)


<ASP:Label font-size=14 runat=server>

Vinculacin a eventos del control


<ASP:Button OnClick=MyClick runat=server>

Sintaxis de la pgina 3/3


Expresin de vinculacin a datos
<%# Expresin de vinculacin %>

Marcadores de objetos del lado del servidor


<object id=id runat=server

identifier=Nombre>

Directivas de inclusin en el servidor


<!-- #include Tipo = Archivo -->

Comentarios en el servidor
<%-- Comentario --%>

Ejemplo ASP.NET
<html>

1/2

<script language=VB runat=server> Sub SubmitBtn_Click(Sender As Object, E As EventArgs) Message.Text = Hi & Name.Text End Sub </script>

<body> <form action=thisfile.aspx method=post runat=server> <h3> Name: <asp:textbox id=Name runat=server/> <asp:button type=submit text=LookUp OnClick=SubmitBtn_Click runat=server/> <p> <asp:label id=Message runat=server/> </form> </body>
</html>

Ejemplo ASP.NET

2/2

Ciclo de ejecucin .aspx


Cliente Servidor IIS ASP.NET Runtime Analiza el .aspx Genera la clase Page Pide archivo aspx

Instancia los controles

Respuesta

Proceso de ejecucin
Compilacin, la primera vez que se pide una pgina 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 Comn de ejecucin (common language runtime)

Motor de ejecucin comn


Compilador justo en el momento (JIT) Cdigo administrado

Administracin de estados 1/2


Estado de una Aplicacin
Que es una aplicacin?
Archivos, pginas, mdulos, y cdigo ejecutable Un subdirectorio virtual y sus dependientes

Variables de estado de la Aplicacin


Informacin global

Reglas de Implementacin
Utilizacin de recursos del sistema Bloqueo y desbloqueo de la informacin global En entornos de mltiples hilos (multithreaded) se debe tener cuidado Se pierde el estado cuando el cliente se cierra No hay estado a travs de una Granja de servidores

Administracin de estado 2/2


Estado de sesin
Que es una sesin? Restringida a una aplicacin lgica Contexto en el cual un cliente se conecta con un servidor Funcionalidad Solicitud de identificacin y calificacin Almacenar Datos entre llamadas Eventos de Sesin Liberacin de los datos de Sesin Proceso de estado en el Servidor .NET

Seguridad 1/3
Motivos
Prevenir el acceso a reas del Servidor Web Registrar y almacenar informacin relevante de los

usuarios

Configuracin de Seguridad
Tag <Security> en el archivo Config.web

Autenticacin, Autorizacin, Impersonalizacin Seguridad de acceso al cdigo


es ste realmente el cdigo original del servidor? Proteger el servidor de cdigo malicioso

Seguridad 2/3
Autenticacin
Validar credenciales del usuario Utilizar identidades de autenticacin Tipos de Autenticacin
Windows, integrada con IE 5.0 Passport, servicios centralizados provistos por Microsoft Cookie, adjunto en el requerimiento

Autorizacin
Determinar cuando es permitido un requerimiento Autorizacin por Archivo y por URL

Seguridad 3/3
Impersonalizacin
IE autentica al usuario Se pasa un token a la aplicacin ASP.NET ASP.NET lo impersona El acceso se permite de acuerdo a las

asignaciones por NTFS

Seguridad de Acceso al cdigo


Caracterstica del .NET Famework Verifica la identidad del cdigo y su origen

Especifica las operaciones que el cdigo tiene

permitido ejecutar

Modelo de Eventos 1/2


Manejo de eventos a nivel de la Aplicacin
Web Forms

Modelo de delegados
Conecta un manejador de evento con un receptor Delegados simples y mltiples

Los Delegados de eventos son Multicast Enlace de Evento


Registra un manejador con el que enva el evento

Modelo de Eventos 2/2


Evento disparado en el cliente, pero controlado en el servidor
Cliente Web mensaje Server Analiza el mensaje Llama al manejador apropiado

evento

manejador respuesta

Ejemplos
Ejemplo
System.Web.UI.WebControls

Clase Button, evento pblico Click Clase Page, evento pblico Load
<asp:ImageButton id=btnNext runat=server imageurl=... onclick=btnNext_Click/>

System.Web.UI

Eventos en C#
ASP.NET

C#

protected void btnNext_Click(Object S, ImageClickEventArgs E) { [ ... do something ... ] }

Seccin 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=LookUp OnClick=SubmitBtn_Click /> ...

1/2

thisfile.cs
SubmitBtn_Click() { ...

Generalidades de Web Forms


Crear pginas Web Programables
Usando cualquier lenguaje .NET Provee un rico conjunto de controles del

2/2

lado del servidor Modelo de Eventos de los Web Forms

Corren en cualquier navegador Partes visuales y lgicas de la Aplicacin System.Web.UI.WebControls

Ejemplos Web Forms


thisfile.cs:
Protected void SubmitBtn_Click(Object S, EventArgs 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> <h3> Name: <asp:textbox id=Name runat=server /> <asp:button type=submit text=LookUp id=LookUp OnClick=SubmitBtn_Click runat=server /> <br> <asp:label id=Message runat=server /> </form> </body> </html>

Web Forms Familias


HTML ASP.NET Validacin Usuario Mvil

Controles del Servidor Generalidades

Vinculacin a Datos Clase Page


Reunin de cdigo y contenido

Familias 1/2
HTML
Vinculados directamente con elementos HTML Atributos HTML Ejemplos: HtmlAnchor (<a>), HtmlTable (<table>)

ASP.NET
Controles abstractos
No hay una relacin uno a uno con HTML

Modelo de objetos predefinido

Deteccin automtica del navegador


Conjunto rico Ejemplo: TextBox (<asp:textbox>)

Familias
Validacin

2/2

Controla los ingresos del usuario Diferentes tipos Ingreso requerido Comparacin, rango, patrn Definidos por el usuario

Pagelets (Definidos por el usuario)


Permite reutilizar funcionalidad Extensin .ascx Soporte a un modelo de objetos

Controles Mobile

Sintaxis
Enfocado a ASP.NET
<asp:Nombre atributos />

Nombre TextBox, DropDownList, etc. atributos Id=IDdelControl runat=server

Ejemplo de Control del Servidor


Controlado.aspx:
<asp:TextBox id=txtAddress runat=server MaxLength=255> <asp:RequiredFieldValidator id=RFV1 runat=server ...>

Controlado.cs:
foreach (Ivalidator val in Page.Validators) { val.Validate(); }

Cach
Mejora el rendimiento de la aplicacin Web Cach de salida
Almacena y obtiene pginas y objetos Cach de pgina Cach de fragmentos

Reglas de expiracin APIs


Permite personalizar las acciones del Cach

Aplicaciones Web
ASP.NET define una aplicacin Web como la
suma de todos los Archivos, pginas, manejadores (de eventos), mdulos, y cdigo ejecutable que pueden ser invocados o ejecutados en el entorno de un directorio virtual dado, en un Servidor Web

Aplicaciones distribuidas
Presentacin
Web Form

Capa de Negocio Internet Servicio Web

Base de Datos

Migracin de ASP a ASP.NET


ASP y ASP.NET pueden coexistir en el mismo servidor Puede usar caractersticas de ASP.NET Al migrar, los archivos ASP deben ser modificados Rendimiento
Cdigo administrado vs. no administrado Vinculacin temprana vs. tarda

Temas de Migracin
Estructura
Bloques de cdigo 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
Configuracin Web Forms y Servicios Web Seguridad Administracin de estados

Acceso a Datos
Aplicaciones Web Migracin

Вам также может понравиться