DCE2 Introduccion ASP.net

95
Estrella 2 Estrella 2 Introducción al Introducción al desarrollo de desarrollo de aplicaciones Web con aplicaciones Web con ASP.NET ASP.NET Programa Microsoft Programa Microsoft Desarrollador Cinco Desarrollador Cinco Estrellas Estrellas

Transcript of DCE2 Introduccion ASP.net

Page 1: DCE2 Introduccion ASP.net

Estrella 2Estrella 2Introducción al desarrollo Introducción al desarrollo de aplicaciones Web con de aplicaciones Web con

ASP.NETASP.NET

Programa Microsoft Programa Microsoft Desarrollador Cinco Desarrollador Cinco

EstrellasEstrellas

Page 2: DCE2 Introduccion ASP.net

ObjetivoObjetivoConocer los elementos involucrados Conocer los elementos involucrados en el desarrollo de una aplicación web en el desarrollo de una aplicación web con Visual Studio 2005 y la con Visual Studio 2005 y la plataforma Microsoft .NET, plataforma Microsoft .NET, presentando las novedades presentando las novedades introducidas al respecto en la nueva introducidas al respecto en la nueva versión 2.0versión 2.0

Page 3: DCE2 Introduccion ASP.net

PrerrequisitosPrerrequisitosHaber cursado y aprobado el módulo Haber cursado y aprobado el módulo correspondiente a la Estrella 1 del correspondiente a la Estrella 1 del programa Desarrollador 5 Estrellasprograma Desarrollador 5 EstrellasPara realizar los ejercicios y ver los Para realizar los ejercicios y ver los ejemplos de código adjunto necesita:ejemplos de código adjunto necesita: Herramienta de DesarrolloHerramienta de Desarrollo

MS Visual Studio 2005 óMS Visual Studio 2005 ó MS Visual Web Developer 2005 MS Visual Web Developer 2005

Express Express Base de DatosBase de Datos

MS SQL 2005 Express EditionMS SQL 2005 Express Edition

Page 4: DCE2 Introduccion ASP.net

Temario Temario (1/2)(1/2)

Introducción a ASP.NETIntroducción a ASP.NETFormularios Web (Web Forms)Formularios Web (Web Forms)ConfiguraciónConfiguraciónAutenticaciónAutenticaciónComo mantener el estado en una Como mantener el estado en una aplicación Webaplicación Web

Page 5: DCE2 Introduccion ASP.net

Temario Temario (2/2)(2/2)

Master PagesMaster PagesThemes y SkinsThemes y SkinsNavegaciónNavegaciónAcceso a DatosAcceso a DatosCompilación e InstalaciónCompilación e InstalaciónComo crear una aplicacion Web en Como crear una aplicacion Web en Visual Studio 2005Visual Studio 2005ReferenciasReferencias

Page 6: DCE2 Introduccion ASP.net

TemarioTemarioIntroducción a ASP.NETIntroducción a ASP.NET Aplicaciones WebAplicaciones Web ASP.NETASP.NET Servidor WebServidor WebFormularios Web (Web Forms)Formularios Web (Web Forms)ConfiguraciónConfiguraciónAutenticaciónAutenticaciónComo mantener el estado en una Como mantener el estado en una aplicación webaplicación web

Page 7: DCE2 Introduccion ASP.net

Aplicaciones Web – Aplicaciones Web – ASP.NETASP.NETUna aplicación web es un conjunto de páginas Una aplicación web es un conjunto de páginas

HTML que se transmiten por medio del protocolo HTML que se transmiten por medio del protocolo HTTP de un servidor al cliente y viceversa, HTTP de un servidor al cliente y viceversa, brindando distintas funcionalidades a un usuario brindando distintas funcionalidades a un usuario finalfinal..

ASP.NET es un “Marco” (framework) para ASP.NET es un “Marco” (framework) para programar aplicaciones web, de un modo similar programar aplicaciones web, de un modo similar al que se programan las aplicaciones windows. El al que se programan las aplicaciones windows. El componente principal son los Web Forms componente principal son los Web Forms (formularios web) que permiten, entre otras (formularios web) que permiten, entre otras cosas, separar la interfaz del usuario de la cosas, separar la interfaz del usuario de la funcionalidad de la aplicaciónfuncionalidad de la aplicación..

Page 8: DCE2 Introduccion ASP.net

Aplicaciones Web - Aplicaciones Web - Servidor WebServidor Web

Un servidor web es un sistema informático Un servidor web es un sistema informático conectado a una red, donde se almacenan conectado a una red, donde se almacenan las páginas, imágenes, etc. (que forman las páginas, imágenes, etc. (que forman una aplicación web) disponibles para ser una aplicación web) disponibles para ser visitadas por los usuarios de la red.visitadas por los usuarios de la red.

Internet Information Server (IIS)Internet Information Server (IIS), es el , es el servidor Web de Microsoft que corre sobre servidor Web de Microsoft que corre sobre plataformas Windows. Los servicios que plataformas Windows. Los servicios que ofrece son: FTP, SMTP, NNTP y ofrece son: FTP, SMTP, NNTP y HTTP/HTTPS HTTP/HTTPS

Page 9: DCE2 Introduccion ASP.net

Hypertext Transfer Hypertext Transfer Protocol (HTTP)Protocol (HTTP)

Uno de los protocolos más Uno de los protocolos más importantes de Internetimportantes de InternetHTTP define como los navegadores y HTTP define como los navegadores y los servidores Web se comunican uno los servidores Web se comunican uno con otrocon otroEsta basado en texto y es transmitido Esta basado en texto y es transmitido sobre conexiones TCPsobre conexiones TCP

Page 10: DCE2 Introduccion ASP.net

Funcionamiento de HTTPFuncionamiento de HTTP

www.cursoaspnet.com

IP = 66.45.26.25

http://www.cursoaspnet.com/inicio.html

IP=66.45.26.25 Puerto: 80

inicio.html<html><body>Bienvenidos al Curso ASP.NET</body></html>

Internet DNS

Servidor

Cliente

HTTP Request

HTTP Response

Page 11: DCE2 Introduccion ASP.net

Pagina solicitadaPagina solicitadainicio.html<html>

<body>Bienvenidos al Curso ASP.NET

</body></html>

Page 12: DCE2 Introduccion ASP.net

HTTP RequestHTTP RequestGET /inicio.html HTTP/1.1Accept: */*Accept-Language:...Accept-Encoding:...If-Modified-Since:...If-None-Match:...User-Agent: Mozilla/4.0...Host: www.cursoaspnet.comConnection: Keep-Alive[blank line]

Page 13: DCE2 Introduccion ASP.net

HTTP ResponseHTTP ResponseHTTP/1.1 200 OKServer: Microsoft-IIS/5.0Date: ...Content-Type: text/htmlAccept-Ranges: bytesLast-Modified: ...ETag: ...Content-Length: 46[blank line]<html><body>Bienvenidos al Curso ASP.NET </body></html>

Page 14: DCE2 Introduccion ASP.net

HTML FormsHTML FormsEn el corazón de toda aplicación Web En el corazón de toda aplicación Web genuina están los HTML Formsgenuina están los HTML FormsUn HTML Form es la porción de un Un HTML Form es la porción de un documento HTML que aparece entre las documento HTML que aparece entre las etiquetas etiquetas <form></form><form></form>

Suma.html<html> <body> <form> <input type="text" name="op1" /> + <input type="text" name="op2" /> <input type="submit" value=" = " /> </form> </body></html>

Page 15: DCE2 Introduccion ASP.net

HTML Forms (Cont.)HTML Forms (Cont.)Un botón Un botón submitsubmit (<input type=“submit”>) (<input type=“submit”>) juega un rol especial en un HTML Form:juega un rol especial en un HTML Form: Cuando es pulsado, el navegador envía el Cuando es pulsado, el navegador envía el

HTML Form junto con cualquier entrada de HTML Form junto con cualquier entrada de datos del usuario al servidor Webdatos del usuario al servidor Web

Cómo el HTML Form es enviado, dependerá Cómo el HTML Form es enviado, dependerá del atributo del atributo MethodMethod del form: del form: Si el atributo Si el atributo MethodMethod del form del form no está no está

presentepresente o tiene el valor o tiene el valor GETGET, el navegador , el navegador enviará al servidor un comando enviará al servidor un comando HTTP GETHTTP GET

Si el atributo Si el atributo MethodMethod del form tiene el valor del form tiene el valor POSTPOST, el navegador enviará al servidor un , el navegador enviará al servidor un comando comando HTTP POSTHTTP POST

Ejemplo >>Ejemplo >>

Page 16: DCE2 Introduccion ASP.net

HTML Forms (Cont.)HTML Forms (Cont.)Method = GET<form method=“get"> . . .</form>

GET /suma.html?op1=2&op2=2 HTTP/1.1 . . .Connection: Keep-Alive[blank line]

El navegador envia los datos ingresados como una cadena de consulta

Method = POST<form method=“post"> . . .</form>

POST /suma.html HTTP/1.1 . .Content-Type: ...Content-Length: 11[blank line]op1=2&op2=2

El navegador envia los datos ingresados en el cuerpode la solicitud HTTP

Cualquiera sea el método utilizado, es decir GET o POST, cuando un form es enviado al servidor, decimos que se produjo un POSTBACK

Page 17: DCE2 Introduccion ASP.net

Procesamiento en el Procesamiento en el ServidorServidorConstruir la parte del cliente es “fácil”, sólo Construir la parte del cliente es “fácil”, sólo

es es HTMLHTMLLa parte difícil es la construcción de la La parte difícil es la construcción de la lógica del lado del servidor. “Algo en el lógica del lado del servidor. “Algo en el servidor”, tiene que interpretar las entradas servidor”, tiene que interpretar las entradas del usuario enviadas junto con el del usuario enviadas junto con el formform y y generar la correspondiente salida. generar la correspondiente salida.

Suma.html<html> <body> <form> <input type="text" name="op1" /> + <input type="text" name="op2" /> <input type="submit" value=" = " /> </form> </body></html>

Suma.html<html> <body> <form> <input type="text" name="op1“ value=“2”/> + <input type="text" name="op2“ value=“2”> <input type="submit" value=" = " /> 4 </form> </body></html>Antes del Antes del

procesamientoprocesamiento

Después del Después del procesamientoprocesamiento

Page 18: DCE2 Introduccion ASP.net

Procesamiento en el Procesamiento en el ServidorServidorExisten varias tecnologías de procesamiento:Existen varias tecnologías de procesamiento:

CGICGI (Common Gateway Interface) (Common Gateway Interface) Define una API de bajo nivelDefine una API de bajo nivel Popular en entornos UNIX, no tanto en WindowsPopular en entornos UNIX, no tanto en Windows

ISAPIISAPI (Internet Server Application (Internet Server Application Programming Interface)Programming Interface) Son DLL Windows que “corren” bajo IIS. Escritas en C+Son DLL Windows que “corren” bajo IIS. Escritas en C+

++ Mejor performance que CGIMejor performance que CGI

ASPASP (Active Server Pages)(Active Server Pages) Simple solución: Simple solución: HTMLHTML + + Script del lado del Script del lado del

servidorservidor Programadas en Programadas en JScriptJScript o o VBScriptVBScript Objetos intrínsecos que abstraen detalles de bajo nivel Objetos intrínsecos que abstraen detalles de bajo nivel

de HTTP. Objetos de HTTP. Objetos RequestRequest y y ResponseResponse Permite usar ADO (ActiveX Data Object) para acceso a Permite usar ADO (ActiveX Data Object) para acceso a

datosdatos

Page 19: DCE2 Introduccion ASP.net

ASP.NETASP.NETASP.NET es el framework de programación ASP.NET es el framework de programación web dentro de .NETweb dentro de .NETPermite desarrollar aplicaciones Web con un Permite desarrollar aplicaciones Web con un modelo “similar” al utilizado para modelo “similar” al utilizado para aplicaciones Windowsaplicaciones WindowsEl componente fundamental de ASP.NET es El componente fundamental de ASP.NET es el WebFormel WebFormIndependencia del cliente (navegador, S.O., Independencia del cliente (navegador, S.O., dispositivo físico, etc.)dispositivo físico, etc.)Permite utilizar cualquier lenguaje .NETPermite utilizar cualquier lenguaje .NETPermite desarrollar Servicios Web XMLPermite desarrollar Servicios Web XML

Page 20: DCE2 Introduccion ASP.net

ASP.NET - VentajasASP.NET - VentajasLa “parte ejecutable” de una La “parte ejecutable” de una aplicación ASP.NET es COMPILADAaplicación ASP.NET es COMPILADAImplementación y actualización de las Implementación y actualización de las aplicaciones sin reiniciar el servidor!aplicaciones sin reiniciar el servidor!Acceso a toda la .NET Class LibraryAcceso a toda la .NET Class LibraryIndependiente del lenguaje de Independiente del lenguaje de programaciónprogramaciónEncapsulamiento de funcionalidad a Encapsulamiento de funcionalidad a través de controles de servidor y través de controles de servidor y controles de usuariocontroles de usuario

Page 21: DCE2 Introduccion ASP.net

ASP.NET – Ventajas (Cont.)ASP.NET – Ventajas (Cont.)Permite usar ADO.NET para acceso a Permite usar ADO.NET para acceso a datosdatosSoporta XML, Hojas de estilo CSS, etc.Soporta XML, Hojas de estilo CSS, etc.Detección automática del navegador Detección automática del navegador cliente, generando el lenguaje de cliente, generando el lenguaje de marcas soportado por el mismomarcas soportado por el mismoMecanismo de Caching incorporado Mecanismo de Caching incorporado para páginas completa o partes de la para páginas completa o partes de la misma frecuentemente solicitadasmisma frecuentemente solicitadas

Page 22: DCE2 Introduccion ASP.net

Componentes de una Componentes de una aplicación ASP.NETaplicación ASP.NET

WebForms (Formularios Web) WebForms (Formularios Web) Uno o más archivos con extensión Uno o más archivos con extensión .aspx.aspxArchivos Code-BehindArchivos Code-Behind Archivos asociados a WebForms que Archivos asociados a WebForms que

contienen código del lado del servidor contienen código del lado del servidor (Ej. VB.NET, C#, etc.)(Ej. VB.NET, C#, etc.)

Archivos de configuración con formato Archivos de configuración con formato XMLXML Un archivo Web.config por c/aplicaciónUn archivo Web.config por c/aplicación Un único archivo Machine.config por Un único archivo Machine.config por

servidorservidorGlobal.asaxGlobal.asax Eventos a nivel de aplicaciónEventos a nivel de aplicación

Page 23: DCE2 Introduccion ASP.net

Componentes de una Componentes de una aplicación ASP.NETaplicación ASP.NET

Directorio BINDirectorio BIN Contiene el assembly de la aplicación Contiene el assembly de la aplicación

(Ej.: MiAplic.dll)(Ej.: MiAplic.dll) Cero o más assemblies (Componentes Cero o más assemblies (Componentes

externos)externos)Enlaces a Servicios Web XMLEnlaces a Servicios Web XML Permiten a la aplicación ASP.NET enviar y Permiten a la aplicación ASP.NET enviar y

recibir datos desde Servicios Webrecibir datos desde Servicios Web

Page 24: DCE2 Introduccion ASP.net

Componentes de una Componentes de una aplicación ASP.NETaplicación ASP.NET

Servicios Web

Cliente

Internet

WebForm1.aspx.vb

WebForm1.aspx

WebForm2.aspx.vb

WebForm2.aspx

Global.asax

Web.config

Out

put

Cach

e

Comp.Comp.

BIN

Database

ASP.NET Web Server

Page 25: DCE2 Introduccion ASP.net

Las aplicaciones Web ASP.NET + Las aplicaciones Web ASP.NET + IISIIS

IIS es el servidor Web de la plataforma IIS es el servidor Web de la plataforma WindowsWindowsLas aplicaciones Web solo pueden existir en Las aplicaciones Web solo pueden existir en una ubicación que es publicada por IIS una ubicación que es publicada por IIS como un Directorio Virtualcomo un Directorio VirtualDirectorio VirtualDirectorio Virtual:: es un recurso compartido es un recurso compartido identificado por un alias y que representa identificado por un alias y que representa una ubicación física en el servidoruna ubicación física en el servidorEl famoso El famoso http://localhosthttp://localhost hace referencia al hace referencia al directorio raíz del servidor webdirectorio raíz del servidor webPor default, Por default, http://localhosthttp://localhost “apunta” a “apunta” a C:\C:\Inetpub\wwwrootInetpub\wwwroot

Page 26: DCE2 Introduccion ASP.net

Las aplicaciones Web ASP.NET + Las aplicaciones Web ASP.NET + IISIIS

VS.NET por default crea las VS.NET por default crea las aplicaciones web bajo el directorio aplicaciones web bajo el directorio raíz, ej.:raíz, ej.: MiAplicacionMiAplicacion

Virtual:Virtual: http://localhost/http://localhost/MiAplicacionMiAplicacion

Física:Física: C:\Inetpub\wwwroot\C:\Inetpub\wwwroot\MiAplicacionMiAplicacion

Podemos usar IIS para definir un Podemos usar IIS para definir un directorio virtual donde alojar directorio virtual donde alojar nuestras aplicaciones Web, diferente nuestras aplicaciones Web, diferente al predeterminadoal predeterminado

Page 27: DCE2 Introduccion ASP.net

Estructura de las aplicaciones Estructura de las aplicaciones WebWeb

El “perímetro” de una aplicación Web El “perímetro” de una aplicación Web es determinada por su estructura de es determinada por su estructura de directoriosdirectoriosComienza por su directorio raíz, el Comienza por su directorio raíz, el cual contiene:cual contiene: La página o WebForm de inicioLa página o WebForm de inicio El archivo de configuración El archivo de configuración Web.configWeb.config El directorio El directorio BINBINEl perímetro de la aplicación termina El perímetro de la aplicación termina en su último directorio o cuando se en su último directorio o cuando se encuentra el directorio raíz de otra encuentra el directorio raíz de otra aplicación Web aplicación Web

Page 28: DCE2 Introduccion ASP.net

Visual Studio 6.0Visual InterDev 6.0IIS 5.0SQL Server 2000ASPASP

Visual Studio .NET 2002.NET Framework 1.0ASP.NET 1.0ASP.NET 1.0

Visual Studio .NET 2003.NET Framework 1.1IIS 6.0ASP.NET 1.1ASP.NET 1.1

Visual Studio 2005Visual Web Developer Express Edition.NET Framework 2.0SQL Server 2005ASP.NET 2.0ASP.NET 2.0

Visual Studio “Orcas”.NET Framework “Orcas”ASP.NET “Orcas”ASP.NET “Orcas”

2000 2001 2002 2003 2004 2005 2006 y más2000 2001 2002 2003 2004 2005 2006 y más

Plataforma de desarrollo Web Plataforma de desarrollo Web Microsoft en el tiempoMicrosoft en el tiempo

Page 29: DCE2 Introduccion ASP.net

Temario Temario (1/2)(1/2)

Introducción a ASP.NETIntroducción a ASP.NETFormularios Web (Web Forms)Formularios Web (Web Forms) GeneralidadesGeneralidades Controles WebControles Web Eventos de un formulario webEventos de un formulario web Ciclo de Vida de un formulario webCiclo de Vida de un formulario webConfiguraciónConfiguraciónAutenticaciónAutenticaciónComo mantener el estado en una Como mantener el estado en una aplicación webaplicación web

Page 30: DCE2 Introduccion ASP.net

Formulario Web Formulario Web (ASP.NET web form)(ASP.NET web form) Es una página expresada en lenguaje de Es una página expresada en lenguaje de

marcas que es compilada y ejecutada marcas que es compilada y ejecutada dinámicamente en el servidor para generar la dinámicamente en el servidor para generar la salida solicitada por el cliente (explorador ó salida solicitada por el cliente (explorador ó dispositivo).dispositivo).

Code BehindCode Behind Es el código que se ejecuta del lado del Es el código que se ejecuta del lado del

servidor para lograr el comportamiento servidor para lograr el comportamiento deseado en un formulario web.deseado en un formulario web.

Partial ClassPartial Class Un nuevo concepto, que es aplicado en Un nuevo concepto, que es aplicado en

ASP.NET para vincular las páginas aspx (la ASP.NET para vincular las páginas aspx (la interfaz del usuario) con su Code Behind interfaz del usuario) con su Code Behind (comportamiento).(comportamiento).

WebForms - GeneralidadesWebForms - Generalidades

Page 31: DCE2 Introduccion ASP.net

Controles de ServidorControles de ServidorComponentes que se ejecutan en el Componentes que se ejecutan en el lado del servidorlado del servidorEncapsulan partes de la interface de Encapsulan partes de la interface de usuariosusuariosPoseen el atributo runat=“server”Poseen el atributo runat=“server”Mantienen su “estado” entre Mantienen su “estado” entre postbacks al servidor – ViewStatepostbacks al servidor – ViewStatePoseen un modelo de objetos comúnPoseen un modelo de objetos común Ej.: todos tienen las propiedades Ej.: todos tienen las propiedades IdId y y

TextTextGeneran HTML especifico según el Generan HTML especifico según el browser clientebrowser cliente

Page 32: DCE2 Introduccion ASP.net

Tipos de Controles de Tipos de Controles de ServidorServidor

Por default, los Por default, los elementos HTML no elementos HTML no son accesibles desde son accesibles desde código del lado del código del lado del servidorservidorAgregando Agregando runat=“server”runat=“server” y y el atributo el atributo idid, se , se convierten en convierten en Controles de Servidor Controles de Servidor HTMLHTML

Controles de Controles de Servidor Servidor

HTMLHTMLControles de Controles de Servidor WebServidor Web

Conocidos como Conocidos como WebControlsWebControlsSolo accesibles del Solo accesibles del lado del servidorlado del servidorMuchos tiposMuchos tipos IntrínsecosIntrínsecos ValidaciónValidación ““Ricos”Ricos” Del tipo lista de Del tipo lista de

datosdatosNo tienen una No tienen una relación 1:1 con relación 1:1 con elem. HTMLelem. HTML

Page 33: DCE2 Introduccion ASP.net

Equivalencias de Equivalencias de ControlesControlesBotón HTML “clásico” (No es de Botón HTML “clásico” (No es de

Servidor)Servidor)

Control de Servidor HTMLControl de Servidor HTML

Control de Servidor WebControl de Servidor Web

<INPUT type="button" value="Buscar">

<INPUT type="button" value="Buscar" id="cmdBuscar" runat="server" NAME="button1">

<asp:Button id="cmdBuscar" runat="server" Text="Buscar"/>

Page 34: DCE2 Introduccion ASP.net

Controles de Servidor - Controles de Servidor - EjemplosEjemplosWebControlWebControl HTML equivalenteHTML equivalente

<asp:button><asp:button> <input type=submit><input type=submit><asp:checkbox><asp:checkbox> <input type=checkbox><input type=checkbox><asp:hyperlink><asp:hyperlink> <a href="…"> </a><a href="…"> </a><asp:image><asp:image> <img src="…"><img src="…"><asp:imagebutton><asp:imagebutton> <input type=image><input type=image><asp linkButton><asp linkButton><asp:label><asp:label> <span> </span><span> </span><asp:panel><asp:panel> <div> </div><div> </div><asp:radiobutton><asp:radiobutton> <input type=radiobutton><input type=radiobutton>

<asp:table><asp:table> <table> </table><table> </table><asp:textbox><asp:textbox> <input type=text><input type=text><asp:listbox><asp:listbox> <select size="5"> </select><select size="5"> </select>

Page 35: DCE2 Introduccion ASP.net

Son elementos ocultos que validan las Son elementos ocultos que validan las entradas de datos contra algún patrónentradas de datos contra algún patrónEl proceso de validación puede ser llevado El proceso de validación puede ser llevado en:en: ClienteCliente

El browser cliente debe soportar lenguaje El browser cliente debe soportar lenguaje scriptscript

Le da al usuario un feedback inmediatoLe da al usuario un feedback inmediato Reduce el número de postbacksReduce el número de postbacks

ServidorServidor Repite la validación del lado del clienteRepite la validación del lado del cliente Permite validar contra datos almacenados Permite validar contra datos almacenados

por ej. en una base de datospor ej. en una base de datos

Controles de Servidor - Controles de Servidor - ValidaciónValidación

Page 36: DCE2 Introduccion ASP.net

ASP.NET proporciona 6 controlesASP.NET proporciona 6 controles RequiredFieldValidatorRequiredFieldValidator. Valor requerido.. Valor requerido. CompareValidatorCompareValidator. Valida contra un valor . Valida contra un valor

constante o contra otro control.constante o contra otro control. RangeValidatorRangeValidator. Valor dentro de un rango de . Valor dentro de un rango de

tipos.tipos. RegularExpressionValidatorRegularExpressionValidator. Valida contra . Valida contra

un patrón o expresión regular.un patrón o expresión regular. CustomValidatorCustomValidator. Lógica de validación . Lógica de validación

proporcionada por nosotros.proporcionada por nosotros. ValidationSummaryValidationSummary. No es un validador, . No es un validador,

sino que muestra mensajes de error sino que muestra mensajes de error “agrupados”.“agrupados”.

Controles de Servidor - Controles de Servidor - ValidaciónValidación

Page 37: DCE2 Introduccion ASP.net

En el lado del servidor se puede En el lado del servidor se puede determinar si TODAS las validaciones determinar si TODAS las validaciones fueron exitosas mediante fueron exitosas mediante Page.IsValidPage.IsValidMuy importante! Muy importante! La propiedad La propiedad IsValidIsValid NO está NO está

disponible en los eventos disponible en los eventos InitInit ni ni LoadLoad del WebFormdel WebForm

Controles de Servidor - Controles de Servidor - ValidaciónValidación

Page 38: DCE2 Introduccion ASP.net

Controles con lógica de IU compleja Controles con lógica de IU compleja encapsulados de forma sencillaencapsulados de forma sencillaEjemplos:Ejemplos: AdRotatorAdRotator. Permite mostrar anuncios . Permite mostrar anuncios

publicitarios (banners) de una publicitarios (banners) de una secuencia predeterminada o aleatoria.secuencia predeterminada o aleatoria.

CalendarCalendar. Permite disponer de un . Permite disponer de un calendario altamente personalizable.calendario altamente personalizable.

Controles de Servidor – Controles de Servidor – Controles “Ricos”Controles “Ricos”

Page 39: DCE2 Introduccion ASP.net

Controles de UsuarioControles de UsuarioSimplifican la reutilización de código Simplifican la reutilización de código y componentes de la IU dentro de las y componentes de la IU dentro de las aplicaciones Web ASP.NETaplicaciones Web ASP.NETSon del servidor definidos en un Son del servidor definidos en un archivo archivo .ascx.ascxContienen HTML pero NO los tags Contienen HTML pero NO los tags <HTML>, <BODY> o <FORM><HTML>, <BODY> o <FORM>

Contiene también código en VB.NET Contiene también código en VB.NET o C#o C#

<%@ Control Language="vb" %><%@ Control Language="vb" %>

<%@ Control Language=“cs" %><%@ Control Language=“cs" %>

Page 40: DCE2 Introduccion ASP.net

WebForm2.aspx

FARMACIA

¿Por qué usar Controles de ¿Por qué usar Controles de Usuario?Usuario?

Son autocontenidosSon autocontenidosPueden ser utilizados más de una vezPueden ser utilizados más de una vezPueden estar escritos en diferentes Pueden estar escritos en diferentes lenguajeslenguajes

WebForm1.aspx

FARMACIA

UserControl.ascx

FARMACIA

Page 41: DCE2 Introduccion ASP.net

Agregando Controles de Agregando Controles de UsuarioUsuario

Para usar un control de usuario en un Para usar un control de usuario en un WebForm se usa la directiva WebForm se usa la directiva @Register@Register

Dentro del WebForm...Dentro del WebForm...

Podemos acceder y crear Podemos acceder y crear propiedades como con cualquier otro propiedades como con cualquier otro control u objetocontrol u objeto

<%@Register TagPrefix="uc" <%@Register TagPrefix="uc" TagName="encabezado" Src="header.ascx" %>TagName="encabezado" Src="header.ascx" %>

<uc:encabezado id=“Enc1” runat=“server”> <uc:encabezado id=“Enc1” runat=“server”> </uc:encabezado></uc:encabezado>

Page 42: DCE2 Introduccion ASP.net

Eventos en un WebForm Eventos en un WebForm (1/4)(1/4)

ServerCliente Web

Analiza el mensajeevento

manejador

mensaje

respuesta

Llama al manejador apropiado

Modelo de Eventos Web FormModelo de Eventos Web Form

Page 43: DCE2 Introduccion ASP.net

Eventos en un Eventos en un WebForm WebForm (2/4)(2/4)• Eventos del lado del servidorEventos del lado del servidor

Cuando se trabaja con controles ASP.NET, estos Cuando se trabaja con controles ASP.NET, estos generan eventos en el servidor para responder a generan eventos en el servidor para responder a las peticiones del usuario, produciéndose las peticiones del usuario, produciéndose PostBackPostBack..

• PostBackPostBackA instancias de un formulario web mostrado en el A instancias de un formulario web mostrado en el cliente cada evento sucedido en él genera un cliente cada evento sucedido en él genera un POST hacia el servidor y una respuesta. Este ida POST hacia el servidor y una respuesta. Este ida y vuelta dentro de un mismo formulario web se y vuelta dentro de un mismo formulario web se llama postback.llama postback.

• View StateView StateEs un mecanismo que permite mantener el Es un mecanismo que permite mantener el estado de los controles del formulario web entre estado de los controles del formulario web entre postbacks. El estado de los controles viaja en el postbacks. El estado de los controles viaja en el view state por cada postback.view state por cada postback.(ver diapositiva 36)(ver diapositiva 36)

Page 44: DCE2 Introduccion ASP.net

Eventos en un Eventos en un WebForm WebForm (3/4)(3/4)Declaración de eventos en un control del lado del Declaración de eventos en un control del lado del

cliente:cliente:<asp:Button ID="btnEjemplo" runat="server" Text="Aceptar" onclick="btnEjemploClick" />

Atención del evento en el servidor ( code Atención del evento en el servidor ( code behind )behind )

Ejemplo en C#:Ejemplo en C#:protected void btnEjemploClick(object sender, EventArgs e){ if (!string.IsNullOrEmpty(txtEjemplo.Text)) { lblEjemplo.Text = txtEjemplo.Text; }}

Page 45: DCE2 Introduccion ASP.net

Eventos en un Eventos en un WebForm WebForm (4/4)(4/4)

Atención del evento en el servidor ( code Atención del evento en el servidor ( code behind ) .behind ) .

Ejemplo en Visual Basic:Ejemplo en Visual Basic:Protected Sub btnEjemploClick(ByVal sender As Object, _

ByVal e As EventArgs)If Not String.IsNullOrEmpty(txtEjemplo.Text) Then

lblEjemplo.Text = txtEjemplo.TextEnd If

End Sub

Page 46: DCE2 Introduccion ASP.net

Ciclo de vida de un Ciclo de vida de un WebFormWebFormSucesos mas importantes del ciclo de vida de una Sucesos mas importantes del ciclo de vida de una

página:página:

Inicialización de objetosInicialización de objetosCarga View StateCarga View StateProcesa datos del postProcesa datos del postCarga de la páginaCarga de la páginaEventos Post BackEventos Post BackGraba View StateGraba View StateRenderRenderUnLoadUnLoad

Page 47: DCE2 Introduccion ASP.net

Temario Temario (1/2)(1/2)

Introducción a ASP.NETIntroducción a ASP.NETFormularios Web Formularios Web (Web Forms)(Web Forms)ConfiguraciónConfiguración Conceptos principalesConceptos principales Accediendo desde el código al web.configAccediendo desde el código al web.configAutenticaciónAutenticaciónComo mantener el estado en una aplicación Como mantener el estado en una aplicación webweb

Page 48: DCE2 Introduccion ASP.net

Conceptos principales Conceptos principales (1/2)(1/2)

Archivo Web.ConfigArchivo Web.Config Es un archivo xml, donde se guarda Es un archivo xml, donde se guarda

información de configuración común a información de configuración común a toda la aplicación como ser: cadenas de toda la aplicación como ser: cadenas de conexión, tipo de autenticación, etc.conexión, tipo de autenticación, etc.

Arquitectura de configuración Arquitectura de configuración jerárquicajerárquica El archivo de configuración posee una El archivo de configuración posee una

estructura jerárquica (xml) que permite estructura jerárquica (xml) que permite una lectura rápida y facilita su una lectura rápida y facilita su modificación.modificación.

Page 49: DCE2 Introduccion ASP.net

Conceptos principales Conceptos principales (2/2)(2/2)

Secciones y grupos de seccionesSecciones y grupos de secciones En ASP.NET 2.0 se incorporan nuevos grupos En ASP.NET 2.0 se incorporan nuevos grupos

de secciones, como por ejemplo de secciones, como por ejemplo “connectionStrings”. Facilitando de este modo “connectionStrings”. Facilitando de este modo el acceso a las conexiones de datos y el acceso a las conexiones de datos y simplificando el código.simplificando el código.

Herramientas administrativasHerramientas administrativas Snap-in de MMC para ASP.NETSnap-in de MMC para ASP.NET Herramienta de administración del sitio web Herramienta de administración del sitio web

(Web Site Administration Tool) (Web Site Administration Tool)

Page 50: DCE2 Introduccion ASP.net

Accediendo desde el Accediendo desde el código al web.config código al web.config (1/2)(1/2)Secciones configuración más simplesSecciones configuración más simples<configuration> <connectionStrings> <add name="northwind"

connectionString="server=(local);database=Northwind;Integrated

Security=SSPI" providerName="System.Data.SqlClient" /> </connectionStrings> </configuration>

Page 51: DCE2 Introduccion ASP.net

Accediendo desde el Accediendo desde el código al web.config código al web.config (2/2)(2/2)

SqlConnection connection = new SqlConnection( ConfigurationManager.ConnectionStrings["ADVENTUREWORKSConnectionString"].ConnectionString);

Acceso de lectura/escritura a Acceso de lectura/escritura a especificaciones de configuraciónespecificaciones de configuración..Ejemplo en C#:Ejemplo en C#:

Dim connection As SqlConnection = New _ SqlConnection(ConfigurationManager.ConnectionStrings( _ "ADVENTUREWORKSConnectionString").ConnectionString)

Ejemplo en Visual BasicEjemplo en Visual Basic

Page 52: DCE2 Introduccion ASP.net

Temario Temario (1/2)(1/2)

Introducción a ASP.NETIntroducción a ASP.NETFormularios Web Formularios Web (Web Forms)(Web Forms)ConfiguraciónConfiguraciónAutenticaciónAutenticación GeneralidadesGeneralidades Tipos de Autenticación Tipos de Autenticación Autenticación por FormulariosAutenticación por Formularios Controles de LoginControles de LoginComo mantener el estado en una aplicación Como mantener el estado en una aplicación webweb

Page 53: DCE2 Introduccion ASP.net

GeneralidadesGeneralidades¿Qué es Autenticación?¿Qué es Autenticación? Es el mecanismo que permite afirmar Es el mecanismo que permite afirmar

que la persona que esta ingresando al que la persona que esta ingresando al sistema es quien dice ser.sistema es quien dice ser.

¿Cómo Funciona?¿Cómo Funciona? Se aceptan las credenciales ingresadas Se aceptan las credenciales ingresadas

por el usuario (usuario – contraseña) y por el usuario (usuario – contraseña) y se validan contra una base de datos, el se validan contra una base de datos, el sistema operativo, un servicio web, u sistema operativo, un servicio web, u otro mecanismo definido según el tipo otro mecanismo definido según el tipo de autenticación.de autenticación.

Page 54: DCE2 Introduccion ASP.net

Tipos de AutenticaciónTipos de AutenticaciónBasada en WindowsBasada en Windows Basada en Windows e IISBasada en Windows e IIS La solicitud de la página pasa por IISLa solicitud de la página pasa por IIS Si IIS valida exitosamente la credencial, Si IIS valida exitosamente la credencial,

entonces se devuelve la página solicitadaentonces se devuelve la página solicitadaBasada en FormulariosBasada en Formularios Las solicitudes no autenticadas son Las solicitudes no autenticadas son

redireccionadas a un formulario de loginredireccionadas a un formulario de login Después de validar la credencial se envía al Después de validar la credencial se envía al

cliente una cookie de autenticacióncliente una cookie de autenticaciónBasada en Microsoft PassportBasada en Microsoft Passport Servicio de autenticación centralizadoServicio de autenticación centralizado Passport es un Web ServicePassport es un Web Service

Page 55: DCE2 Introduccion ASP.net

Configurando la Configurando la autenticaciónautenticación<system.web>

<authentication mode="Forms"><forms loginUrl="login.aspx"></forms>

</authentication><authorization>

<deny users="?"/></authorization>

</system.web>

Page 56: DCE2 Introduccion ASP.net

Autenticación por Autenticación por FormulariosFormulariosLa autenticación por formularios se La autenticación por formularios se

utiliza para validar a los usuarios utiliza para validar a los usuarios contra bases de datos relaciones, contra bases de datos relaciones, Servicios Web, etc.Servicios Web, etc.¿Cómo funciona?¿Cómo funciona? Si las credenciales son válidas, ASP.NET Si las credenciales son válidas, ASP.NET

graba un ticket de autenticación en la graba un ticket de autenticación en la cookie que contiene la identidad del cookie que contiene la identidad del usuario.usuario.

Si el usuario es anónimo, redirecciona Si el usuario es anónimo, redirecciona las peticiones a una página las peticiones a una página predeterminada para validar las predeterminada para validar las credenciales del usuariocredenciales del usuario..

Page 57: DCE2 Introduccion ASP.net

Cliente solicita una página

Autorizado

Autenticación basada

en Formulario

NOAutenticado Autenticado

Form de Login(Usuario ingresa sus credenciales)

Autenticado

Cookie de autenticació

n

Autorizado

NOAutenticado

Acceso Denegad

o

Página Segura

solicitada

IIS

Usuario

ClaveGabriel

***********Aceptar

11 22

33

4466

5577

Autenticación por Autenticación por FormulariosFormularios

Page 58: DCE2 Introduccion ASP.net

Controles de Login Controles de Login (1/2)(1/2)Control Log InControl Log In

<asp:Login ID="Login1" runat="server“ CreateUserUrl="~/CrearUsuario.aspx"

CreateUserText="Nuevo Usuario“ RememberMeText="Recordar mi usuario"

BackColor="#F7F6F3" BorderColor="#E6E2D8" BorderPadding="4" BorderStyle="Solid" BorderWidth="1px" Font- Names="Verdana" Font-Size="0.8em" ForeColor="#333333" >

<TitleTextStyle BackColor="#5D7B9D" Font-Bold="True" Font-Size="0.9em" ForeColor="White" />

<InstructionTextStyle Font-Italic="True" ForeColor="Black" /> <TextBoxStyle Font-Size="0.8em" /> <LoginButtonStyle BackColor="#FFFBFF" BorderColor="#CCCCCC"

BorderStyle="Solid" BorderWidth="1px" Font-Names="Verdana" Font-Size="0.8em" ForeColor="#284775" />

</asp:Login>Ejemplo del controlEjemplo del control

Page 59: DCE2 Introduccion ASP.net

Controles de Login Controles de Login (2/2)(2/2)Control de Creación de UsuariosControl de Creación de Usuarios

<asp:CreateUserWizard ID=“createUserWizard" runat="server" CreateUserButtonText="Crear Usuario"

CompleteSuccessText="Usuario Creado" ContinueButtonText="Finalizar" ContinueDestinationPageUrl="~/Default.aspx“

FinishDestinationPageUrl="~/Default.aspx“> <WizardSteps> <asp:CreateUserWizardStep ID=“createUserWizardStep" runat="server"> </asp:CreateUserWizardStep> <asp:CompleteWizardStep ID=“completeWizardStep" runat="server" Title="Usuario Creado“

AllowReturn="true"> </asp:CompleteWizardStep> </WizardSteps></asp:CreateUserWizard>

Ejemplo del controlEjemplo del control

Page 60: DCE2 Introduccion ASP.net

Temario Temario (1/2)(1/2)Introducción a ASP.NETIntroducción a ASP.NETFormularios Web (Web Forms)Formularios Web (Web Forms)ConfiguraciónConfiguraciónAutenticaciónAutenticaciónComo mantener el estado en una Como mantener el estado en una aplicación webaplicación web GeneralidadesGeneralidades Global.asaxGlobal.asax Estado de la aplicaciónEstado de la aplicación Estado de la sesiónEstado de la sesión View StateView State

Page 61: DCE2 Introduccion ASP.net

GeneralidadesGeneralidadesLas páginas html de una aplicación web se Las páginas html de una aplicación web se transmiten por medio del protocolo HTTP, como se transmiten por medio del protocolo HTTP, como se mencionó anteriormente. Este protocolo es un mencionó anteriormente. Este protocolo es un protocolo “sin estado”.protocolo “sin estado”.Así, una vez que el usuario ingreso datos en el Así, una vez que el usuario ingreso datos en el navegador, navegador, si no se mantiene el estadosi no se mantiene el estado mediante mediante algún mecanismo, algún mecanismo, se pierden los datos ingresadosse pierden los datos ingresados..Por este motivo, ASP.Net proporciona mecanismos Por este motivo, ASP.Net proporciona mecanismos para mantener el estado de sus variables a través para mantener el estado de sus variables a través de las distintas peticiones de páginas.de las distintas peticiones de páginas.Entre estos mecanismos se encuentran:Entre estos mecanismos se encuentran: Application StateApplication State : mecanismo de almacenamiento global : mecanismo de almacenamiento global

accesible desde todas las páginas de la aplicación Webaccesible desde todas las páginas de la aplicación Web Session StateSession State : mecanismo de almacenamiento limitado a la : mecanismo de almacenamiento limitado a la

sesión actual del navegadorsesión actual del navegador View StateView State :Mantiene valores entre múltiples solicitudes a la :Mantiene valores entre múltiples solicitudes a la

misma páginamisma página

Page 62: DCE2 Introduccion ASP.net

Administración de estadosAdministración de estados

ContraseñaJuan

Ingresar

*******

Login.aspx Login.aspx

Hola Juan

Inicio.aspx

Ingrese sus datos de inicio de sesión

Juan

Ingresar

*******

Hola

Inicio.aspx

Nombre

Contraseña

Sin Adm. De Estados

Con Adm. De Estados

Olvide quien es Ud!

Ingrese sus datos de inicio de sesión

Nombre

Page 63: DCE2 Introduccion ASP.net

Tipos de administración de Tipos de administración de estadoestado

Del lado del servidorDel lado del servidor Del lado del clienteDel lado del clienteApplication stateApplication state

Información disponible Información disponible para todos los usuarios de para todos los usuarios de la aplicación Web.la aplicación Web.

CookiesCookiesArchivos de texto que Archivos de texto que guardan información de guardan información de estado en la PC clienteestado en la PC cliente

Session stateSession stateInformación disponible Información disponible únicamente para un únicamente para un usuario de una sesión usuario de una sesión específicaespecífica

ViewStateViewStateMantiene valores entre Mantiene valores entre múltiples solicitudes a la múltiples solicitudes a la misma páginamisma página

DatabaseDatabaseEn algunos casos se utiliza En algunos casos se utiliza una Base de Datos para una Base de Datos para guardar la información de guardar la información de estadoestado

Query stringsQuery strings Información anexada al final Información anexada al final de la URLde la URL

Page 64: DCE2 Introduccion ASP.net

Application State es un mecanismo Application State es un mecanismo de almacenamiento global accesible de almacenamiento global accesible desde todas las páginas de la desde todas las páginas de la aplicación Webaplicación WebSeesion State está limitada a la Seesion State está limitada a la sesión actual del browsersesión actual del browserLas sesiones ASP.NET se identifican Las sesiones ASP.NET se identifican con una cadena de caracteres ASCII y con una cadena de caracteres ASCII y se guarda como una Cookie en el se guarda como una Cookie en el clientecliente

SessionID

Variables deSession y Application

Administración de estados Administración de estados - Servidor - Servidor

Page 65: DCE2 Introduccion ASP.net

Cookies para mantener el estado:Cookies para mantener el estado: TemporariasTemporarias PersistentesPersistentesProblema: el usuario puede borrarlas Problema: el usuario puede borrarlas o deshabilitarlaso deshabilitarlasProblemas de seguridadProblemas de seguridadEspacio limitado a almacenar no más Espacio limitado a almacenar no más de 4KBde 4KB

Cookie

Administración de estados Administración de estados - Cliente- Cliente

Page 66: DCE2 Introduccion ASP.net

Global.asaxGlobal.asaxAdministra eventos a nivel de Administra eventos a nivel de aplicación y sesión.aplicación y sesión.Los eventos referentes a la Los eventos referentes a la manutención del estado de manutención del estado de aplicaciones web, son:aplicaciones web, son: Application_StartApplication_Start Application_EndApplication_End Session_StartSession_Start Session_EndSession_End

Page 67: DCE2 Introduccion ASP.net

Estado de la aplicaciónEstado de la aplicación(1/2)(1/2)Permite almacenar información a nivel de Permite almacenar información a nivel de aplicación, común a todas las sesiones. Esta aplicación, común a todas las sesiones. Esta información se almacena en una colección información se almacena en una colección llamada llamada ApplicationApplication..El acceso a esta información se realiza mediante El acceso a esta información se realiza mediante el objeto intrínseco “Application”el objeto intrínseco “Application”

Ejemplo en C#Ejemplo en C#protected void Application_Start() {

DataSet ds = new DataSet(); try {

FileStream fs = new FileStream(Server.MapPath("schemadata.xml"),

FileMode.Open,FileAccess.Read); StreamReader reader = new StreamReader(fs);ds.ReadXml(reader);

}finally { fs.Close(); }DataView view = new DataView(ds.Tables[0]); Application["Sucursal"] = view;

}

Page 68: DCE2 Introduccion ASP.net

Estado de la aplicaciónEstado de la aplicación(2/2)(2/2)

Ejemplo en Visual BasicEjemplo en Visual Basic

Sub Application_Start(ByVal sender As Object, ByVal e As _ EventArgs) Dim ds As DataSet = New DataSet

Try Dim fs As FileStream = New _

FileStream(Server.MapPath("schemadata.xml"), _ FileMode.Open, FileAccess.Read)

Dim reader As StreamReader = New StreamReader(fs) ds.ReadXml(reader)Finally

fs.CloseEnd TryDim view As DataView = New DataView(ds.Tables(0)) Application("Sucursal") = view

End Sub

Carlos Walzer
finally
Page 69: DCE2 Introduccion ASP.net

Estado de la sesión Estado de la sesión (1/2)(1/2)Una sesión es una interacción entre un navegador y Una sesión es una interacción entre un navegador y un servidor web (comprende varios Requests a lo un servidor web (comprende varios Requests a lo largo del tiempo)largo del tiempo)Es posible almacenar información únicamente Es posible almacenar información únicamente relevante para una sesión. relevante para una sesión. El acceso a esta información se realiza mediante el El acceso a esta información se realiza mediante el objeto intrínseco “Session” objeto intrínseco “Session”

Ejemplo C# Ejemplo C# Protected void Session_Start( object sender, EventArgs e ) { //...try

{conn = new SqlConnection(

ConfigurationManager.ConnectionStrings["ADVENTUREWORKSConnectionString"].ConnectionString);command.Connection = conn;conn.Open();object result = command.ExecuteScalar();Session["codigo"] = result;

}finally {

conn.Close(); } }

Page 70: DCE2 Introduccion ASP.net

Estado de la sesión Estado de la sesión (2/2)(2/2)

Ejemplo en Visual BasicEjemplo en Visual Basic

Sub Application_Start(ByVal sender As Object, ByVal e As _ EventArgs)

Dim ds As DataSet = New DataSetDim command As SqlCommand = New SqlCommand( _

"Select codigo From clientes Where name = " & nombre )Try

conn = New SqlConnection( _ ConfigurationManager.ConnectionStrings( _ "ADVENTUREWORKSConnectionString").ConnectionString)

command.Connection = conn conn.Open() Dim result As Object = command.ExecuteScalar() Session("codigo") = result Finally conn.Close() End Try End Sub

Page 71: DCE2 Introduccion ASP.net

View StateView StateMantiene el estado de los controles, Mantiene el estado de los controles, entre postback de una página.entre postback de una página.

El View State se implementa mediante El View State se implementa mediante un campo oculto en el html generado y un campo oculto en el html generado y viaja en cada POSTviaja en cada POST

Page 72: DCE2 Introduccion ASP.net

Temario Temario (2/2)(2/2)

Master PagesMaster Pages GeneralidadesGeneralidades Páginas MaestrasPáginas Maestras Páginas de ContenidoPáginas de ContenidoThemes y SkinsThemes y SkinsNavegaciónNavegaciónAcceso a DatosAcceso a DatosCompilación e InstalaciónCompilación e InstalaciónComo crear un sitio WebComo crear un sitio WebReferenciasReferencias

Page 73: DCE2 Introduccion ASP.net

GeneralidadesGeneralidadesLogran herencia visual para las páginas Logran herencia visual para las páginas WebWebPermite manejar áreas comunes de un Permite manejar áreas comunes de un sitio de manera consistente sitio de manera consistente En ASP.NET 1.1, el problema de la herencia En ASP.NET 1.1, el problema de la herencia visual implicabavisual implicaba Copiar & PegarCopiar & Pegar IncludesIncludes Herencia + User ControlsHerencia + User ControlsSe basan en Templates (Master Page) y en Se basan en Templates (Master Page) y en páginas de contenido (Content Page). páginas de contenido (Content Page). Permiten incluir menús, encabezados, Permiten incluir menús, encabezados, navegaciones, etc.navegaciones, etc.

Page 74: DCE2 Introduccion ASP.net

Páginas MaestrasPáginas MaestrasEn lugar de la directiva @Page, utiliza la En lugar de la directiva @Page, utiliza la directiva @Master:directiva @Master:

Se trata como cualquier formulario web, Se trata como cualquier formulario web, con la extensión .master, y debe incluir el con la extensión .master, y debe incluir el siguiente control:siguiente control:

<%@ Master Language="C#“ CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>

<asp:contentplaceholder id="contenedor" runat="server“>

contenido por defecto </asp:contentplaceholder>

Page 75: DCE2 Introduccion ASP.net

Páginas de contenidoPáginas de contenidoAl crear un página de contenido, hay que Al crear un página de contenido, hay que elegir la página maestra. La directiva @page elegir la página maestra. La directiva @page de la página sería:de la página sería:

No repiten los tags de la página maestra, No repiten los tags de la página maestra, pero se pueden acceder desde el código.pero se pueden acceder desde el código.Debe contener el controlDebe contener el control

<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" CodeFile="Default.aspx.cs" Inherits="_Default" Title="Home" %>

<asp:Content ID="cntDefault" ContentPlaceHolderID="contenedor" Runat="Server"> contenido de la página </asp:Content>

Page 76: DCE2 Introduccion ASP.net

TemarioTemarioMaster PagesMaster PagesThemes y SkinsThemes y Skins GeneralidadesGeneralidades Ejemplo del contenido de un “Skin”Ejemplo del contenido de un “Skin”NavegaciónNavegaciónAcceso a DatosAcceso a DatosCompilación e InstalaciónCompilación e InstalaciónComo crear un sitio WebComo crear un sitio WebReferenciasReferencias

Page 77: DCE2 Introduccion ASP.net

Themes y Skins - Themes y Skins - GeneralidadesGeneralidadesSkinsSkins: : Son definiciones de formato y estilos que Son definiciones de formato y estilos que

se aplican a los controles de servidor y se se aplican a los controles de servidor y se guardan en archivos de extensión .skinguardan en archivos de extensión .skin

Themes: Son “paquetes” de Skins, también Themes: Son “paquetes” de Skins, también pueden contener hojas de estilo en cascada e pueden contener hojas de estilo en cascada e imágenes asociados.imágenes asociados.

ASP.NET 2.0 incluye una nueva carpeta virtual ASP.NET 2.0 incluye una nueva carpeta virtual para la organización de los temas (APP_Themes).para la organización de los temas (APP_Themes).

Se pueden configurar a nivel de maquina (en el Se pueden configurar a nivel de maquina (en el machine config) a nivel de aplicación (en el machine config) a nivel de aplicación (en el web.config) o bien a nivel de página, dentro de la web.config) o bien a nivel de página, dentro de la directiva Page.directiva Page.

Page 78: DCE2 Introduccion ASP.net

Contenido de un archivo Contenido de un archivo SkinSkin

<asp:LoginName runat="server" BorderWidth="1" BorderColor="#FF9900" ForeColor="navy" Font-Names="verdana" />

Los archivos *.skin contienen Los archivos *.skin contienen declaraciones de estilo y formato de declaraciones de estilo y formato de los controles de ASP.NETlos controles de ASP.NET

Page 79: DCE2 Introduccion ASP.net

TemarioTemarioMaster PagesMaster PagesThemes y SkinsThemes y SkinsNavegaciónNavegación MenúMenú Control de navegaciónControl de navegaciónAcceso a DatosAcceso a DatosCompilación e InstalaciónCompilación e InstalaciónComo crear un sitio WebComo crear un sitio WebReferenciasReferencias

Page 80: DCE2 Introduccion ASP.net

Navegación - MenúNavegación - Menú <asp:menu id="Menu"

datasourceid="SiteMapDataSource1“ disappearafter="500" staticdisplaylevels="2" staticsubmenuindent="20"

orientation="Vertical"font-names="Trebuchet MS, Arial" DynamicMenuItemStyle-Width="150"Width="150“ runat="server"> <staticmenuitemstyle backcolor="RoyalBlue" forecolor="WhiteSmoke" horizontalpadding="5" verticalpadding="2" /><statichoverstyle backcolor="CornflowerBlue" forecolor="White" borderstyle="Solid" borderwidth="1px" /><dynamicmenuitemstyle backcolor="RoyalBlue" forecolor="WhiteSmoke" horizontalpadding="5" verticalpadding="2" /><dynamichoverstyle backcolor="CornflowerBlue" forecolor="White" borderstyle="Solid" borderwidth="1px" />

</asp:menu>

Ejemplo del controlEjemplo del control

Page 81: DCE2 Introduccion ASP.net

Control de NavegaciónControl de NavegaciónEste control esta basado en el modelo de Este control esta basado en el modelo de proveedores. (Se configura el proveedor proveedores. (Se configura el proveedor en el web.config)en el web.config)

A diferencia de otros controles de A diferencia de otros controles de navegación no posee una propiedad navegación no posee una propiedad “DataSource”.“DataSource”.

Al proveedor se le configura el archivo Al proveedor se le configura el archivo (xml) que posee el mapa del sitio, por (xml) que posee el mapa del sitio, por ejemplo:ejemplo: siteMapFile="web.sitemap" siteMapFile="web.sitemap"

Page 82: DCE2 Introduccion ASP.net

TemarioTemarioMaster PagesMaster PagesThemes y SkinsThemes y SkinsNavegaciónNavegaciónAcceso a DatosAcceso a Datos Controles de enlace a datosControles de enlace a datos Controles visualizadores de datosControles visualizadores de datosCompilación e InstalaciónCompilación e InstalaciónComo crear un sitio Web con Visual Studio Como crear un sitio Web con Visual Studio 20052005ReferenciasReferencias

Page 83: DCE2 Introduccion ASP.net

Controles de enlace de Controles de enlace de DatosDatosPermiten realizar el enlace entre un Permiten realizar el enlace entre un

control que muestra datos (gridview, control que muestra datos (gridview, detailsview, etc) y la lógica que los detailsview, etc) y la lógica que los administraadministra Control ObjectDataSourceControl ObjectDataSource

Enlaza los controles con una clase de la Enlaza los controles con una clase de la capa de capa de negocios.negocios. Control SqlDataSourceControl SqlDataSource

Enlaza los controles con una base de datos Enlaza los controles con una base de datos relacional.relacional.

Control XmlDataSourceControl XmlDataSourceEnlaza los controles con datos en formato Enlaza los controles con datos en formato

xml.xml.

Page 84: DCE2 Introduccion ASP.net

Controles visualizadores Controles visualizadores (1/2)(1/2)DataGridViewDataGridView

<asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1" DataKeyNames="ProductID" AllowPaging="True" AllowSorting="True"> <Columns> <asp:CommandField DeleteText="Excluir“ CancelText="Cancelar“ UpdateText="Atualizar" EditText="Editar"/> <asp:BoundField ReadOnly="True" HeaderText="Cod" DataField="ProductID"/> <asp:BoundField HeaderText="Produto" DataField="ProductName"/> <asp:BoundField HeaderText="Estoque" DataField="UnitsInStock" DataFormatString="{0:n0}"/></Columns> </asp:GridView> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:myConnection %>" UpdateCommand="UPDATE [Products] SET [ProductName] = @ProductName " SelectCommand="SELECT [ProductID], [ProductName] … FROM [Products]" InsertCommand="INSERT INTO [Products] ([ProductName] ..." DeleteCommand="DELETE FROM [Products] WHERE [ProductID] ..."> </asp:SqlDataSource>

Page 85: DCE2 Introduccion ASP.net

Controles visualizadores Controles visualizadores (2/2)(2/2)

<asp:FormView ID="FormView1" runat="server" DataSourceID="ObjectDataSource1“> <ItemTemplate> <asp:Label ID="CaptionLabel" runat="server" Text='<%#

Eval("Caption") %>' /><br /> <asp:Image ID="Image1" runat="server" ImageUrl='<%#

Eval("FileName", "images/{0}") %>' /> <br /> <asp:HyperLink ID="HyperLink1" Text=“Volver" NavigateUrl='<%# Eval( "AlbumID", "PhotosDataList.aspx?ID={0}") %>' runat="server" />

</ItemTemplate> </asp:FormView>

DetailsViewDetailsView

FormViewFormView

<asp:DetailsView AutoGenerateRows="False" DataKeyNames="au_id" DataSourceID="SqlDataSource3" HeaderText="Author Details" ID="DetailsView1" runat="server" Width="275px"> <Fields> <asp:BoundField DataField="au_id" HeaderText="au_id" SortExpression="au_id" />

<asp:BoundField DataField="au_lname" HeaderText="au_lname" /> <asp:CheckBoxField DataField="contract" HeaderText="contract" /> </Fields> </asp:DetailsView>

Page 86: DCE2 Introduccion ASP.net

TemarioTemarioMaster PagesMaster PagesThemes y SkinsThemes y SkinsNavegaciónNavegaciónAcceso a DatosAcceso a DatosCompilación e InstalaciónCompilación e Instalación GeneralidadesGeneralidades Compilación DinámicaCompilación DinámicaComo crear un sitio Web con Visual Studio Como crear un sitio Web con Visual Studio 20052005ReferenciasReferencias

Page 87: DCE2 Introduccion ASP.net

Compilación e Instalación -Compilación e Instalación -GeneralidadesGeneralidades

Compilación dinámica de:Compilación dinámica de: Aspx, asmx, ascxAspx, asmx, ascx Vb, cs, resx Vb, cs, resx Sólo es necesario poner los archivos en los Sólo es necesario poner los archivos en los

directorios específicosdirectorios específicosPrecompilación e implementación sin Precompilación e implementación sin código fuentecódigo fuente Aspnet_compiler.exeAspnet_compiler.exe precompila sitios y los precompila sitios y los

instala sin el código fuenteinstala sin el código fuente

Page 88: DCE2 Introduccion ASP.net

Compilación dinámicaCompilación dinámica

vroot

App_Code

CSVB

WSDLXSD

RESXRESOURCE

Los archivos se compilan dinámicamente en el primer acceso

App_LocalResources

Page 89: DCE2 Introduccion ASP.net

TemarioTemarioMaster PagesMaster PagesThemes y SkinsThemes y SkinsNavegaciónNavegaciónAcceso a DatosAcceso a Datos Compilación e InstalaciónCompilación e Instalación Como crear un sitio web con Como crear un sitio web con Visual Studio 2005Visual Studio 2005 GeneralidadesGeneralidades Creación y Acceso a ProyectosCreación y Acceso a ProyectosReferenciasReferencias

Page 90: DCE2 Introduccion ASP.net

GeneralidadesGeneralidadesIndependencia de IISIndependencia de IIS Visual Studio 2005 invluye el Visual Studio 2005 invluye el ASP.NET ASP.NET

Development ServerDevelopment Server, un servidor de HTTP , un servidor de HTTP local que permite trabajar en una PC de local que permite trabajar en una PC de desarrollo sin tener instalado IIS (Microsoft desarrollo sin tener instalado IIS (Microsoft Internet Information Server)Internet Information Server)

Front Page Server ExtensionsFront Page Server Extensions Las extensiones de servidor de Front Page no Las extensiones de servidor de Front Page no

son necesarias, ahora se puede seleccionar el son necesarias, ahora se puede seleccionar el directorio donde se van a alojar las páginas del directorio donde se van a alojar las páginas del sitio y comenzar a desarrollar.sitio y comenzar a desarrollar.

Page 91: DCE2 Introduccion ASP.net

Creación y Acceso a Creación y Acceso a ProyectosProyectosFile SystemFile System

Permite desarrollar un sitio en cualquier Permite desarrollar un sitio en cualquier carpeta de la PC.carpeta de la PC.

IIS LocalIIS Local Permite desarrollar localmente una aplicación Permite desarrollar localmente una aplicación

web en un directorio virtual de IIS.web en un directorio virtual de IIS.Sitio FTPSitio FTP Permite editar y modificar proyectos web Permite editar y modificar proyectos web

remotos utilizando el protocolo FTP.remotos utilizando el protocolo FTP.Sitio RemotoSitio Remoto Se puede sincronizar el proyecto de desarrollo Se puede sincronizar el proyecto de desarrollo

local con la aplicación instalada en producción.local con la aplicación instalada en producción.

Page 92: DCE2 Introduccion ASP.net

TemarioTemarioMaster PagesMaster PagesThemes y SkinsThemes y SkinsNavegaciónNavegaciónAcceso a DatosAcceso a DatosCompilación e InstalaciónCompilación e InstalaciónComo crear un sitio Web con Visual Studio Como crear un sitio Web con Visual Studio 20052005ReferenciasReferencias

Page 93: DCE2 Introduccion ASP.net

Referencias Referencias (1/2)(1/2)

Tutorial de ASP.NET 2.0 http://www.ASP.NET/Tutorials/quickstart.aspxEstado de la Aplicación http://www.microsoft.com/spanish/msdn/comunidad/mtj.net/voices/art175.aspCall Back http://msdn.microsoft.com/msdnmag/issues/05/01/CuttingEdge/default.aspxSitio Oficial de ASP.NEThttp://www.ASP.NET

Page 94: DCE2 Introduccion ASP.net

Referencias Referencias (2/2)(2/2)

Ciclo de Vida http://msdn2.microsoft.com/en-us/library/ms178472.aspxWeb Parts http://msdn.microsoft.com/msdnmag/issues/05/09/WebParts/default.aspxModelo de Proveedoreshttp://msdn.microsoft.com/ASP.NET/default.aspx?pull=/library/en-us/dnaspp/html/ASPNETProvMod_Intro.aspLibro: Introducing Microsoft ASP.NET 2.0Autor: Dino Espositohttp://www.microsoft.com/mspress/books/6962.asp

Page 95: DCE2 Introduccion ASP.net

© 2006 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or

implied, in this summary.