NET
Daniel A. Seara
NDSoft
Objetivos
Introduccin a ASP.NET
Conceptos y Arquitectura
Caractersticas de ASP.NET
ASP.NET Avanzado
Contenido
Seccin 1: Generalidades
Seccin 2: Arquitectura
El .NET Famework y la configuracin de
ASP.NET
Modelo de Eventos
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
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)
servidores
El estado se pierde cuando el IE falla
IIS
Aplicaciones
ASP.NET
.NET Framework
Sistema Operativo
Seccin 2: Arquitectura
La Arquitectura del .NET
Framework
Modelo de Aplicacin Web
Configuracin
Jerarqua de Clases
Windows Forms
Servicios Web
Marco de Servicios
Base
Datos
Depuracin
...
Mdulo HTTP
Mdulo HTTP
Manejador de Requerimientos
...
Cdigo administrado
HTTP Runtime
Cdigo administrado
Se ejecuta en un proceso no
administrado
llamadas
Multithreaded
Reemplaza ISAPI
Internet Server Application
Programming Interface
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
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
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
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++
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
= ...]>
[ lneas de cdigo ]
</script>
%>
= ...]>
</HTMLtag>
identifier=Nombre>
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
Servidor
IIS
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)
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
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
Modelo de Eventos
1/2
Modelo de delegados
Conecta un manejador de evento con un receptor
Delegados simples y mltiples
Modelo de Eventos
2/2
mensaje
Server
Analiza el mensaje
evento
Llama al
manejador
apropiado
manejador
respuesta
Ejemplos
Ejemplo
System.Web.UI.WebControls
System.Web.UI
Eventos en C#
ASP.NET <asp:ImageButton id=btnNext runat=server
imageurl=... onclick=btnNext_Click/>
C#
Seccin 4:
ASP.NET Avanzado
Web Forms
Controles del Servidor
Trabajando con Datos
Aplicaciones Web
Migrando de ASP a ASP.NET
thisfile.cs
SubmitBtn_Click()
{ ...
1/2
2/2
thisfile.aspx:
Web Forms
Familias
HTML
ASP.NET
Validacin
Usuario
Mvil
Vinculacin a Datos
Clase Page
Reunin de cdigo y contenido
HTML
Familias
1/2
ASP.NET
Controles abstractos
No hay una relacin uno a uno con HTML
Familias
2/2
Validacin
Controla los ingresos del usuario
Diferentes tipos
Ingreso requerido
Comparacin, rango, patrn
Definidos por el usuario
Controles Mobile
Sintaxis
Enfocado a ASP.NET
<asp:Nombre atributos />
Nombre
TextBox, DropDownList, etc.
atributos
Id=IDdelControl
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
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