David Salgado MVP C# [email protected] David Salgado MVP C# [email protected] Desarrollo...

36
David Salgado MVP C# [email protected] Desarrollo Web con ASP.NET

Transcript of David Salgado MVP C# [email protected] David Salgado MVP C# [email protected] Desarrollo...

Page 1: David Salgado MVP C# david.salgado@muxu.net David Salgado MVP C# david.salgado@muxu.net Desarrollo Web con ASP.NET.

David SalgadoMVP C#[email protected]

David SalgadoMVP C#[email protected]

Desarrollo Web con ASP.NETDesarrollo Web con ASP.NET

Page 2: David Salgado MVP C# david.salgado@muxu.net David Salgado MVP C# david.salgado@muxu.net Desarrollo Web con ASP.NET.

Conceptos Previos… Conceptos Previos…

¿Qué pasa cuando solicitamos una página Web?¿Qué pasa cuando solicitamos una página Web?

es.thespoke.netes.thespoke.net

http gethttp get …………………………....

Page 3: David Salgado MVP C# david.salgado@muxu.net David Salgado MVP C# david.salgado@muxu.net Desarrollo Web con ASP.NET.

Desarrollo WebDesarrollo Web

Al principio se nos mandaba un documento TAL CUAL estaba en el servidor

Si queríamos cambiar la Web a mano

Al principio se nos mandaba un documento TAL CUAL estaba en el servidor

Si queríamos cambiar la Web a mano

¿Si tengo una tienda y ¿Si tengo una tienda y llegan las rebajas?llegan las rebajas?

Page 4: David Salgado MVP C# david.salgado@muxu.net David Salgado MVP C# david.salgado@muxu.net Desarrollo Web con ASP.NET.

Desarrollo WebDesarrollo Web

Ahora el documento que se envía al cliente se genera en el servidor

Pudiendo alimentarse de diferentes archivos, BBDD, XMLs,…

Diferentes tecnologías:CGIASP, perlServlets, JSP, php, tcl, …ASP.NET

Ahora el documento que se envía al cliente se genera en el servidor

Pudiendo alimentarse de diferentes archivos, BBDD, XMLs,…

Diferentes tecnologías:CGIASP, perlServlets, JSP, php, tcl, …ASP.NET

Page 5: David Salgado MVP C# david.salgado@muxu.net David Salgado MVP C# david.salgado@muxu.net Desarrollo Web con ASP.NET.

AgendaAgenda

ASP.NETInterioridadesControles de ServidorAplicaciones ASP.NETAsociando con fuentes de datosFuturo

ASP.NETInterioridadesControles de ServidorAplicaciones ASP.NETAsociando con fuentes de datosFuturo

Page 6: David Salgado MVP C# david.salgado@muxu.net David Salgado MVP C# david.salgado@muxu.net Desarrollo Web con ASP.NET.

Ideas Clave Ideas Clave

ASP.NET cambia la manera de desarrollar aplicaciones Web

Para ser productivo VS.NET

Los clientes Web son un escenario muy típico, cuanto antes aprendamos MEJOR

XML

ASP.NET cambia la manera de desarrollar aplicaciones Web

Para ser productivo VS.NET

Los clientes Web son un escenario muy típico, cuanto antes aprendamos MEJOR

XML

Page 7: David Salgado MVP C# david.salgado@muxu.net David Salgado MVP C# david.salgado@muxu.net Desarrollo Web con ASP.NET.

AgendaAgenda

ASP.NET

Interioridades

Controles de Servidor

Aplicaciones ASP.NET

Asociando con fuentes de datos

Futuro

ASP.NET

Interioridades

Controles de Servidor

Aplicaciones ASP.NET

Asociando con fuentes de datos

Futuro

Page 8: David Salgado MVP C# david.salgado@muxu.net David Salgado MVP C# david.salgado@muxu.net Desarrollo Web con ASP.NET.

ASP.NETASP.NETNuevo modelo de ejecución para el desarrollo Web

Eventos y controles

Plataforma de desarrolloNueva arquitectura “Web Forms”Las páginas se adaptan al navegador

Luego llegó XForms del w3c

Mejor rendimientoSeparamos lógica y presentaciónEscalabilidad (granjas de servidores)Código compilado

Nuevo modelo de ejecución para el desarrollo Web

Eventos y controles

Plataforma de desarrolloNueva arquitectura “Web Forms”Las páginas se adaptan al navegador

Luego llegó XForms del w3c

Mejor rendimientoSeparamos lógica y presentaciónEscalabilidad (granjas de servidores)Código compilado

Page 9: David Salgado MVP C# david.salgado@muxu.net David Salgado MVP C# david.salgado@muxu.net Desarrollo Web con ASP.NET.

ASP.NET¿Qué debo instalar?ASP.NET¿Qué debo instalar?

En desarrollo.NET Framework SDK + IISASP.NET Web Matrix (servidor Web incluido)

Visual Studio .NET + IIS

En producción.NET Redistribuible + IIS

En desarrollo.NET Framework SDK + IISASP.NET Web Matrix (servidor Web incluido)

Visual Studio .NET + IIS

En producción.NET Redistribuible + IIS

Page 10: David Salgado MVP C# david.salgado@muxu.net David Salgado MVP C# david.salgado@muxu.net Desarrollo Web con ASP.NET.

Proceso de páginas ASP.NETaspnet_regiisProceso de páginas ASP.NETaspnet_regiis

Page 11: David Salgado MVP C# david.salgado@muxu.net David Salgado MVP C# david.salgado@muxu.net Desarrollo Web con ASP.NET.

WebFormsCiclo de vida basado en eventosWebFormsCiclo de vida basado en eventos

Page_LoadPage_Load

Page_UnloadPage_Unload

Textbox1_ChangedTextbox1_Changed

Button1_ClickButton1_Click

Control de los EventosControl de los Eventos

1. Eventos de cambio1. Eventos de cambio

2. Eventos de acción2. Eventos de acción

La página se lee e inicializaLa página se lee e inicializa

página se destruyepágina se destruye

Page 12: David Salgado MVP C# david.salgado@muxu.net David Salgado MVP C# david.salgado@muxu.net Desarrollo Web con ASP.NET.

Eventos y ciclo de vidaEventos y ciclo de vida

Page 13: David Salgado MVP C# david.salgado@muxu.net David Salgado MVP C# david.salgado@muxu.net Desarrollo Web con ASP.NET.

AgendaAgenda

ASP.NET

Interioridades

Controles de Servidor

Aplicaciones ASP.NET

Asociando con fuentes de datos

Futuro

ASP.NET

Interioridades

Controles de Servidor

Aplicaciones ASP.NET

Asociando con fuentes de datos

Futuro

Page 14: David Salgado MVP C# david.salgado@muxu.net David Salgado MVP C# david.salgado@muxu.net Desarrollo Web con ASP.NET.
Page 15: David Salgado MVP C# david.salgado@muxu.net David Salgado MVP C# david.salgado@muxu.net Desarrollo Web con ASP.NET.

Controles de Controles de ServidorServidor

InterioridadesEstructura de páginaInterioridadesEstructura de página<%@Page Language=“C#”%><html> <script runat=“server”>

public void Page_Load(object o, EventArgs ea) { l.Text = “Hola :D”; } </script> <body>

<form runat=“server”> Introduce el nombre:

<asp:Label ID=“l” runat=“server” /> <asp:Button ID=“b” Text=“Pulsa” runat=“server”/> <% Response.Write( DateTime.Now.ToString() ); %> </form> </body></html>

<%@Page Language=“C#”%><html> <script runat=“server”>

public void Page_Load(object o, EventArgs ea) { l.Text = “Hola :D”; } </script> <body>

<form runat=“server”> Introduce el nombre:

<asp:Label ID=“l” runat=“server” /> <asp:Button ID=“b” Text=“Pulsa” runat=“server”/> <% Response.Write( DateTime.Now.ToString() ); %> </form> </body></html>

DirectivasDirectivasDeclaración Declaración MétodosMétodosCódigoCódigo

Page 16: David Salgado MVP C# david.salgado@muxu.net David Salgado MVP C# david.salgado@muxu.net Desarrollo Web con ASP.NET.

Generación de HTMLGeneración de HTML

Page 17: David Salgado MVP C# david.salgado@muxu.net David Salgado MVP C# david.salgado@muxu.net Desarrollo Web con ASP.NET.

InterioridadesEstructura de la página ASPXInterioridadesEstructura de la página ASPX

Todo lo que está en la página da lugar a una clase que deriva de System.Web.UI.PagePues hacemos un truco }:D

Creamos una clase que derive de System.Web.UI.PageInsertamos controles de servidor, métodos y gestores de eventosCreamos una página que derive de esa clase

¡Hemos separado diseño e implementación!

Todo lo que está en la página da lugar a una clase que deriva de System.Web.UI.PagePues hacemos un truco }:D

Creamos una clase que derive de System.Web.UI.PageInsertamos controles de servidor, métodos y gestores de eventosCreamos una página que derive de esa clase

¡Hemos separado diseño e implementación!

Page 18: David Salgado MVP C# david.salgado@muxu.net David Salgado MVP C# david.salgado@muxu.net Desarrollo Web con ASP.NET.

InterioridadesEstructura de la página ASPX (codebehind)InterioridadesEstructura de la página ASPX (codebehind)

using System;…..

public class ClaseBase: System.Web.UI.Page{ private Label lbl = new Label(); private Button btn = new Button(); public void Page_Load ( object o, EventArgs ea ) { lbl.Text=“Desde codebehind”; } …..}

using System;…..

public class ClaseBase: System.Web.UI.Page{ private Label lbl = new Label(); private Button btn = new Button(); public void Page_Load ( object o, EventArgs ea ) { lbl.Text=“Desde codebehind”; } …..}

<%@ Page Language=“C#” Inherits=“ClaseBase” %><html><body>

<form runat=“server”> Introduce el nombre:

<asp:Label ID=“lbl” runat=“server” /> <asp:Button ID=“btn” Text=“Pulsa” runat=“server”/>

</form> </body></html>

<%@ Page Language=“C#” Inherits=“ClaseBase” %><html><body>

<form runat=“server”> Introduce el nombre:

<asp:Label ID=“lbl” runat=“server” /> <asp:Button ID=“btn” Text=“Pulsa” runat=“server”/>

</form> </body></html>

Page 19: David Salgado MVP C# david.salgado@muxu.net David Salgado MVP C# david.salgado@muxu.net Desarrollo Web con ASP.NET.

Code behind(código subyacente)Code behind(código subyacente)

Page 20: David Salgado MVP C# david.salgado@muxu.net David Salgado MVP C# david.salgado@muxu.net Desarrollo Web con ASP.NET.

AgendaAgenda

ASP.NET

Interioridades

Controles de Servidor

Aplicaciones ASP.NET

Asociando con fuentes de datos

Futuro

ASP.NET

Interioridades

Controles de Servidor

Aplicaciones ASP.NET

Asociando con fuentes de datos

Futuro

Page 21: David Salgado MVP C# david.salgado@muxu.net David Salgado MVP C# david.salgado@muxu.net Desarrollo Web con ASP.NET.

Tipos de controles de servidorTipos de controles de servidor

PotentesCalendar, AdRotator, Xml…

ValidaciónRequiredFieldValidator, CompareValidator,…

Presentación de datosDropDownList, ComboBox,…

BásicosButton, Label, TextBox,...

PotentesCalendar, AdRotator, Xml…

ValidaciónRequiredFieldValidator, CompareValidator,…

Presentación de datosDropDownList, ComboBox,…

BásicosButton, Label, TextBox,...

Page 22: David Salgado MVP C# david.salgado@muxu.net David Salgado MVP C# david.salgado@muxu.net Desarrollo Web con ASP.NET.

AgendaAgenda

ASP.NET

Interioridades

Controles de Servidor

Aplicaciones ASP.NET

Asociando con fuentes de datos

Futuro

ASP.NET

Interioridades

Controles de Servidor

Aplicaciones ASP.NET

Asociando con fuentes de datos

Futuro

Page 23: David Salgado MVP C# david.salgado@muxu.net David Salgado MVP C# david.salgado@muxu.net Desarrollo Web con ASP.NET.

Aplicaciones ASP.NETEstructura de AplicaciónAplicaciones ASP.NETEstructura de Aplicación

Una aplicación es mucho más que un conjunto de páginas

Configuración Web.configEventos de aplicación Global.asaxControles de usuario *.ascxLibrerías \bin

Además, deben poder trabajar juntosControl de la navegación

Server.Transfer(), Response.Redirect()Session, Application, Cache, Cookies, Viewstate

Una aplicación es mucho más que un conjunto de páginas

Configuración Web.configEventos de aplicación Global.asaxControles de usuario *.ascxLibrerías \bin

Además, deben poder trabajar juntosControl de la navegación

Server.Transfer(), Response.Redirect()Session, Application, Cache, Cookies, Viewstate

Page 24: David Salgado MVP C# david.salgado@muxu.net David Salgado MVP C# david.salgado@muxu.net Desarrollo Web con ASP.NET.

Aplicaciones ASP.NETControl de la navegaciónAplicaciones ASP.NETControl de la navegación

¿ Cómo comparten información las páginas ?

ParamsGet / Post

SessionUn usuario

ApplicationCompartido por todos los usuarios

CachéViewstateCookies

¿ Cómo comparten información las páginas ?

ParamsGet / Post

SessionUn usuario

ApplicationCompartido por todos los usuarios

CachéViewstateCookies

Page 25: David Salgado MVP C# david.salgado@muxu.net David Salgado MVP C# david.salgado@muxu.net Desarrollo Web con ASP.NET.

Web PersonalWeb Personal

Page 26: David Salgado MVP C# david.salgado@muxu.net David Salgado MVP C# david.salgado@muxu.net Desarrollo Web con ASP.NET.

AgendaAgenda

ASP.NET

Interioridades

Controles de Servidor

Aplicaciones ASP.NET

Asociando con fuentes de datos

Futuro

ASP.NET

Interioridades

Controles de Servidor

Aplicaciones ASP.NET

Asociando con fuentes de datos

Futuro

Page 27: David Salgado MVP C# david.salgado@muxu.net David Salgado MVP C# david.salgado@muxu.net Desarrollo Web con ASP.NET.

Asociando fuentes de datosADO.NETAsociando fuentes de datosADO.NET

Bloque encargado del trabajo con fuentes de datos (BBDD, XML…)

Modos de funcionamientoConectadoDesconectado

DataBind(): integración con controles de usuario

Asociamos control visual con fuente de datosEllos se apañan

Bloque encargado del trabajo con fuentes de datos (BBDD, XML…)

Modos de funcionamientoConectadoDesconectado

DataBind(): integración con controles de usuario

Asociamos control visual con fuente de datosEllos se apañan

Page 28: David Salgado MVP C# david.salgado@muxu.net David Salgado MVP C# david.salgado@muxu.net Desarrollo Web con ASP.NET.
Page 29: David Salgado MVP C# david.salgado@muxu.net David Salgado MVP C# david.salgado@muxu.net Desarrollo Web con ASP.NET.

ASP.NET && ADO.NETASP.NET && ADO.NET

Page 30: David Salgado MVP C# david.salgado@muxu.net David Salgado MVP C# david.salgado@muxu.net Desarrollo Web con ASP.NET.

AgendaAgenda

ASP.NET

Interioridades

Controles de Servidor

Aplicaciones ASP.NET

Asociando con fuentes de datos

Futuro

ASP.NET

Interioridades

Controles de Servidor

Aplicaciones ASP.NET

Asociando con fuentes de datos

Futuro

Page 31: David Salgado MVP C# david.salgado@muxu.net David Salgado MVP C# david.salgado@muxu.net Desarrollo Web con ASP.NET.

FuturoASP.NET 2.0FuturoASP.NET 2.0

Mejoras a nivel de páginasPáginas Master, Skins,…

Mejoras en los controlesLogin, CreateUser, Navigation,…

Entorno de desarrolloVisual Studio .NET 2005

Visual C#, C++, VB, Web Developer Express

Mejoras a nivel de páginasPáginas Master, Skins,…

Mejoras en los controlesLogin, CreateUser, Navigation,…

Entorno de desarrolloVisual Studio .NET 2005

Visual C#, C++, VB, Web Developer Express

Page 32: David Salgado MVP C# david.salgado@muxu.net David Salgado MVP C# david.salgado@muxu.net Desarrollo Web con ASP.NET.

Visual Studio 2005Visual Studio 2005

Page 33: David Salgado MVP C# david.salgado@muxu.net David Salgado MVP C# david.salgado@muxu.net Desarrollo Web con ASP.NET.

•Webcast teórico•Talleres en ciudades•Aplicación MSDN Video

•Webcast práctica 18 Octubre•Chat 28 Octubre

•www.DesarrollaConMSDN.com•Código de MSDN Video•Calendario•Tutoriales•Seminarios•Foros•Descuento 40% libros

•Webcast teórico•Talleres en ciudades•Aplicación MSDN Video

•Webcast práctica 18 Octubre•Chat 28 Octubre

•www.DesarrollaConMSDN.com•Código de MSDN Video•Calendario•Tutoriales•Seminarios•Foros•Descuento 40% libros

SepSep OctOct NoNovv

DicDic EneEne FebFeb MaMarr

AbrAbr MaMayy

JunJun

.NET y .NET y Servicios Servicios

WebWeb

Desarrollo Desarrollo webweb

SmartSmartClientsClients

Visual Studio Visual Studio 20052005

SQL Server 2005SQL Server 2005

Page 34: David Salgado MVP C# david.salgado@muxu.net David Salgado MVP C# david.salgado@muxu.net Desarrollo Web con ASP.NET.

RecursosRecursos

www.microsoft.es/eventoswww.microsoft.es/eventos

www.asp.netwww.asp.net

www.gotdotnet.com/quickstartwww.gotdotnet.com/quickstart

Varioswww.microsoft.com/spain/msdnMSDN Video

Aplicación + Talleres MSDN + WebCasts

nntp://news.microsoft.com

www.muxu.netwww.muxu.net ;)

www.microsoft.es/eventoswww.microsoft.es/eventos

www.asp.netwww.asp.net

www.gotdotnet.com/quickstartwww.gotdotnet.com/quickstart

Varioswww.microsoft.com/spain/msdnMSDN Video

Aplicación + Talleres MSDN + WebCasts

nntp://news.microsoft.com

www.muxu.netwww.muxu.net ;)

Page 35: David Salgado MVP C# david.salgado@muxu.net David Salgado MVP C# david.salgado@muxu.net Desarrollo Web con ASP.NET.

¿ Preguntas ?¿ Preguntas ?Gracias Gracias

Page 36: David Salgado MVP C# david.salgado@muxu.net David Salgado MVP C# david.salgado@muxu.net Desarrollo Web con ASP.NET.

© 2004, 2005 Microsoft Corporation. Todos los derechos reservados.© 2004, 2005 Microsoft Corporation. Todos los derechos reservados.Esta presentación tiene propósito informativo únicamente. Microsoft no ofrece ninguna garantía , expresa o implítica, en este documento.Esta presentación tiene propósito informativo únicamente. Microsoft no ofrece ninguna garantía , expresa o implítica, en este documento.