programación de aplicaciones con asp.net daniel laco carlos walzer bienvenidos

40
Programación de aplicaciones con ASP.NET Daniel Laco Carlos Walzer Bienvenidos

Upload: alicia-padilla

Post on 03-Feb-2015

7 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Programación de aplicaciones con ASP.NET Daniel Laco Carlos Walzer Bienvenidos

Programación de aplicaciones con ASP.NET

Daniel LacoCarlos Walzer

Bienvenidos

Page 2: Programación de aplicaciones con ASP.NET Daniel Laco Carlos Walzer Bienvenidos

Agenda

• Objetivo de la Conferencia

• ¿Qué son los Starter Kits?

• Data Access Application Block (DAAB)

• ¿Cómo se procesa un WebForm?

• Seguridad en ASP.NET

• Creación de Controles de Usuario

Nivel de la conferencia: Básico / Intermedio (100-200)

Page 3: Programación de aplicaciones con ASP.NET Daniel Laco Carlos Walzer Bienvenidos

Objetivos

• Mostrar una aplicación

• Ver el acceso a datos

• Entender el modelo de procesamiento de un WebForm

• Saber como se maneja la seguridad

• Crear Controles de Usuario

Page 4: Programación de aplicaciones con ASP.NET Daniel Laco Carlos Walzer Bienvenidos

Starter Kits

Page 5: Programación de aplicaciones con ASP.NET Daniel Laco Carlos Walzer Bienvenidos

Starter Kits

• ¿Qué son los Starter Kits?

• Se pueden bajar de www.asp.net

• El elegido para hoy:– “TimeTracker”

Page 6: Programación de aplicaciones con ASP.NET Daniel Laco Carlos Walzer Bienvenidos

Data Access Application Block(DAAB)

Page 7: Programación de aplicaciones con ASP.NET Daniel Laco Carlos Walzer Bienvenidos

Data Access Application Block

• Componente de Acceso a datos

• Todo el código fuente disponible

• Arquitectura recomendada por Microsoft

• Funciones estáticas (static-shared)

• Transacciones

Page 8: Programación de aplicaciones con ASP.NET Daniel Laco Carlos Walzer Bienvenidos

Modelo

DAAB Cliente

ExecuteNonQueryExecuteDatasetExecuteReaderExecuteScalar

ExecuteXmlReader

SqlHelper

CacheParameterSetGetCachedParameterSet

GetSpParamterSet

SqlHelperParameterCache

Sentencia SQLo

Proc. Almacenado

intDataset

SqlDataReaderobject

XmlReader

SqlParameterArray

SQLSQL

Page 9: Programación de aplicaciones con ASP.NET Daniel Laco Carlos Walzer Bienvenidos

SQLHelper

• Métodos– ExecuteNonQuery– ExecuteDataset– ExecuteReader– ExecuteScalar– ExecuteXmlReader

• Conexión

• Tipos Sentencias

• Parámetros

Page 10: Programación de aplicaciones con ASP.NET Daniel Laco Carlos Walzer Bienvenidos

Resumen - DAAB

• Acceso a datos robusta y eficiente• Fácilmente extensible

Recursosmsdn.microsoft.com/library/default.asp?url=/library/en-us/

dnbda/ html/daab-rm.asp

Page 11: Programación de aplicaciones con ASP.NET Daniel Laco Carlos Walzer Bienvenidos

¿Cómo se procesa un WebForm?

Page 12: Programación de aplicaciones con ASP.NET Daniel Laco Carlos Walzer Bienvenidos

Modelo Web

ServerCliente Web

Request(Pedido)

Response(Respuesta)

Page 13: Programación de aplicaciones con ASP.NET Daniel Laco Carlos Walzer Bienvenidos

ServerCliente Web

Request(Pedido)

Response(Respuesta)

Modelo de Eventos Web Forms

• Evento disparado en el Cliente• Atrapado en el servidor

Analiza mensajeevento

manejador

Llama al manejador apropiado

Page 14: Programación de aplicaciones con ASP.NET Daniel Laco Carlos Walzer Bienvenidos

Como se implementa

• Form– POST– Page.IsPostBack

• ViewState– Base64– EnableViewState– No siempre es necesario

• Eventos– Post-Back– Cached events (retenidos)

• AutoPostBack– Validación

Page 15: Programación de aplicaciones con ASP.NET Daniel Laco Carlos Walzer Bienvenidos

Ciclo de Vida de un Web Form

1. Inicialización de Objetos

2. Carga ViewState

3. Procesa datos del Post

4. Carga Objetos

5. Lanza los Eventos Cached

6. Lanza el Evento Post-Back

7. PreRender

8. Graba ViewState

9. Render

10. Disposal

Page 16: Programación de aplicaciones con ASP.NET Daniel Laco Carlos Walzer Bienvenidos

Resumen - WebForms

• Nos acerca al modelo de Win32

• Administre el Post-Back– Round-Trips– ViewState

Recursosmsdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon/

html/ vbconwebformspageprocessingstages.asp

Page 17: Programación de aplicaciones con ASP.NET Daniel Laco Carlos Walzer Bienvenidos

Seguridad

Page 18: Programación de aplicaciones con ASP.NET Daniel Laco Carlos Walzer Bienvenidos

Servicios de Seguridad

• Autenticación y autorización en ASP.NET:– Extensible y personalizable– Esquema de Autenticación transparente– Modelo simple de desarrollo

• Soporte para autorizaciones granulares

• Usa CLR Evidence Based Security

• Soporta seguridad a nivel de aplicación

Page 19: Programación de aplicaciones con ASP.NET Daniel Laco Carlos Walzer Bienvenidos

Autenticación - Tipos

• Windows Authentication (vía IIS)– Basic, Digest, NTLM, Kerberos, IIS Certificate

• Autenticación basada en Formularios (Cookie)– Verificación de credencial a nivel de Aplicación

• Microsoft Passport®

Page 20: Programación de aplicaciones con ASP.NET Daniel Laco Carlos Walzer Bienvenidos

Autenticación basada en Formularios

• Fácil de implementar– ASP .NET provee redirección

• Pasos– Configure IIS para que permita usuarios anónimos

(típicamente)– Use SSL!– Configure ASP.NET con autenticación por cookie– Escriba su página de Login

<authentication mode= "Forms"> <forms

name=".ASPXAUTH" loginUrl="login.aspx" protection="all" timeout="30" path="/"

/></authentication>

Page 21: Programación de aplicaciones con ASP.NET Daniel Laco Carlos Walzer Bienvenidos

Autorización Web Personalizada

• Escenarios:– Acceso basado en reglas del negocio– Acceso basado en comportamientos variables

• (Ej.: límite de acceso por día, etc.)

• Modelo simple de desarrollo

• Maneja el evento AuthenticateRequest– A nivel de aplicación (global.asax) o– Http Module (implementar IHttpModule)

Page 22: Programación de aplicaciones con ASP.NET Daniel Laco Carlos Walzer Bienvenidos

Proceso de Request en ASP.NET

Código Nativo

Código .NET

ApplicationApplication

Host (IIS)Host (IIS)

ASP.NETASP.NETPagePage

ASP.NET RuntimeASP.NET Runtime

ASP.NETASP.NETServiceService

HTTPHTTPHandlerHandler

HTTP ModuleHTTP Module

Global.asaxGlobal.asax

HTTP ModuleHTTP Module Http ContextHttp Context

Page 23: Programación de aplicaciones con ASP.NET Daniel Laco Carlos Walzer Bienvenidos

Eventos por Request

• Eventos por Request (en orden):– Application_BeginRequest– Application_AuthenticateRequest

<Este es el que nos interesa hoy>– Application_AuthorizeRequest– Application_ResolveRequestCache– Application_AcquireRequestState– Application_PreRequestHandlerExecute– Application_PostRequestHandlerExecute– Application_ReleaseRequestState– Application_UpdateRequestCache– Application_EndRequest

Page 24: Programación de aplicaciones con ASP.NET Daniel Laco Carlos Walzer Bienvenidos

Indentidad del Request

• Impersonalización– Se ejecuta con el contexto de seguridad de la entidad

que hace el Request

– Configurable en ASP.NET

<system.web> <identity impersonate="true" /></system.web>

Page 25: Programación de aplicaciones con ASP.NET Daniel Laco Carlos Walzer Bienvenidos

Roles personalizados

• Maneja el evento authentication• IPrincipal

public voidWindowsAuthentication_OnAuthenticate(

Object src,WindowsAuthenticationEvent e)

{ // reemplace HttpContext Principal e.Context.User = new MyPrincipal(e.Identity);}

Page 26: Programación de aplicaciones con ASP.NET Daniel Laco Carlos Walzer Bienvenidos

Resumen - Seguridad

• Seguridad personalizada

• Reemplace HttpContext.User con un objeto personalizado de IPrincipal o GenericPrincipal

Page 27: Programación de aplicaciones con ASP.NET Daniel Laco Carlos Walzer Bienvenidos

Recursos - Seguridad

• Autenticación en .NET – Guía de Seguridad: www.microsoft.com/spain/msdn/articulos/archivo/261001/voices/authaspdotnet.asp

• Seguridad .NET en MSDN: msdn.microsoft.com/library/default.asp?url=/nhp/Default.asp?contentid=28001369

Page 28: Programación de aplicaciones con ASP.NET Daniel Laco Carlos Walzer Bienvenidos

INTERVALO 10’

Page 29: Programación de aplicaciones con ASP.NET Daniel Laco Carlos Walzer Bienvenidos

Controles del Servidor

Page 30: Programación de aplicaciones con ASP.NET Daniel Laco Carlos Walzer Bienvenidos

¿Qué es un Control ASP.NET?

• Un componente que se ejecuta en el servidor y expone interfaz Web…

– Propiedades, métodos, eventos– Se muestra como HTML, XML, script, etc. – Procesa acciones del usuario y datos– Puede representar elementos HTML o abstracciones de

alto nivel

• Hablando técnicamente…– Es implementado como una clase .NET– Deriva desde System.Web.UI.Control, o de

System.Web.UI.WebControls.WebControl

Page 31: Programación de aplicaciones con ASP.NET Daniel Laco Carlos Walzer Bienvenidos

• Web User Controls Fáciles de hacer Reemplazan antiguos Includes Solo para una aplicación

• Custom Controls (compuestos)– Composite Custom Control– Rendered Custom Control Compilable en un Assembly Soporte para diseño en Visual Studio .NET (toolbox,

property page)

Tipos de Controles de Usuario

Page 32: Programación de aplicaciones con ASP.NET Daniel Laco Carlos Walzer Bienvenidos

Persistencia basada en Tags

• <%@ Register%>– tagPrefix– tagName– Namespace– Src– Assembly<%@ Register TagPrefix="Acme" Tagname=“List" Src=“List.ascx"

%>

• Tags interpretados en tiempo de ejecución– Crea una instancia del Control– Inicializa los valores de las propiedades

<acme:List id=l1 liststyle=number runat=server> <Items> <acme:ListItem>first item</acme:ListItem> <acme:ListItem>second item</acme:ListItem> <acme:ListItem>third item</acme:ListItem> </Items> </acme:List>

Page 33: Programación de aplicaciones con ASP.NET Daniel Laco Carlos Walzer Bienvenidos

Usando Controles en tiempo de ejecución

• Objetos .NET en código

• Controles en los eventos de una página– Page_Load, Button1_Click, etc.

void Page_Load(object send, EventArgs e) {

l1.Items.Add(“fourth item”);l1.ForeColor = Color.Blue;

}

protected AcmeControls.List l1;

Page 34: Programación de aplicaciones con ASP.NET Daniel Laco Carlos Walzer Bienvenidos

Resumen - Controles

• Los Controles proveen un mecanismo de abstracción y reusabilidad para aplicaciones Web

• Marco muy rico:– Mantener los estados a través de los post– Enviar eventos desde el cliente– Implementar funcionalidad en el cliente mediante script

• Controles derivados

• Composición de controles

Page 35: Programación de aplicaciones con ASP.NET Daniel Laco Carlos Walzer Bienvenidos

Recursos - Controles

• Gotdotnet:www.gotdotnet.com

• ASP.NET: www.asp.net

• WebControls: msdn.microsoft.com/library/default.asp?url=/workshop/webcontrols/webcontrols_entry.asp

Page 36: Programación de aplicaciones con ASP.NET Daniel Laco Carlos Walzer Bienvenidos

Resumen final

• Disponemos de un componente para Acceso a datos

• Entender como funciona el modelo de WebForms

• Crear nuestro Principal para autenticaciones personalizadas

• Usar Controles para reutilizar el códigoNoticias de .NET en español

www.microsoft.com/spanish/msdn/noticias/default.asp

Page 37: Programación de aplicaciones con ASP.NET Daniel Laco Carlos Walzer Bienvenidos

¿Preguntas?

Por favor, completar elformulario de evaluación

Te llevás un CD con un curso interactivo de ASP.NET y Visual C#

En 10 días, esta ppt en línea

www.microsoft.com/argentina/msdn

Page 38: Programación de aplicaciones con ASP.NET Daniel Laco Carlos Walzer Bienvenidos

Daniel [email protected]

Carlos [email protected]

Muchas graciaspor tu participación!

Page 39: Programación de aplicaciones con ASP.NET Daniel Laco Carlos Walzer Bienvenidos

Programa Desarrollador Cinco Estrellas

Si ya tenés tu estrella, pasá al salón San Telmo

Hacele un upgrade a tu currículum

Page 40: Programación de aplicaciones con ASP.NET Daniel Laco Carlos Walzer Bienvenidos

Tu potencial. Nuestra pasión.®