DCE2 Introduccion
DCE2 Introduccion
Objetivo
Conocer los elementos involucrados en el desarrollo de una aplicacin web con Visual Studio 2005 y la plataforma Microsoft .NET, presentando las novedades introducidas al respecto en la nueva versin 2.0
Prerrequisitos
Haber cursado y aprobado el mdulo correspondiente a la Estrella 1 del programa Desarrollador 5 Estrellas
Para realizar los ejercicios y ver los ejemplos de cdigo adjunto necesita:
Herramienta de Desarrollo MS Visual Studio 2005 MS Visual Web Developer 2005 Express Base de Datos MS SQL 2005 Express Edition
Temario (1/2)
Introduccin a ASP.NET Formularios Web (Web Forms) Configuracin Autenticacin Como mantener el estado en una aplicacin Web
Temario (2/2)
Master Pages Themes y Skins Navegacin Acceso a Datos Compilacin e Instalacin Como crear una aplicacion Web en Visual Studio 2005 Referencias
Temario
Introduccin a ASP.NET
Aplicaciones Web ASP.NET Servidor Web Formularios Web (Web Forms) Configuracin Autenticacin Como mantener el estado en una aplicacin web
Funcionamiento de HTTP
Cliente
http://www.cursoaspnet.c om/inicio.html Internet DNS IP=66.45.26.25 Puerto: 80
Servidor
HTTP Request
www.cursoaspnet.com IP = 66.45.26.25
HTTP Response
Pagina solicitada
inicio.html
HTTP Request
GET /inicio.html HTTP/1.1 Accept: */* Accept-Language:... Accept-Encoding:... If-Modified-Since:... If-None-Match:... User-Agent: Mozilla/4.0... Host: www.cursoaspnet.com Connection: Keep-Alive [blank line]
HTTP Response
HTTP/1.1 200 OK Server: Microsoft-IIS/5.0 Date: ... Content-Type: text/html Accept-Ranges: bytes Last-Modified: ... ETag: ... Content-Length: 46 [blank line] <html> <body> Bienvenidos al Curso ASP.NET </body> </html>
HTML Forms
En el corazn de toda aplicacin Web genuina estn los HTML Forms Un HTML Form es la porcin de un documento HTML que aparece entre las etiquetas <form></form>
Suma.html
<html> <body> <form> <input type="text" name="op1" /> + <input type="text" name="op2" /> <input type="submit" value=" = " /> </form> </body> </html>
Cuando es pulsado, el navegador enva el HTML Form junto con cualquier entrada de datos del usuario al servidor Web
Cmo el HTML Form es enviado, depender del atributo Method del form:
Si el atributo Method del form no est presente o tiene el valor GET, el navegador enviar al servidor un comando HTTP GET
Si el atributo Method del form tiene el valor POST, el navegador enviar al servidor un comando HTTP POST
Method = POST
<form method=post"> ... </form>
POST /suma.html HTTP/1.1 . . Content-Type: ... Content-Length: 11 [blank line] op1=2&op2=2
</form>
GET /suma.html?op1=2&op2=2 HTTP/1.1 . . . Connection: Keep-Alive [blank line]
Cualquiera sea el mtodo utilizado, es decir GET o POST, cuando un form es enviado al servidor, decimos que se produjo un POSTBACK
Procesamiento en el Servidor
Construir la parte del cliente es fcil, slo es HTML
La parte difcil es la construccin de la lgica del lado del servidor. Algo en el servidor, tiene que interpretar las entradas del usuario enviadas junto con el form y generar la correspondiente salida. Suma.html Despus del procesamiento <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>
Procesamiento en el Servidor
Existen varias tecnologas de procesamiento: CGI (Common Gateway Interface)
Define una API de bajo nivel Popular en entornos UNIX, no tanto en Windows Son DLL Windows que corren bajo IIS. Escritas en C++ Mejor performance que CGI Simple solucin: HTML + Script del lado del servidor Programadas en JScript o VBScript Objetos intrnsecos que abstraen detalles de bajo nivel de HTTP. Objetos Request y Response Permite usar ADO (ActiveX Data Object) para acceso a datos
ASP.NET
ASP.NET es el framework de programacin web dentro de .NET Permite desarrollar aplicaciones Web con un modelo similar al utilizado para aplicaciones Windows El componente fundamental de ASP.NET es el WebForm Independencia del cliente (navegador, S.O., dispositivo fsico, etc.) Permite utilizar cualquier lenguaje .NET Permite desarrollar Servicios Web XML
ASP.NET - Ventajas
La parte ejecutable de una aplicacin ASP.NET es COMPILADA Implementacin y actualizacin de las aplicaciones sin reiniciar el servidor!
Mecanismo de Caching incorporado para pginas completa o partes de la misma frecuentemente solicitadas
Uno o ms archivos con extensin .aspx Archivos asociados a WebForms que contienen cdigo del lado del servidor (Ej. VB.NET, C#, etc.) Un archivo Web.config por c/aplicacin Un nico archivo Machine.config por servidor Eventos a nivel de aplicacin
Archivos Code-Behind
Global.asax
Cero o ms assemblies (Componentes externos) Permiten a la aplicacin ASP.NET enviar y recibir datos desde Servicios Web
Global.asax
Output Cache
WebForm1.aspx.vb
Web.config
WebForm2.aspx
Internet
BIN
WebForm2.aspx.vb
Comp. Comp.
MiAplicacion
Virtual: Fsica:
http://localhost/MiAplicacion
C:\Inetpub\wwwroot\MiAplicacion
Podemos usar IIS para definir un directorio virtual donde alojar nuestras aplicaciones Web, diferente al predeterminado
El permetro de la aplicacin termina en su ltimo directorio o cuando se encuentra el directorio raz de otra aplicacin Web
2000
2001
2002
2003
2004
2005 2006 y ms
Visual Studio 2005 Visual Web Developer Express Edition .NET Framework 2.0 SQL Server 2005 ASP.NET 2.0
Temario (1/2)
Introduccin a ASP.NET
WebForms - Generalidades
Formulario Web (ASP.NET web form)
Es una pgina expresada en lenguaje de marcas que es compilada y ejecutada dinmicamente en el servidor para generar la salida solicitada por el cliente (explorador dispositivo).
Es el cdigo que se ejecuta del lado del servidor para lograr el comportamiento deseado en un formulario web. Un nuevo concepto, que es aplicado en ASP.NET para vincular las pginas aspx (la interfaz del usuario) con su Code Behind (comportamiento).
Code Behind
Partial Class
Controles de Servidor
Componentes que se ejecutan en el lado del servidor Encapsulan partes de la interface de usuarios Poseen el atributo runat=server Mantienen su estado entre postbacks al servidor ViewState Poseen un modelo de objetos comn
Equivalencias de Controles
Botn HTML clsico (No es de Servidor)
<INPUT type="button" value="Buscar">
HTML equivalente <input type=submit> <input type=checkbox> <a href=""> </a> <img src=""> <input type=image>
<asp:radiobutton>
<asp:table> <asp:textbox>
<asp:listbox>
Reduce el nmero de postbacks Servidor Repite la validacin del lado del cliente
Permite validar contra datos almacenados por ej. en una base de datos
CompareValidator. Valida contra un valor constante o contra otro control. RangeValidator. Valor dentro de un rango de tipos. RegularExpressionValidator. Valida contra un patrn o expresin regular. CustomValidator. Lgica de validacin proporcionada por nosotros. ValidationSummary. No es un validador, sino que muestra mensajes de error agrupados.
La propiedad IsValid NO est disponible en los eventos Init ni Load del WebForm
AdRotator. Permite mostrar anuncios publicitarios (banners) de una secuencia predeterminada o aleatoria. Calendar. Permite disponer de un calendario altamente personalizable.
Controles de Usuario
Simplifican la reutilizacin de cdigo y componentes de la IU dentro de las aplicaciones Web ASP.NET Son del servidor definidos en un archivo .ascx Contienen HTML pero NO los tags <HTML>, <BODY> o <FORM>
<%@ Control Language="vb" %>
<%@ Control Language=cs" %>
WebForm1.aspx
WebForm2.aspx
Podemos acceder y crear propiedades como con cualquier otro control u objeto
evento
manejador respuesta
PostBack
A instancias de un formulario web mostrado en el cliente cada evento sucedido en l genera un POST hacia el servidor y una respuesta. Este ida y vuelta dentro de un mismo formulario web se llama postback.
View State
Es un mecanismo que permite mantener el estado de los controles del formulario web entre postbacks. El estado de los controles viaja en el view state por cada postback.(ver diapositiva 36)
Temario (1/2)
Introduccin a ASP.NET Formularios Web (Web Forms)
Configuracin
Conceptos principales Accediendo desde el cdigo al web.config Autenticacin Como mantener el estado en una aplicacin web
Es un archivo xml, donde se guarda informacin de configuracin comn a toda la aplicacin como ser: cadenas de conexin, tipo de autenticacin, etc. El archivo de configuracin posee una estructura jerrquica (xml) que permite una lectura rpida y facilita su modificacin.
En ASP.NET 2.0 se incorporan nuevos grupos de secciones, como por ejemplo connectionStrings. Facilitando de este modo el acceso a las conexiones de datos y simplificando el cdigo.
Herramientas administrativas
Snap-in de MMC para ASP.NET Herramienta de administracin del sitio web (Web Site Administration Tool)
Temario (1/2)
Introduccin a ASP.NET Formularios Web (Web Forms) Configuracin
Autenticacin
Generalidades Tipos de Autenticacin Autenticacin por Formularios Controles de Login Como mantener el estado en una aplicacin web
Generalidades
Qu es Autenticacin?
Es el mecanismo que permite afirmar que la persona que esta ingresando al sistema es quien dice ser.
Cmo Funciona?
Se aceptan las credenciales ingresadas por el usuario (usuario contrasea) y se validan contra una base de datos, el sistema operativo, un servicio web, u otro mecanismo definido segn el tipo de autenticacin.
Tipos de Autenticacin
Basada en Windows
Basada en Windows e IIS La solicitud de la pgina pasa por IIS Si IIS valida exitosamente la credencial, entonces se devuelve la pgina solicitada
Basada en Formularios
Las solicitudes no autenticadas son redireccionadas a un formulario de login Despus de validar la credencial se enva al cliente una cookie de autenticacin
Servicio de autenticacin centralizado Passport es un Web Service
Configurando la autenticacin
<system.web> <authentication mode="Forms"> <forms loginUrl="login.aspx"></forms> </authentication> <authorization> <deny users="?"/> </authorization> </system.web>
Si las credenciales son vlidas, ASP.NET graba un ticket de autenticacin en la cookie que contiene la identidad del usuario. Si el usuario es annimo, redirecciona las peticiones a una pgina predeterminada para validar las credenciales del usuario.
IIS
NO Autenticado
Acceso Denegado
NO Autenticado
4 Form de Login
(Usuario ingresa sus credenciales)
Autorizado
3
Autenticado
Cookie de autenticacin
Autorizado
<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>
Temario (1/2)
Introduccin a ASP.NET Formularios Web (Web Forms) Configuracin Autenticacin
Generalidades
Las pginas html de una aplicacin web se transmiten por medio del protocolo HTTP, como se mencion anteriormente. Este protocolo es un protocolo sin estado. As, una vez que el usuario ingreso datos en el navegador, si no se mantiene el estado mediante algn mecanismo, se pierden los datos ingresados. Por este motivo, ASP.Net proporciona mecanismos para mantener el estado de sus variables a travs de las distintas peticiones de pginas. Entre estos mecanismos se encuentran:
Application State : mecanismo de almacenamiento global accesible desde todas las pginas de la aplicacin Web Session State : mecanismo de almacenamiento limitado a la sesin actual del navegador View State :Mantiene valores entre mltiples solicitudes a la misma pgina
Administracin de estados
Sin Adm. De Estados
Login.aspx
Ingrese sus datos de inicio de sesin Nombre Juan Contrasea *******
Session state
Informacin disponible nicamente para un usuario de una sesin especfica
ViewState
Mantiene valores entre mltiples solicitudes a la misma pgina
Database
En algunos casos se utiliza una Base de Datos para guardar la informacin de estado
Query strings
Informacin anexada al final de la URL
Application State es un mecanismo de almacenamiento global accesible desde todas las pginas de la aplicacin Web Seesion State est limitada a la sesin actual del browser Las sesiones ASP.NET se identifican con una cadena de caracteres ASCII y se guarda como una Cookie en el cliente
Variables de Session y Application SessionID
Temporarias Persistentes
Problema: el usuario puede borrarlas o deshabilitarlas Problemas de seguridad Espacio limitado a almacenar no ms de 4KB
Cookie
Global.asax
Administra eventos a nivel de aplicacin y sesin.
Estado de la aplicacin(1/2)
Permite almacenar informacin a nivel de aplicacin, comn a todas las sesiones. Esta informacin se almacena en una coleccin llamada Application. El acceso a esta informacin se realiza mediante el objeto intrnseco Application
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 aplicacin(2/2)
Ejemplo 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.Close End Try Dim view As DataView = New DataView(ds.Tables(0)) Application("Sucursal") = view End Sub
} finally { conn.Close();
conn = new SqlConnection( ConfigurationManager.ConnectionStrings[ "ADVENTUREWORKSConnectionString"].ConnectionString); command.Connection = conn; conn.Open(); object result = command.ExecuteScalar(); Session["codigo"] = result;
Dim command As SqlCommand = New SqlCommand( _ "Select codigo From clientes Where name = " & nombre )
End Sub
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
Try
View State
Mantiene el estado de los controles, entre postback de una pgina. El View State se implementa mediante un campo oculto en el html generado y viaja en cada POST
Temario (2/2)
Master Pages
Generalidades Pginas Maestras Pginas de Contenido Themes y Skins Navegacin Acceso a Datos Compilacin e Instalacin Como crear un sitio Web Referencias
Generalidades
Logran herencia visual para las pginas Web Permite manejar reas comunes de un sitio de manera consistente En ASP.NET 1.1, el problema de la herencia visual implicaba
Se basan en Templates (Master Page) y en pginas de contenido (Content Page). Permiten incluir mens, encabezados, navegaciones, etc.
Pginas Maestras
En lugar de la directiva @Page, utiliza la directiva @Master:
<%@ Master Language="C# CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>
Se trata como cualquier formulario web, con la extensin .master, y debe incluir el siguiente control:
<asp:contentplaceholder id="contenedor" runat="server> contenido por defecto </asp:contentplaceholder>
Pginas de contenido
Al crear un pgina de contenido, hay que elegir la pgina maestra. La directiva @page de la pgina sera:
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" CodeFile="Default.aspx.cs" Inherits="_Default" Title="Home" %>
No repiten los tags de la pgina maestra, pero se pueden acceder desde el cdigo. Debe contener el control
<asp:Content ID="cntDefault" ContentPlaceHolderID="contenedor" Runat="Server"> contenido de la pgina </asp:Content>
Temario
Master Pages
Themes y Skins
Generalidades Ejemplo del contenido de un Skin Navegacin Acceso a Datos Compilacin e Instalacin Como crear un sitio Web Referencias
Themes: Son paquetes de Skins, tambin pueden contener hojas de estilo en cascada e imgenes asociados. ASP.NET 2.0 incluye una nueva carpeta virtual para la organizacin de los temas (APP_Themes).
Se pueden configurar a nivel de maquina (en el machine config) a nivel de aplicacin (en el web.config) o bien a nivel de pgina, dentro de la directiva Page.
Temario
Master Pages Themes y Skins
Navegacin
Men Control de navegacin Acceso a Datos Compilacin e Instalacin Como crear un sitio Web Referencias
Navegacin - 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>
Control de Navegacin
Este control esta basado en el modelo de proveedores. (Se configura el proveedor en el web.config) A diferencia de otros controles de navegacin no posee una propiedad DataSource. Al proveedor se le configura el archivo (xml) que posee el mapa del sitio, por ejemplo: siteMapFile="web.sitemap"
Temario
Master Pages Themes y Skins Navegacin
Acceso a Datos
Controles de enlace a datos Controles visualizadores de datos Compilacin e Instalacin Como crear un sitio Web con Visual Studio 2005 Referencias
Control ObjectDataSource
Enlaza los controles con una clase de la capa de negocios.
Control SqlDataSource
Enlaza los controles con una base de datos relacional.
Control XmlDataSource
Enlaza los controles con datos en formato xml.
FormView
<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>
Temario
Master Pages Themes y Skins Navegacin Acceso a Datos
Compilacin e Instalacin
Generalidades Compilacin Dinmica Como crear un sitio Web con Visual Studio 2005 Referencias
Aspx, asmx, ascx Vb, cs, resx Slo es necesario poner los archivos en los directorios especficos
Compilacin dinmica
vroot
CS VB
App_Code
WSDL XSD
RESX
App_LocalResources
RESOURCE
Temario
Master Pages Themes y Skins Navegacin Acceso a Datos Compilacin e Instalacin
Generalidades
Independencia de IIS
Visual Studio 2005 invluye el ASP.NET Development Server, un servidor de HTTP local que permite trabajar en una PC de desarrollo sin tener instalado IIS (Microsoft Internet Information Server)
Las extensiones de servidor de Front Page no son necesarias, ahora se puede seleccionar el directorio donde se van a alojar las pginas del sitio y comenzar a desarrollar.
IIS Local
Sitio FTP
Sitio Remoto
Temario
Master Pages Themes y Skins Navegacin Acceso a Datos Compilacin e Instalacin Como crear un sitio Web con Visual Studio 2005
Referencias
Referencias (1/2)
Tutorial de ASP.NET 2.0 http://www.ASP.NET/Tutorials/quickstart.aspx Estado de la Aplicacin http://www.microsoft.com/spanish/msdn/comunidad/mt j.net/voices/art175.asp Call Back http://msdn.microsoft.com/msdnmag/issues/05/01/Cut tingEdge/default.aspx Sitio Oficial de ASP.NET http://www.ASP.NET
Referencias (2/2)
Ciclo de Vida http://msdn2.microsoft.com/enus/library/ms178472.aspx Web Parts http://msdn.microsoft.com/msdnmag/issues/05/09/We bParts/default.aspx Modelo de Proveedores http://msdn.microsoft.com/ASP.NET/default.aspx?pull=/l ibrary/en-us/dnaspp/html/ASPNETProvMod_Intro.asp Libro: Introducing Microsoft ASP.NET 2.0 Autor: Dino Esposito http://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.