Vous êtes sur la page 1sur 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
Sistema Operativo
Aplicaciones
ASP.NET
IIS
.NET Framework
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
Servicios del Sistema
Common Language Runtime
ASP.NET
Web Forms Servicios Web
Windows Forms
Marco de Servicios
Base Datos Depuracin ...
Modelo de Aplicacin Web
Cdigo no administrado
Cdigo administrado
... Manejador de Requerimientos
Mdulo HTTP
Mdulo HTTP
HTTP Runtime
Host (IIS, Internet Explorer)
HTTP Request
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
Sub
Dir2
Config.web
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.Web.UI.
WebControls
ListControl
ListBox
CheckBoxList
Button
Table
WebControl
System.Web.UI.Control
System.Object
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
.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)
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 --%>

<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 1/2
Ejemplo ASP.NET 2/2
Ciclo de ejecucin .aspx
IIS
ASP.NET Runtime
Instancia los
controles
Analiza el .aspx
Genera la clase Page
Pide archivo aspx
Respuesta
Cliente Servidor
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
Server
Cliente Web
Analiza el mensaje
evento
manejador
mensaje
respuesta
Llama al
manejador
apropiado
Ejemplos
Ejemplo
System.Web.UI.WebControls
Clase Button, evento pblico Click
System.Web.UI
Clase Page, evento pblico Load
Eventos en C#
ASP.NET


C#
<asp:ImageButton id=btnNext runat=server
imageurl=... onclick=btnNext_Click/>
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 1/2
thisfile.aspx
SubmitBtn_Click()
{ ...
thisfile.cs
...
<asp:Button id=LookUp
OnClick=SubmitBtn_Click />
...
Generalidades de Web Forms 2/2
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
Ejemplos Web Forms
Protected void SubmitBtn_Click(Object S, EventArgs E)
Message.Text=Hi & Name.Text
End Sub
<%@ 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>
thisfile.cs:


thisfile.aspx:
Controles del Servidor
Generalidades
Web Forms
Familias
HTML
ASP.NET
Validacin
Usuario
Mvil
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 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
<asp:TextBox id=txtAddress runat=server
MaxLength=255>
<asp:RequiredFieldValidator id=RFV1
runat=server ...>
foreach (Ivalidator val in Page.Validators)
{
val.Validate();
}
Controlado.aspx:



Controlado.cs:
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
Internet
Servicio Web
Web Form
Presentacin Capa de Negocio 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

Vous aimerez peut-être aussi