Introducción ASP .NET

100
Introducción al desarrollo de Introducción al desarrollo de aplicaciones Web con ASP.NET aplicaciones Web con ASP.NET Lenguajes Avanzados Lenguajes Avanzados Ing. Uriel García R. Ingeniería de Sistemas Universidad Católica de Costa Rica

description

conceptos de asp .net

Transcript of Introducción ASP .NET

Page 1: Introducción ASP .NET

Introducción al desarrollo de Introducción al desarrollo de aplicaciones Web con ASP.NETaplicaciones Web con ASP.NET

Lenguajes AvanzadosLenguajes Avanzados

Ing. Uriel García R.Ingeniería de Sistemas

Universidad Católica de Costa Rica

Page 2: Introducción ASP .NET
Page 3: Introducción ASP .NET

Lo nuevo…. Más funcionesLo nuevo…. Más funcionesCrear prototipo de tus ideas rápidamente y hacer realidad tus Crear prototipo de tus ideas rápidamente y hacer realidad tus proyectos más deprisa. proyectos más deprisa.

Simplifica el desarrollo usando tus conocimientos actuales y Simplifica el desarrollo usando tus conocimientos actuales y basándote en estándares y marcos de trabajo existentes. basándote en estándares y marcos de trabajo existentes.

Herramientas integradas de pruebas y depuración que les Herramientas integradas de pruebas y depuración que les permiten encontrar errores y garantizar soluciones de alta permiten encontrar errores y garantizar soluciones de alta calidad. calidad. Dedica tu tiempo a pensar en soluciones creativas en lugar Dedica tu tiempo a pensar en soluciones creativas en lugar de interpretar el código. de interpretar el código.

Las pruebas manuales y automatizadas y unas herramientas Las pruebas manuales y automatizadas y unas herramientas avanzadas de depuración ayudan a garantizar que estás avanzadas de depuración ayudan a garantizar que estás compilando la aplicación adecuada de la manera correcta.compilando la aplicación adecuada de la manera correcta.

Page 4: Introducción ASP .NET
Page 5: Introducción ASP .NET

Requerimientos Requerimientos windows 7; windows server 2003 r2 (32-bit x86); windows server 2003 r2 x64 windows 7; windows server 2003 r2 (32-bit x86); windows server 2003 r2 x64 editions; windows server 2003 service pack 2; windows server 2008 r2; editions; windows server 2003 service pack 2; windows server 2008 r2; windows server 2008 service pack 2; windows vista service pack 2; windows windows server 2008 service pack 2; windows vista service pack 2; windows xp service pack 3xp service pack 3

windows xp (x86) with service pack 3 - all editions except starter editionwindows xp (x86) with service pack 3 - all editions except starter editionwindows vista (x86 & x64) with service pack 2 - all editions except starter windows vista (x86 & x64) with service pack 2 - all editions except starter editioneditionwindows 7 (x86 and x64)windows 7 (x86 and x64)windows server 2003 (x86 & x64) with service pack 2 - all editionswindows server 2003 (x86 & x64) with service pack 2 - all editionsusers will need to install msxml6 if not already presentusers will need to install msxml6 if not already presentwindows server 2003 r2 (x86 and x64) - all editionswindows server 2003 r2 (x86 and x64) - all editionswindows server 2008 (x86 and x64) with service pack 2 - all editionswindows server 2008 (x86 and x64) with service pack 2 - all editionswindows server 2008 r2 (x64) - all editionswindows server 2008 r2 (x64) - all editionssupported architectures: 32-bit (x86) / 64-bit (x64) (wow)supported architectures: 32-bit (x86) / 64-bit (x64) (wow)

Page 6: Introducción ASP .NET

Requerimientos del HardwareRequerimientos del Hardware

Computer with a 1.6ghz or faster processorComputer with a 1.6ghz or faster processor1024 mb ram (1.5 gb if running in a 1024 mb ram (1.5 gb if running in a implícito machine)implícito machine)3 gb of available hard-disk space3 gb of available hard-disk space5400 rpm hard drive5400 rpm hard drivedirectx 9 capable video card running at directx 9 capable video card running at 1024 x 768 or higher-resolution display1024 x 768 or higher-resolution displaydvd-rom drivedvd-rom drive

Page 7: Introducción ASP .NET

ObjetivoObjetivo

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

Page 8: Introducción 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 Estrellas

Para 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 2010 óMS Visual Studio 2010 ó Base de DatosBase de Datos

MS SQL 2008 Express EditionMS SQL 2008 Express Edition

Page 9: Introducción 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 10: Introducción 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 Visual Como crear una aplicacion Web en Visual Studio 2010Studio 2010ReferenciasReferencias

Page 11: Introducción ASP .NET

TemarioTemario

Introducció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 aplicación webComo mantener el estado en una aplicación web

Page 12: Introducción ASP .NET

Aplicaciones Web – ASP.NETAplicaciones Web – ASP.NET

Una aplicación web es un conjunto de páginas HTML que Una aplicación web es un conjunto de páginas HTML que se transmiten por medio del protocolo HTTP de un servidor se transmiten por medio del protocolo HTTP de un servidor al cliente y viceversa, brindando distintas funcionalidades al cliente y viceversa, brindando distintas funcionalidades a un usuario finala un usuario final..

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

Page 13: Introducción ASP .NET

Aplicaciones Web - Servidor Aplicaciones Web - Servidor WebWeb

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

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

Page 14: Introducción ASP .NET

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

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

Page 15: Introducción 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 DNSServidor

Cliente

HTTP Request

HTTP Response

Page 16: Introducción ASP .NET

Pagina solicitadaPagina solicitada

inicio.html

<html><body>

Bienvenidos al Curso ASP.NET

</body></html>

Page 17: Introducción ASP .NET

HTTP RequestHTTP Request

GET /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 18: Introducción 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 19: Introducción ASP .NET

HTML FormsHTML FormsEn el corazón de toda aplicación Web genuina están En el corazón de toda aplicación Web genuina están los HTML Formslos HTML FormsUn HTML Form es la porción de un documento Un HTML Form es la porción de un documento HTML que aparece entre las etiquetas HTML que aparece entre las 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 20: Introducción ASP .NET

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

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

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

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

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

Ejemplo >>Ejemplo >>

Page 21: Introducción 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 22: Introducción ASP .NET

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

La parte difícil es la construcción de la lógica del La parte difícil es la construcción de la lógica del lado del servidor. “Algo en el servidor”, tiene que lado del servidor. “Algo en el servidor”, tiene que interpretar las entradas del usuario enviadas junto interpretar las entradas del usuario enviadas junto con el con el formform y generar la correspondiente salida. y 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 procesamientoAntes del procesamiento

Después del procesamientoDespués del procesamiento

Page 23: Introducción ASP .NET

Procesamiento en el ServidorProcesamiento en el ServidorExisten varias tecnologías de procesamiento:Existen varias tecnologías de procesamiento: CGICGI (Common Gateway Inter face) (Common Gateway Inter face)

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 Programming (Internet Server Application Programming Interface)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 servidorScript del lado del servidor Programadas en Programadas en JScriptJScript o o VBScriptVBScript Objetos intrínsecos que abstraen detalles de bajo nivel de HTTP. Objetos intrínsecos que abstraen detalles de bajo nivel de HTTP.

Objetos Objetos RequestRequest y y ResponseResponse Permite usar ADO (ActiveX Data Object) para acceso a datosPermite usar ADO (ActiveX Data Object) para acceso a datos

Page 24: Introducción ASP .NET

ASP.NETASP.NETASP.NET es el framework de programación web ASP.NET es el framework de programación web dentro de .NETdentro de .NETPermite desarrollar aplicaciones Web con un Permite desarrollar aplicaciones Web con un modelo “similar” al utilizado para aplicaciones modelo “similar” al utilizado para aplicaciones WindowsWindowsEl componente fundamental de ASP.NET es el El componente fundamental de ASP.NET es el WebFormWebForm

Independencia 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 25: Introducción ASP .NET

ASP.NET - VentajasASP.NET - VentajasLa “parte ejecutable” de una aplicación La “parte ejecutable” de una aplicación ASP.NET es COMPILADAASP.NET es COMPILADA

Implementació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 Library

Independiente del lenguaje de programaciónIndependiente del lenguaje de programación

Encapsulamiento de funcionalidad a través Encapsulamiento de funcionalidad a través de controles de servidor y controles de de controles de servidor y controles de usuariousuario

Page 26: Introducción ASP .NET

ASP.NET – Ventajas (Cont.)ASP.NET – Ventajas (Cont.)Permite usar ADO.NET para acceso a datosPermite usar ADO.NET para acceso a datos

Soporta XML, Hojas de estilo CSS, etc.Soporta XML, Hojas de estilo CSS, etc.

Detección automática del navegador cliente, Detección automática del navegador cliente, generando el lenguaje de marcas soportado generando el lenguaje de marcas soportado por el mismopor el mismo

Mecanismo de Caching incorporado para Mecanismo de Caching incorporado para páginas completa o partes de la misma páginas completa o partes de la misma frecuentemente solicitadasfrecuentemente solicitadas

Page 27: Introducción ASP .NET

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

WebForms (Formularios Web) WebForms (Formularios Web) Uno o más archivos con extensión Uno o más archivos con extensión .aspx.aspx

Archivos Code-BehindArchivos Code-Behind Archivos asociados a WebForms que contienen Archivos asociados a WebForms que contienen

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

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

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

Page 28: Introducción ASP .NET

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

Directorio BINDirectorio BIN Contiene el assembly de la aplicación (Ej.: Contiene el assembly de la aplicación (Ej.:

MiAplic.dll)MiAplic.dll)

Cero o más assemblies (Componentes externos)Cero o más assemblies (Componentes externos)

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

datos desde Servicios Webdatos desde Servicios Web

Page 29: Introducción ASP .NET

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

Servicios Web

Cliente

Internet

WebForm1.aspx.vb

WebForm1.aspx

WebForm2.aspx.vb

WebForm2.aspx

Global.asax

Web.config

Out

put

Cac

he

Comp.Comp.

BIN

Database

ASP.NET Web Server

Page 30: Introducción ASP .NET

Las aplicaciones Web ASP.NET + IISLas aplicaciones Web ASP.NET + IIS

IIS es el servidor Web de la plataforma WindowsIIS es el servidor Web de la plataforma Windows

Las aplicaciones Web solo pueden existir en una Las aplicaciones Web solo pueden existir en una ubicación que es publicada por IIS como un ubicación que es publicada por IIS como un Directorio VirtualDirectorio Virtual

Directorio VirtualDirectorio Virtual:: es un recurso compartido es un recurso compartido identificado por un alias y que representa una identificado por un alias y que representa una ubicación física en el servidorubicación física en el servidor

El famoso El famoso http://localhosthttp://localhost hace referencia al hace referencia al directorio raíz del servidor webdirectorio raíz del servidor web

Por default, Por default, http://localhosthttp://localhost “apunta” a “apunta” a C:\Inetpub\C:\Inetpub\wwwrootwwwroot

Page 31: Introducción ASP .NET

Las aplicaciones Web ASP.NET + IISLas aplicaciones Web ASP.NET + IIS

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

Vir tual:Vir tual: http://localhost/http://localhost/MiAplicacionMiAplicacion

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

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

Page 32: Introducción ASP .NET

Estructura de las aplicaciones WebEstructura de las aplicaciones Web

El “perímetro” de una aplicación Web es El “perímetro” de una aplicación Web es determinada por su estructura de directoriosdeterminada por su estructura de directorios

Comienza por su directorio raíz, el cual Comienza por su directorio raíz, el cual contiene: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 BINBIN

El perímetro de la aplicación termina en su El perímetro de la aplicación termina en su último directorio o cuando se encuentra el último directorio o cuando se encuentra el directorio raíz de otra aplicación Web directorio raíz de otra aplicación Web

Page 33: Introducción 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 34: Introducción ASP .NET

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

Introducción a ASP.NETIntroducción a ASP.NET

Formularios 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 aplicación webComo mantener el estado en una aplicación web

Page 35: Introducción ASP .NET

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

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

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

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

Partial ClassPartial Class Un nuevo concepto, que es aplicado en ASP.NET para Un nuevo concepto, que es aplicado en ASP.NET para

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

WebForms - GeneralidadesWebForms - Generalidades

Page 36: Introducción ASP .NET

Controles de ServidorControles de ServidorComponentes que se ejecutan en el lado Componentes que se ejecutan en el lado del servidordel 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 postbacks al Mantienen su “estado” entre postbacks al servidor – ViewStateservidor – 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 TextText

Generan HTML especifico según el browser Generan HTML especifico según el browser clientecliente

Page 37: Introducción ASP .NET

Tipos de Controles de ServidorTipos de Controles de Servidor

Por default, los Por default, los elementos HTML no son elementos HTML no son accesibles desde código accesibles desde código del lado del servidordel lado del servidor

Agregando Agregando runat=“server”runat=“server” y el y el atributo atributo idid , se convierten , se convierten en Controles de Servidor en Controles de Servidor HTMLHTML

Controles de Controles de Servidor HTMLServidor HTML

Controles de Controles de Servidor WebServidor Web

Conocidos como Conocidos como WebControlsWebControls

Solo accesibles del lado Solo accesibles del lado del servidordel servidor

Muchos tiposMuchos tipos IntrínsecosIntrínsecos ValidaciónValidación ““Ricos”Ricos” Del tipo lista de datosDel tipo lista de datos

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

Page 38: Introducción ASP .NET

Equivalencias de ControlesEquivalencias de ControlesBotón HTML “clásico” (No es de Servidor)Botón HTML “clásico” (No es de 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 39: Introducción ASP .NET

Controles de Servidor - EjemplosControles de Servidor - EjemplosWebControlWebControl 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 40: Introducción ASP .NET

Son elementos ocultos que validan las entradas Son elementos ocultos que validan las entradas de datos contra algún patrónde datos contra algún patrón

El proceso de validación puede ser llevado en:El proceso de validación puede ser llevado en: ClienteCliente

El browser cliente debe soportar lenguaje scriptEl browser cliente debe soportar lenguaje script 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 por ej. en Permite validar contra datos almacenados por ej. en

una base de datosuna base de datos

Controles de Servidor - ValidaciónControles de Servidor - Validación

Page 41: Introducción ASP .NET

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

contra otro control.contra otro control. RangeValidatorRangeValidator. Valor dentro de un rango de tipos.. Valor dentro de un rango de tipos. RegularExpressionValidatorRegularExpressionValidator. Valida contra un patrón o . Valida contra un patrón o

expresión regular.expresión regular. CustomValidatorCustomValidator. Lógica de validación proporcionada . Lógica de validación proporcionada

por nosotros.por nosotros. ValidationSummaryValidationSummary. No es un validador, sino que . No es un validador, sino que

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

Controles de Servidor - ValidaciónControles de Servidor - Validación

Page 42: Introducción ASP .NET

En el lado del servidor se puede determinar En el lado del servidor se puede determinar

si TODAS las validaciones fueron exitosas si TODAS las validaciones fueron exitosas

mediante mediante Page.IsValidPage.IsValid

Muy importante! Muy importante! La propiedad La propiedad IsValid IsValid NO está disponible en los NO está disponible en los

eventos eventos InitInit ni ni LoadLoad del WebForm del WebForm

Controles de Servidor - ValidaciónControles de Servidor - Validación

Page 43: Introducción ASP .NET

Controles con lógica de IU compleja Controles con lógica de IU compleja

encapsulados de forma sencillaencapsulados de forma sencilla

Ejemplos:Ejemplos: AdRotatorAdRotator. Permite mostrar anuncios . Permite mostrar anuncios

publicitarios (banners) de una secuencia publicitarios (banners) de una secuencia

predeterminada o aleatoria.predeterminada o aleatoria.

CalendarCalendar. Permite disponer de un calendario . Permite disponer de un calendario

altamente personalizable.altamente personalizable.

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

Page 44: Introducción ASP .NET

Controles de UsuarioControles de Usuario

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

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

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

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

Page 45: Introducción ASP .NET

WebForm2.aspx

FARMACIA

¿Por qué usar Controles de Usuario?¿Por qué usar Controles de 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 46: Introducción ASP .NET

Agregando Controles de UsuarioAgregando Controles de Usuario

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

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

Podemos acceder y crear propiedades Podemos acceder y crear propiedades como con cualquier otro control u objetocomo con cualquier otro control 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 47: Introducción ASP .NET

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

Server

Cliente Web

Analiza el mensajeevento

manejador

mensaje

respuesta

Llama al manejador apropiado

Modelo de Eventos Web FormModelo de Eventos Web Form

Page 48: Introducción 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 generan Cuando se trabaja con controles ASP.NET, estos generan eventos en el servidor para responder a las peticiones del eventos en el servidor para responder a las peticiones del usuario, produciéndose usuario, produciéndose PostBackPostBack ..

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

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

Page 49: Introducción ASP .NET

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

Declaración de eventos en un control del lado del cliente:Declaración de eventos en un control del lado del cliente:

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

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

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

Page 50: Introducción ASP .NET

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

Atención del evento en el servidor ( code behind ) .Atención del evento en el servidor ( code 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 51: Introducción ASP .NET

Ciclo de vida de un WebFormCiclo de vida de un WebFormSucesos mas importantes del ciclo de vida de una página:Sucesos mas importantes del ciclo de vida de una 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 52: Introducción 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 webComo mantener el estado en una aplicación web

Page 53: Introducción 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 toda la información de configuración común a toda la aplicación como ser: cadenas de conexión, tipo aplicación como ser: cadenas de conexión, tipo de autenticación, etc.de autenticación, etc.

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

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

Page 54: Introducción 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 de En ASP.NET 2.0 se incorporan nuevos grupos de

secciones, como por ejemplo “connectionStrings”. secciones, como por ejemplo “connectionStrings”. Facilitando de este modo el acceso a las conexiones de Facilitando de este modo el acceso a las conexiones de datos y simplificando el código.datos y 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 (Web Site Herramienta de administración del sitio web (Web Site

Administration Tool) Administration Tool)

Page 55: Introducción ASP .NET

Accediendo desde el código al Accediendo desde el código al web.config 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 56: Introducción ASP .NET

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

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

Acceso de lectura/escritura a especificaciones de Acceso de lectura/escritura a especificaciones de configuraciónconfiguració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 57: Introducción 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

Autenticació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 webComo mantener el estado en una aplicación web

Page 58: Introducción ASP .NET

GeneralidadesGeneralidades

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

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

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

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

Page 59: Introducción 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, entonces se Si IIS valida exitosamente la credencial, entonces se

devuelve la página solicitadadevuelve la página solicitada

Basada en FormulariosBasada en Formularios Las solicitudes no autenticadas son redireccionadas a Las solicitudes no autenticadas son redireccionadas a

un formulario de loginun formulario de login Después de validar la credencial se envía al cliente una Después de validar la credencial se envía al cliente una

cookie de autenticacióncookie de autenticación

Basada 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 60: Introducción ASP .NET

Configurando la autenticaciónConfigurando la autenticación

<system.web> <authentication mode="Forms">

<forms loginUrl="login.aspx"></forms></authentication><authorization>

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

</system.web>

Page 61: Introducción ASP .NET

Autenticación por FormulariosAutenticación por FormulariosLa autenticación por formularios se utiliza La autenticación por formularios se utiliza para validar a los usuarios contra bases de para validar a los usuarios contra bases de datos relaciones, Servicios Web, etc.datos relaciones, Servicios Web, etc.

¿Cómo funciona?¿Cómo funciona? Si las credenciales son válidas, ASP.NET graba Si las credenciales son válidas, ASP.NET graba

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

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

Page 62: Introducción 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 Denegado

Página Segura

solicitada

IIS

Usuario

Clave

Gabriel

***********

Aceptar

11 22

33

4466

5577

Autenticación por FormulariosAutenticación por Formularios

Page 63: Introducción 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 64: Introducción 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 65: Introducción 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ón

Como 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 66: Introducción ASP .NET

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

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

actual del navegadoractual del navegador View StateView State :Mantiene valores entre múltiples solicitudes a la misma :Mantiene valores entre múltiples solicitudes a la misma

páginapágina

Page 67: Introducción ASP .NET

Administración de estadosAdministración de estados

Contraseña

Juan

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 68: Introducción 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 cliente

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

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

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

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

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

Query strings Query strings Información anexada al final de la Información anexada al final de la URLURL

Page 69: Introducción ASP .NET

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

SessionID

Variables deSession y Application

Administración de estados - Administración de estados - ServidorServidor

Page 70: Introducción ASP .NET

Cookies para mantener el estado:Cookies para mantener el estado: TemporariasTemporarias PersistentesPersistentes

Problema: el usuario puede borrarlas o Problema: el usuario puede borrarlas o deshabilitarlasdeshabilitarlasProblemas de seguridadProblemas de seguridadEspacio limitado a almacenar no más de Espacio limitado a almacenar no más de 4KB4KB

Cookie

Administración de estados - Administración de estados - ClienteCliente

Page 71: Introducción ASP .NET

Global.asaxGlobal.asax

Administra eventos a nivel de aplicación y Administra eventos a nivel de aplicación y sesión.sesión.

Los eventos referentes a la manutención Los eventos referentes a la manutención del estado de aplicaciones web, son:del estado de aplicaciones web, son: Application_StartApplication_Start Application_EndApplication_End Session_StartSession_Start Session_EndSession_End

Page 72: Introducción ASP .NET

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

Permite almacenar información a nivel de aplicación, Permite almacenar información a nivel de aplicación, común a todas las sesiones. Esta información se común a todas las sesiones. Esta información se almacena en una colección llamada almacena en una colección llamada ApplicationApplication ..El acceso a esta información se realiza mediante el El acceso a esta información se realiza mediante el objeto intrínseco “Application”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 73: Introducción 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

Page 74: Introducción 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 un servidor Una sesión es una interacción entre un navegador y un servidor web (comprende varios Requests a lo largo del tiempo)web (comprende varios Requests a lo largo del tiempo)Es posible almacenar información únicamente relevante para Es posible almacenar información únicamente relevante para una sesión. una sesión. El acceso a esta información se realiza mediante el objeto El acceso a esta información se realiza mediante el objeto intrínseco “Session” 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 75: Introducción 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 76: Introducción ASP .NET

View StateView State

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

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

Page 77: Introducción 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 78: Introducción ASP .NET

GeneralidadesGeneralidadesLogran herencia visual para las páginas WebLogran herencia visual para las páginas WebPermite manejar áreas comunes de un sitio de Permite manejar áreas comunes de un sitio de manera consistente manera consistente En ASP.NET 1.1, el problema de la herencia visual En ASP.NET 1.1, el problema de la herencia visual implicabaimplicaba Copiar & PegarCopiar & Pegar IncludesIncludes Herencia + User ControlsHerencia + User Controls

Se 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 79: Introducción ASP .NET

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

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

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

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

</asp:contentplaceholder>

Page 80: Introducción ASP .NET

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

No repiten los tags de la página maestra, pero se No repiten los tags de la página maestra, pero se pueden acceder desde el código.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 81: Introducción ASP .NET

TemarioTemarioMaster PagesMaster Pages

Themes 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 82: Introducción ASP .NET

Themes y Skins - GeneralidadesThemes y Skins - GeneralidadesSkinsSkins: : Son definiciones de formato y estilos que se Son definiciones de formato y estilos que se aplican a los controles de servidor y se guardan en aplican a los controles de servidor y se guardan en archivos de extensión .skinarchivos de extensión .skin

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

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

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

Page 83: Introducción ASP .NET

Contenido de un archivo SkinContenido de un archivo Skin

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

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

Page 84: Introducción ASP .NET

TemarioTemarioMaster PagesMaster PagesThemes y SkinsThemes y Skins

Navegació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 85: Introducción 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 86: Introducción ASP .NET

Control de NavegaciónControl de Navegación

Este control esta basado en el modelo de Este control esta basado en el modelo de proveedores. (Se configura el proveedor en el proveedores. (Se configura el proveedor en el web.config)web.config)

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

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

Page 87: Introducción ASP .NET

TemarioTemarioMaster PagesMaster PagesThemes y SkinsThemes y SkinsNavegaciónNavegación

Acceso 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 2005Como crear un sitio Web con Visual Studio 2005ReferenciasReferencias

Page 88: Introducción ASP .NET

Controles de enlace de DatosControles de enlace de DatosPermiten realizar el enlace entre un control que Permiten realizar el enlace entre un control que muestra datos (gridview, detailsview, etc) y la muestra datos (gridview, detailsview, etc) y la lógica que los administralógica que los administra

Control ObjectDataSourceControl ObjectDataSourceEnlaza los controles con una clase de la capa de Enlaza los controles con una clase de la capa de negocios.negocios.

Control SqlDataSourceControl SqlDataSourceEnlaza los controles con una base de datos Enlaza los controles con una base de datos

relacional.relacional. Control XmlDataSourceControl XmlDataSource

Enlaza los controles con datos en formato xml.Enlaza los controles con datos en formato xml.

Page 89: Introducción 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 90: Introducción 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 91: Introducción ASP .NET

TemarioTemarioMaster PagesMaster PagesThemes y SkinsThemes y SkinsNavegaciónNavegaciónAcceso a DatosAcceso a Datos

Compilación e InstalaciónCompilación e Instalación GeneralidadesGeneralidades Compilación DinámicaCompilación DinámicaComo crear un sitio Web con Visual Studio 2005Como crear un sitio Web con Visual Studio 2005ReferenciasReferencias

Page 92: Introducción ASP .NET

Compilación e Instalación Compilación e Instalación -Generalidades-Generalidades

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 directorios Sólo es necesario poner los archivos en los directorios

específicosespecíficos

Precompilación e implementación sin código Precompilación e implementación sin código fuentefuente Aspnet_compiler.exeAspnet_compiler.exe precompila sitios y los instala sin precompila sitios y los instala sin

el código fuenteel código fuente

Page 93: Introducción ASP .NET

Compilación dinámicaCompilación dinámica

vroot

App_Code

CS

VB

WSDL

XSD

RESX

RESOURCE

Los archivos se compilan dinámicamente en el primer acceso

App_LocalResources

Page 94: Introducción ASP .NET

TemarioTemario

Master 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 Visual Como crear un sitio web con Visual Studio 2005Studio 2005 GeneralidadesGeneralidades Creación y Acceso a ProyectosCreación y Acceso a ProyectosReferenciasReferencias

Page 95: Introducción ASP .NET

GeneralidadesGeneralidades

Independencia de IISIndependencia de IIS Visual Studio 2005 invluye el Visual Studio 2005 invluye el ASP.NET Development ASP.NET Development

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

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

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

Page 96: Introducción ASP .NET

Creación y Acceso a ProyectosCreación y Acceso a ProyectosFile SystemFile System Permite desarrollar un sitio en cualquier carpeta de la Permite desarrollar un sitio en cualquier carpeta de la

PC.PC.

I IS LocalIIS Local Permite desarrollar localmente una aplicación web en Permite desarrollar localmente una aplicación web en

un directorio virtual de IIS.un directorio virtual de IIS.

Sitio FTPSitio FTP Permite editar y modificar proyectos web remotos Permite editar y modificar proyectos web remotos

utilizando el protocolo FTP.utilizando el protocolo FTP.

Sitio RemotoSitio Remoto Se puede sincronizar el proyecto de desarrollo local con Se puede sincronizar el proyecto de desarrollo local con

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

Page 97: Introducción 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 2005Como crear un sitio Web con Visual Studio 2005

ReferenciasReferencias

Page 98: Introducción 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 99: Introducción 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 100: Introducción 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.