David Salgado MVP C# david.salgado@muxu.net David Salgado MVP C# david.salgado@muxu.net Desarrollo...

Post on 02-Feb-2016

224 views 0 download

Transcript of David Salgado MVP C# david.salgado@muxu.net David Salgado MVP C# david.salgado@muxu.net Desarrollo...

David SalgadoMVP C#david.salgado@muxu.net

David SalgadoMVP C#david.salgado@muxu.net

Desarrollo Web con ASP.NETDesarrollo 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 …………………………....

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?

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

AgendaAgenda

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

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

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

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

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

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

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

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

Eventos y ciclo de vidaEventos y ciclo de vida

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

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

Generación de HTMLGeneración de HTML

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!

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>

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

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

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

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

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

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

Web PersonalWeb Personal

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

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

ASP.NET && ADO.NETASP.NET && ADO.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

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

Visual Studio 2005Visual Studio 2005

•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

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 ;)

¿ Preguntas ?¿ Preguntas ?Gracias Gracias

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