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

ASP.

NET
Daniel A. Seara

Director Regional MSDN


Buenos Aires ARGENTINA

NDSoft

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
Microsoft JScript
Microsoft Visual Basic Scripting Edition (VBScript)

Compatibilidad con los navegadores


No hay administracin real del estado

No se puede compartir estados en una granja de

servidores
El estado se pierde cuando el IE falla

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

IIS

Aplicaciones
ASP.NET

.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

Windows Forms

Servicios Web
Marco de Servicios

Base

Datos

Depuracin

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

Config.web

Sub
Dir1
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

WebControl

System.Web.UI.
WebControls
ListControl

Table

ListBox

Button

CheckBoxList
...

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
Mayor facilidad en el mantenimiento

Separacin completa entre la presentacin y


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

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)

Introduccin
Diferentes archivos, distinguibles por su
extensin
Archivos ASP.NET estndar:
.aspx o .ascx

Servicios Web :
.asmx

Archivos de cdigo:
.cs, .vb, ...

Configuracin:
Config.web

Aplicaciones Web :
Global.asax

Son todos Archivos de texto


La forma ms rpida de comenzar
Cambiar la extensin .asp por .aspx

Sintaxis de la pgina 1/3


Directivas
<%@ Page language=VB%>

Bloques de declaracin de cdigo


<script runat=server [language

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

Cdigo de conversin (Render)


<%

%>

[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

1/2

<html>
<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

Pide archivo aspx

ASP.NET Runtime
Analiza el .aspx
Genera la clase Page
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

evento
Llama al
manejador
apropiado

manejador
respuesta

Ejemplos
Ejemplo
System.Web.UI.WebControls

Clase Button, evento pblico Click

System.Web.UI

Clase Page, evento pblico Load

Eventos en C#
ASP.NET <asp:ImageButton id=btnNext runat=server
imageurl=... onclick=btnNext_Click/>

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 />
...

thisfile.cs
SubmitBtn_Click()
{ ...

1/2

Generalidades de Web Forms


Crear pginas 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 lgicas de la
Aplicacin
System.Web.UI.WebControls

2/2

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>

Controles del Servidor


Generalidades

Web Forms
Familias
HTML
ASP.NET
Validacin
Usuario
Mvil

Vinculacin a Datos
Clase Page
Reunin de cdigo y contenido

HTML

Familias

1/2

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

2/2

Validacin
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

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