View
20
Download
4
Category
Preview:
Citation preview
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
Programa Microsoft Programa Microsoft Desarrollador Cinco Desarrollador Cinco
EstrellasEstrellas
ObjetivoObjetivo
Conocer 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
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 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
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
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
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 Como mantener el estado en una aplicación webaplicación web
Aplicaciones Web – Aplicaciones Web – ASP.NETASP.NET
Una 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..
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
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 los servidores Web se comunican uno con otrouno con otroEsta basado en texto y es Esta basado en texto y es transmitido sobre conexiones TCPtransmitido sobre conexiones TCP
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
Pagina solicitadaPagina solicitada
inicio.html
<html><body>
Bienvenidos al Curso ASP.NET
</body></html>
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]
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>
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>
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 >>
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
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 HTMLHTML
La 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
procesamientoprocesamientoAntes del Antes del
procesamientoprocesamiento
Después del Después del
procesamientoprocesamientoDespués del Después del
procesamientoprocesamiento
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
ASP.NETASP.NETASP.NET es el framework de programación ASP.NET es el framework de programación web dentro de .NETweb dentro de .NET
Permite desarrollar aplicaciones Web con un Permite desarrollar aplicaciones Web con un modelo “similar” al utilizado para modelo “similar” al utilizado para aplicaciones Windowsaplicaciones Windows
El componente fundamental de ASP.NET es El componente fundamental de ASP.NET es el WebFormel WebForm
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 .NET
Permite desarrollar Servicios Web XMLPermite desarrollar Servicios Web XML
ASP.NET - VentajasASP.NET - VentajasLa “parte ejecutable” de una La “parte ejecutable” de una aplicación ASP.NET es COMPILADAaplicación ASP.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 Independiente del lenguaje de programaciónprogramación
Encapsulamiento 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
ASP.NET – Ventajas (Cont.)ASP.NET – Ventajas (Cont.)
Permite usar ADO.NET para acceso a Permite usar ADO.NET para acceso a
datosdatos
Soporta 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 mismo
Mecanismo 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
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.aspx
Archivos 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
servidorservidor
Global.asaxGlobal.asax Eventos a nivel de aplicaciónEventos a nivel de aplicación
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 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
servidorservidor
Global.asaxGlobal.asax Eventos a nivel de aplicaciónEventos a nivel de aplicación
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
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
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
Ou
tpu
t C
ach
e
Comp.Comp.Comp.Comp.
BIN
Database
ASP.NET Web Server
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 WindowsWindows
Las 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 Virtual
Directorio 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 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:\C:\Inetpub\wwwrootInetpub\wwwroot
IIS es el servidor Web de la plataforma IIS es el servidor Web de la plataforma WindowsWindows
Las 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 Virtual
Directorio 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 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:\C:\Inetpub\wwwrootInetpub\wwwroot
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
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
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 directoriosdirectorios
Comienza 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 BINBIN
El 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
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 directoriosdirectorios
Comienza 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 BINBIN
El 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
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
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 Como mantener el estado en una aplicación webaplicación web
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
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
TextText
Generan HTML especifico según el Generan HTML especifico según el browser clientebrowser cliente
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 servidorservidor
Agregando Agregando runat=“server”runat=“server” y y el atributo el atributo idid, se , se convierten en convierten en Controles de Controles de Servidor HTMLServidor HTML
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 servidorservidor
Agregando Agregando runat=“server”runat=“server” y y el atributo el atributo idid, se , se convierten en convierten en Controles de Controles de Servidor HTMLServidor HTML
Controles de Controles de Servidor Servidor
HTMLHTML
Controles 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
datosdatos
No tienen una No tienen una relación 1:1 con relación 1:1 con elem. HTMLelem. HTML
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
datosdatos
No tienen una No tienen una relación 1:1 con relación 1:1 con elem. HTMLelem. HTML
Equivalencias de Equivalencias de ControlesControles
Botó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"/>
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>
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ón
El 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
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ón
El 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
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”.
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
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.IsValid
Muy 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
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.IsValid
Muy 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
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 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 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 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”
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" %>
WebForm2.aspx
FARMACIA
¿Por qué usar Controles de ¿Por qué usar Controles de Usuario?Usuario?
Son autocontenidosSon autocontenidosPueden ser utilizados más de una Pueden ser utilizados más de una vezvezPueden estar escritos en diferentes Pueden estar escritos en diferentes lenguajeslenguajes
WebForm1.aspx
FARMACIA
UserControl.ascx
FARMACIA
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>
Eventos en un WebForm Eventos en un WebForm (1/4)(1/4)
Server
Cliente Web
Analiza el mensajeevento
manejador
mensaje
respuesta
Llama al manejador apropiado
Modelo de Eventos Web FormModelo de Eventos Web Form
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)
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; }}
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
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
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
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.
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)
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>
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
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 Como mantener el estado en una aplicación webweb
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.
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 solicitada
Basada 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ó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
Configurando la Configurando la autenticaciónautenticación<system.web>
<authentication mode="Forms"><forms loginUrl="login.aspx"></forms>
</authentication><authorization>
<deny users="?"/></authorization>
</system.web>
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..
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
Clave
Gabriel
***********Aceptar
11 22
33
4466
5577
Autenticación por Autenticación por FormulariosFormularios
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
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
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
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
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
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
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 con una cadena de caracteres ASCII y se guarda como una Cookie en el y se guarda como una Cookie en el clientecliente
SessionID
Variables deSession y Application
Administración de estados Administración de estados - Servidor - Servidor
Cookies para mantener el estado:Cookies para mantener el estado: TemporariasTemporarias PersistentesPersistentes
Problema: 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
Global.asaxGlobal.asax
Administra 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
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 El acceso a esta información se realiza mediante el objeto intrínseco “Application”mediante 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;
}
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
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(); } }
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
View StateView State
Mantiene 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
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
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 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.
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>
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>
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
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.
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
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
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
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 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"
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 Como crear un sitio Web con Visual Studio 20052005ReferenciasReferencias
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 ObjectDataSourceEnlaza 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.
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>
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>
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 Como crear un sitio Web con Visual Studio 20052005ReferenciasReferencias
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íficos
Precompilació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
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
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 Como crear un sitio web con Visual Studio 2005Visual Studio 2005 GeneralidadesGeneralidades Creación y Acceso a ProyectosCreación y Acceso a ProyectosReferenciasReferencias
GeneralidadesGeneralidades
Independencia 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.
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.
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 20052005
ReferenciasReferencias
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
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
© 2006 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or
implied, in this summary.
Recommended