01Introduccion ASP.net

90
Temario Temario (1/2) (1/2) Introducción a ASP.NET Introducción a ASP.NET Formularios Web (Web Forms) Formularios Web (Web Forms) Configuración Configuración Autenticación Autenticación Como mantener el estado en una Como mantener el estado en una aplicación Web aplicación Web

Transcript of 01Introduccion ASP.net

  • Temario (1/2)Introduccin a ASP.NETFormularios Web (Web Forms)ConfiguracinAutenticacinComo mantener el estado en una aplicacin Web

  • Temario (2/2)Master PagesThemes y SkinsNavegacinAcceso a DatosCompilacin e InstalacinComo crear una aplicacion Web en Visual Studio 2005Referencias

  • TemarioIntroduccin a ASP.NETAplicaciones WebASP.NETServidor WebFormularios Web (Web Forms)ConfiguracinAutenticacinComo mantener el estado en una aplicacin web

  • Aplicaciones Web ASP.NETUna aplicacin web es un conjunto de pginas HTML que se transmiten por medio del protocolo HTTP de un servidor al cliente y viceversa, brindando distintas funcionalidades a un usuario final.

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

  • Aplicaciones Web - Servidor WebUn servidor web es un sistema informtico conectado a una red, donde se almacenan las pginas, imgenes, etc. (que forman una aplicacin web) disponibles para ser visitadas por los usuarios de la red.

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

  • Hypertext Transfer Protocol (HTTP)Uno de los protocolos ms importantes de InternetHTTP define como los navegadores y los servidores Web se comunican uno con otroEsta basado en texto y es transmitido sobre conexiones TCP

  • Funcionamiento de HTTPwww.cursoaspnet.comIP = 66.45.26.25http://www.cursoaspnet.com/inicio.htmlIP=66.45.26.25 Puerto: 80inicio.html

    Bienvenidos al Curso ASP.NET

    Internet DNSServidorClienteHTTP RequestHTTP Response

  • Pagina solicitadainicio.html

    Bienvenidos al Curso ASP.NET

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

  • HTTP ResponseHTTP/1.1 200 OKServer: Microsoft-IIS/5.0Date: ...Content-Type: text/htmlAccept-Ranges: bytesLast-Modified: ...ETag: ...Content-Length: 46[blank line]

    Bienvenidos al Curso ASP.NET

  • HTML FormsEn el corazn de toda aplicacin Web genuina estn los HTML FormsUn HTML Form es la porcin de un documento HTML que aparece entre las etiquetas Suma.html

    +

  • HTML Forms (Cont.)Un botn submit () juega un rol especial en un HTML Form:Cuando es pulsado, el navegador enva el HTML Form junto con cualquier entrada de datos del usuario al servidor WebCmo 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 GETSi el atributo Method del form tiene el valor POST, el navegador enviar al servidor un comando HTTP POSTEjemplo >>

  • HTML Forms (Cont.)Method = GET

    . . .

    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 HTTPCualquiera 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 ServidorConstruir la parte del cliente es fcil, slo es HTMLLa 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

    +

    Suma.html

    4

    Antes del procesamientoDespus del procesamiento

  • Procesamiento en el ServidorExisten varias tecnologas de procesamiento:CGI (Common Gateway Interface)Define una API de bajo nivelPopular en entornos UNIX, no tanto en WindowsISAPI (Internet Server Application Programming Interface)Son DLL Windows que corren bajo IIS. Escritas en C++Mejor performance que CGIASP (Active Server Pages)Simple solucin: HTML + Script del lado del servidorProgramadas en JScript o VBScriptObjetos intrnsecos que abstraen detalles de bajo nivel de HTTP. Objetos Request y ResponsePermite usar ADO (ActiveX Data Object) para acceso a datos

  • ASP.NETASP.NET es el framework de programacin web dentro de .NETPermite desarrollar aplicaciones Web con un modelo similar al utilizado para aplicaciones WindowsEl componente fundamental de ASP.NET es el WebFormIndependencia del cliente (navegador, S.O., dispositivo fsico, etc.)Permite utilizar cualquier lenguaje .NETPermite desarrollar Servicios Web XML

  • ASP.NET - VentajasLa parte ejecutable de una aplicacin ASP.NET es COMPILADAImplementacin y actualizacin de las aplicaciones sin reiniciar el servidor!Acceso a toda la .NET Class LibraryIndependiente del lenguaje de programacinEncapsulamiento de funcionalidad a travs de controles de servidor y controles de usuario

  • ASP.NET Ventajas (Cont.)Permite usar ADO.NET para acceso a datosSoporta XML, Hojas de estilo CSS, etc.Deteccin automtica del navegador cliente, generando el lenguaje de marcas soportado por el mismoMecanismo de Caching incorporado para pginas completa o partes de la misma frecuentemente solicitadas

  • Componentes de una aplicacin ASP.NETWebForms (Formularios Web) Uno o ms archivos con extensin .aspxArchivos Code-BehindArchivos asociados a WebForms que contienen cdigo del lado del servidor (Ej. VB.NET, C#, etc.)Archivos de configuracin con formato XMLUn archivo Web.config por c/aplicacinUn nico archivo Machine.config por servidorGlobal.asaxEventos a nivel de aplicacin

  • Componentes de una aplicacin ASP.NETDirectorio BINContiene el assembly de la aplicacin (Ej.: MiAplic.dll)Cero o ms assemblies (Componentes externos)Enlaces a Servicios Web XMLPermiten a la aplicacin ASP.NET enviar y recibir datos desde Servicios Web

  • Componentes de una aplicacin ASP.NETServicios WebClienteInternetWebForm1.aspx.vbWebForm1.aspxWebForm2.aspx.vbWebForm2.aspxGlobal.asaxWeb.configOutput CacheBINDatabaseASP.NET Web Server

  • Aplicacin Web ASP.NETDatos XMLBase de datosInternetPage1. aspxPage2. aspxServicios WebComponentesWeb FormsPginas cdigo traseroglobal. asaxWeb. configmachine. configServidor Web ASP.NETCach de SalidaClientes

  • Multimedia: modelo de ejecucin de ASP.NET

  • Las aplicaciones Web ASP.NET + IISIIS es el servidor Web de la plataforma WindowsLas aplicaciones Web solo pueden existir en una ubicacin que es publicada por IIS como un Directorio VirtualDirectorio Virtual: es un recurso compartido identificado por un alias y que representa una ubicacin fsica en el servidorEl famoso http://localhost hace referencia al directorio raz del servidor webPor default, http://localhost apunta a C:\Inetpub\wwwroot

  • Las aplicaciones Web ASP.NET + IISVS.NET por default crea las aplicaciones web bajo el directorio raz, ej.:MiAplicacionVirtual: http://localhost/MiAplicacionFsica: C:\Inetpub\wwwroot\MiAplicacionPodemos usar IIS para definir un directorio virtual donde alojar nuestras aplicaciones Web, diferente al predeterminado

  • Estructura de las aplicaciones WebEl permetro de una aplicacin Web es determinada por su estructura de directoriosComienza por su directorio raz, el cual contiene:La pgina o WebForm de inicioEl archivo de configuracin Web.configEl directorio BINEl permetro de la aplicacin termina en su ltimo directorio o cuando se encuentra el directorio raz de otra aplicacin Web

  • Plataforma de desarrollo Web Microsoft en el tiempo

  • Temario (1/2)Introduccin a ASP.NETFormularios Web (Web Forms)GeneralidadesControles WebEventos de un formulario webCiclo de Vida de un formulario webConfiguracinAutenticacinComo mantener el estado en una aplicacin web

  • 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).Code BehindEs el cdigo que se ejecuta del lado del servidor para lograr el comportamiento deseado en un formulario web.Partial ClassUn nuevo concepto, que es aplicado en ASP.NET para vincular las pginas aspx (la interfaz del usuario) con su Code Behind (comportamiento).

    WebForms - Generalidades

  • Controles de ServidorComponentes que se ejecutan en el lado del servidorEncapsulan partes de la interface de usuariosPoseen el atributo runat=serverMantienen su estado entre postbacks al servidor ViewStatePoseen un modelo de objetos comn Ej.: todos tienen las propiedades Id y TextGeneran HTML especifico segn el browser cliente

  • Tipos de Controles de ServidorPor default, los elementos HTML no son accesibles desde cdigo del lado del servidorAgregando runat=server y el atributo id, se convierten en Controles de Servidor HTMLControles de Servidor HTMLControles de Servidor WebConocidos como WebControlsSolo accesibles del lado del servidorMuchos tiposIntrnsecosValidacinRicosDel tipo lista de datosNo tienen una relacin 1:1 con elem. HTML

  • Equivalencias de ControlesBotn HTML clsico (No es de Servidor)

    Control de Servidor HTML

    Control de Servidor Web

  • Controles de Servidor - Ejemplos

    WebControlHTML equivalente

  • Son elementos ocultos que validan las entradas de datos contra algn patrnEl proceso de validacin puede ser llevado en:ClienteEl browser cliente debe soportar lenguaje scriptLe da al usuario un feedback inmediatoReduce el nmero de postbacksServidorRepite la validacin del lado del clientePermite validar contra datos almacenados por ej. en una base de datosControles de Servidor - Validacin

  • ASP.NET proporciona 6 controlesRequiredFieldValidator. Valor requerido.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.Controles de Servidor - Validacin

  • En el lado del servidor se puede determinar si TODAS las validaciones fueron exitosas mediante Page.IsValidMuy importante! La propiedad IsValid NO est disponible en los eventos Init ni Load del WebFormControles de Servidor - Validacin

  • Controles con lgica de IU compleja encapsulados de forma sencillaEjemplos:AdRotator. Permite mostrar anuncios publicitarios (banners) de una secuencia predeterminada o aleatoria.Calendar. Permite disponer de un calendario altamente personalizable.Controles de Servidor Controles Ricos

  • Controles de UsuarioSimplifican la reutilizacin de cdigo y componentes de la IU dentro de las aplicaciones Web ASP.NETSon del servidor definidos en un archivo .ascxContienen HTML pero NO los tags , o

    Contiene tambin cdigo en VB.NET o C#

  • WebForm2.aspxPor qu usar Controles de Usuario?Son autocontenidosPueden ser utilizados ms de una vezPueden estar escritos en diferentes lenguajesWebForm1.aspxUserControl.ascx

  • Agregando Controles de UsuarioPara usar un control de usuario en un WebForm se usa la directiva @Register

    Dentro del WebForm...

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

  • Eventos en un WebForm (1/4)ServerCliente WebAnaliza el mensajeeventomanejadormensajerespuestaLlama al manejador apropiado Modelo de Eventos Web Form

  • Eventos en un WebForm (2/4)Eventos del lado del servidorCuando se trabaja con controles ASP.NET, estos generan eventos en el servidor para responder a las peticiones del usuario, producindose PostBack. PostBackA 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 StateEs 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)

  • Eventos en un WebForm (3/4)Declaracin de eventos en un control del lado del cliente:

    Atencin del evento en el servidor ( code behind )Ejemplo en C#:protected void btnEjemploClick(object sender, EventArgs e){ if (!string.IsNullOrEmpty(txtEjemplo.Text)) { lblEjemplo.Text = txtEjemplo.Text; }}

  • Eventos en un WebForm (4/4)Atencin del evento en el servidor ( code behind ) .Ejemplo en Visual Basic:Protected Sub btnEjemploClick(ByVal sender As Object, _ ByVal e As EventArgs)If Not String.IsNullOrEmpty(txtEjemplo.Text) ThenlblEjemplo.Text = txtEjemplo.TextEnd IfEnd Sub

  • Ciclo de vida de un WebFormSucesos mas importantes del ciclo de vida de una pgina:

    Inicializacin de objetosCarga View StateProcesa datos del postCarga de la pginaEventos Post BackGraba View StateRenderUnLoad

  • Temario (2/2)Master PagesGeneralidadesPginas MaestrasPginas de ContenidoThemes y SkinsNavegacinAcceso a DatosCompilacin e InstalacinComo crear un sitio WebReferencias

  • GeneralidadesLogran herencia visual para las pginas WebPermite manejar reas comunes de un sitio de manera consistente En ASP.NET 1.1, el problema de la herencia visual implicabaCopiar & PegarIncludesHerencia + User ControlsSe basan en Templates (Master Page) y en pginas de contenido (Content Page). Permiten incluir mens, encabezados, navegaciones, etc.

  • Pginas MaestrasEn lugar de la directiva @Page, utiliza la directiva @Master:Se trata como cualquier formulario web, con la extensin .master, y debe incluir el siguiente control:

    contenido por defecto

  • Pginas de contenidoAl crear un pgina de contenido, hay que elegir la pgina maestra. La directiva @page de la pgina sera:No repiten los tags de la pgina maestra, pero se pueden acceder desde el cdigo.Debe contener el control

    contenido de la pgina

  • TemarioMaster PagesThemes y SkinsGeneralidadesEjemplo del contenido de un SkinNavegacinAcceso a DatosCompilacin e InstalacinComo crear un sitio WebReferencias

  • Themes y Skins - GeneralidadesSkins: Son definiciones de formato y estilos que se aplican a los controles de servidor y se guardan en archivos de extensin .skin

    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.

  • Contenido de un archivo Skin

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

  • TemarioMaster PagesThemes y SkinsNavegacinMenControl de navegacinAcceso a DatosCompilacin e InstalacinComo crear un sitio WebReferencias

  • Navegacin - Men

    Ejemplo del control

  • Control de NavegacinEste 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 (1/2)Introduccin a ASP.NETFormularios Web (Web Forms)ConfiguracinConceptos principalesAccediendo desde el cdigo al web.configAutenticacinComo mantener el estado en una aplicacin web

  • Conceptos principales (1/2)Archivo Web.ConfigEs un archivo xml, donde se guarda informacin de configuracin comn a toda la aplicacin como ser: cadenas de conexin, tipo de autenticacin, etc.Arquitectura de configuracin jerrquicaEl archivo de configuracin posee una estructura jerrquica (xml) que permite una lectura rpida y facilita su modificacin.

  • Conceptos principales (2/2)Secciones y grupos de seccionesEn 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 administrativasSnap-in de MMC para ASP.NETHerramienta de administracin del sitio web (Web Site Administration Tool)

  • Accediendo desde el cdigo al web.config (1/2)Secciones configuracin ms simples

  • Accediendo desde el cdigo al web.config (2/2)SqlConnection connection = new SqlConnection( ConfigurationManager.ConnectionStrings["ADVENTUREWORKSConnectionString"].ConnectionString);Acceso de lectura/escritura a especificaciones de configuracin.Ejemplo en C#: Dim connection As SqlConnection = New _ SqlConnection(ConfigurationManager.ConnectionStrings( _ "ADVENTUREWORKSConnectionString").ConnectionString)Ejemplo en Visual Basic

  • Temario (1/2)Introduccin a ASP.NETFormularios Web (Web Forms)ConfiguracinAutenticacinGeneralidadesTipos de Autenticacin Autenticacin por FormulariosControles de LoginComo mantener el estado en una aplicacin web

  • GeneralidadesQu 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 AutenticacinBasada en WindowsBasada en Windows e IISLa solicitud de la pgina pasa por IISSi IIS valida exitosamente la credencial, entonces se devuelve la pgina solicitadaBasada en FormulariosLas solicitudes no autenticadas son redireccionadas a un formulario de loginDespus de validar la credencial se enva al cliente una cookie de autenticacinBasada en Microsoft PassportServicio de autenticacin centralizadoPassport es un Web Service

  • Configurando la autenticacin

  • Autenticacin por FormulariosLa autenticacin por formularios se utiliza para validar a los usuarios contra bases de datos relaciones, Servicios Web, etc.

    Cmo funciona?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.

  • Cliente solicita una pginaAutorizadoAutenticacin basada en FormularioNO AutenticadoAutenticadoForm de Login (Usuario ingresa sus credenciales)AutenticadoCookie de autenticacinAutorizadoNO AutenticadoAcceso DenegadoPgina Segura solicitadaIISUsuarioClaveGabriel***********Aceptar1234657Autenticacin por Formularios

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

    Ejemplo del control

  • Controles de Login (2/2)Control de Creacin de Usuarios

  • Temario (1/2)Introduccin a ASP.NETFormularios Web (Web Forms)ConfiguracinAutenticacinComo mantener el estado en una aplicacin webGeneralidadesGlobal.asax Estado de la aplicacinEstado de la sesinView State

  • GeneralidadesLas 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 WebSession State : mecanismo de almacenamiento limitado a la sesin actual del navegadorView State :Mantiene valores entre mltiples solicitudes a la misma pgina

  • Administracin de estados

    ContraseaJuanIngresar*******Login.aspxLogin.aspxHola JuanInicio.aspxIngrese sus datos de inicio de sesinJuanIngresar*******Hola Inicio.aspxNombreContraseaSin Adm. De EstadosCon Adm. De EstadosOlvide quien es Ud!Ingrese sus datos de inicio de sesinNombre

  • Tipos de administracin de estado

    Del lado del servidorDel lado del clienteApplication stateInformacin disponible para todos los usuarios de la aplicacin Web.CookiesArchivos de texto que guardan informacin de estado en la PC clienteSession stateInformacin disponible nicamente para un usuario de una sesin especficaViewStateMantiene valores entre mltiples solicitudes a la misma pginaDatabaseEn algunos casos se utiliza una Base de Datos para guardar la informacin de estadoQuery strings Informacin anexada al final de la URL

  • Application State es un mecanismo de almacenamiento global accesible desde todas las pginas de la aplicacin WebSeesion State est limitada a la sesin actual del browserLas sesiones ASP.NET se identifican con una cadena de caracteres ASCII y se guarda como una Cookie en el clienteSessionIDVariables deSession y ApplicationAdministracin de estados - Servidor

  • Cookies para mantener el estado:TemporariasPersistentesProblema: el usuario puede borrarlas o deshabilitarlasProblemas de seguridadEspacio limitado a almacenar no ms de 4KBCookieAdministracin de estados - Cliente

  • Global.asaxAdministra eventos a nivel de aplicacin y sesin.

    Los eventos referentes a la manutencin del estado de aplicaciones web, son:Application_StartApplication_EndSession_StartSession_End

  • 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 ApplicationEjemplo 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 BasicSub Application_Start(ByVal sender As Object, ByVal e As _ EventArgs) Dim ds As DataSet = New DataSetTry Dim fs As FileStream = New _ FileStream(Server.MapPath("schemadata.xml"), _ FileMode.Open, FileAccess.Read) Dim reader As StreamReader = New StreamReader(fs) ds.ReadXml(reader)Finallyfs.CloseEnd TryDim view As DataView = New DataView(ds.Tables(0)) Application("Sucursal") = view End Sub

    Carlos Walzer - finally

  • Estado de la sesin (1/2)Una sesin es una interaccin entre un navegador y un servidor web (comprende varios Requests a lo largo del tiempo)Es posible almacenar informacin nicamente relevante para una sesin. El acceso a esta informacin se realiza mediante el objeto intrnseco Session 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 sesin (2/2)

    Ejemplo en Visual BasicSub 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)Tryconn = 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 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

  • TemarioMaster PagesThemes y SkinsNavegacinAcceso a DatosControles de enlace a datosControles visualizadores de datosCompilacin e InstalacinComo crear un sitio Web con Visual Studio 2005Referencias

  • Controles de enlace de DatosPermiten realizar el enlace entre un control que muestra datos (gridview, detailsview, etc) y la lgica que los administra

    Control ObjectDataSourceEnlaza los controles con una clase de la capa de negocios.Control SqlDataSourceEnlaza los controles con una base de datos relacional. Control XmlDataSourceEnlaza los controles con datos en formato xml.

  • Controles visualizadores (1/2)DataGridView

  • Controles visualizadores (2/2) DetailsViewFormView

  • TemarioMaster PagesThemes y SkinsNavegacinAcceso a DatosCompilacin e InstalacinGeneralidadesCompilacin DinmicaComo crear un sitio Web con Visual Studio 2005Referencias

  • Compilacin e Instalacin -GeneralidadesCompilacin dinmica de:Aspx, asmx, ascxVb, cs, resx Slo es necesario poner los archivos en los directorios especficosPrecompilacin e implementacin sin cdigo fuenteAspnet_compiler.exe precompila sitios y los instala sin el cdigo fuente

  • Compilacin dinmicavrootApp_CodeCSVBWSDLXSDRESXRESOURCELos archivos se compilan dinmicamente en el primer accesoApp_LocalResources

  • TemarioMaster PagesThemes y SkinsNavegacinAcceso a Datos Compilacin e Instalacin Como crear un sitio web con Visual Studio 2005GeneralidadesCreacin y Acceso a ProyectosReferencias

  • GeneralidadesIndependencia de IISVisual 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)

    Front Page Server ExtensionsLas 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.

  • Creacin y Acceso a ProyectosFile SystemPermite desarrollar un sitio en cualquier carpeta de la PC.IIS LocalPermite desarrollar localmente una aplicacin web en un directorio virtual de IIS.Sitio FTPPermite editar y modificar proyectos web remotos utilizando el protocolo FTP.Sitio RemotoSe puede sincronizar el proyecto de desarrollo local con la aplicacin instalada en produccin.

    ****HTTP define como los navegadores y los servidores Web se comunican uno con otro.En una aplicacin web, el componente principal es el HTML Form, que es el elemento de html que contiene los controles de la interfaz de usuario de cada pgina y captura la entrada de datos del usuario. El HTML Form es la porcin de la pgina que es enviada a travs del protocolo HTTP al servidor para procesar el pedido realizado por el usuario. Hay dos modos de envo de formularios al servidor: Get y Post. El primero enva los datos ingresados en el formulario como una cadena de consulta, el segundo enva los datos en el cuerpo del pedido.Para mas informacin, consulte el material de referencia al final del curso.***********************Los Formularios Web son archivos de texto que poseen la extensin .aspx que, generalmente, expresan la interfaz del usuario. Estos archivos son interpretados por ASP.NET vinculando la interfaz del usuario con el cdigo del lado del servidor (code behind). Para lograr la vinculacin, la directiva Page entra en juego:

    Code Behind (cdigo detrs): logra el comportamiento deseado de un formulario web. Definir clases como Partial Class permite que una misma clase est definida de forma parcial en mltiples archivos (en versiones anteriores una clase slo poda estar definida en un archivo). En ASP.NET 2.0 con la incorporacin del concepto de clases parciales, puede encontrar el concepto Code Beside que podra traducirse como cdigo al lado, con la misma funcionalidad que el code behind.

    Visual Studio 2005 aprovecha esta caracterstica para definir parte de la clase de la pgina ASPX en el propio archivo '.aspx', que ahora contiene definiciones de controles y eventos, y el cdigo que gobierna su funcionamiento en un archivo aparte por medio de una clase parcial. Ntese los cambios en la directiva Page, ahora es indispensable indicar el archivo de la clase con la cual compilara la aspx y el nombre completo de la clase que corresponda. ************El modelo de eventos de una pgina ASP.NET, trabaja como se muestra en el ejemplo grfico. El cliente realiza una peticin, el mensaje es recibido en el servidor, donde es analizado y atendido por el manejador de eventos que corresponda. Se arma la respuesta y el cliente obtiene la informacin que ha solicitado (ya sea una nueva pgina, un mensaje, etc.)*Los eventos asociados con controles ASP.NET son generados en el cliente y atendidos en el servidor. Por este motivo, ASP.NET necesita que la informacin para atender el evento del cliente sea transferida al servidor por medio de una peticin HTTP Post.

    Para mantener el estado de los controles, se utiliza el View State. El estado de los controles se almacena en un campo oculto de la pgina que viaja en cada postback; si no se tiene control de su tamao puede dificultar la navegacin del sitio hacindolo ms lento. Para ello verifique el estado de la propiedad EnableViewState de todos los controles y utilice este mecanismo cuando sea necesario.

    Existen otras tcnicas que permiten comunicarse con el servidor:Cuando se utiliza una pgina con la propiedad PostBackUrl, el evento generado en el cliente es atendido por una segunda pgina. La pgina que atiende el pedido puede hacer referencia a los controles de la pgina que la llam desde la propiedad la PreviousPage que contiene todos los controles de la primera.El Script CallBack de ASP .NET 2.0 permite atrapar eventos del lado del servidor evitando el refresco de pantalla

    Nota: Para obtener informacin sobre Script CallBack en ASP.NET 2.0 vea el material de referencia.*Como puede apreciarse en el ejemplo, en el cliente de la pgina web se declara un botn con el evento onclick el manejador del evento es un mtodo protegido de la misma clase, que, se ubica del lado del servidor.Es importante notar que los mtodos que atienden eventos de este tipo, siempre tienen dos parmetros, un objeto que hace referencia al control que provoca el evento y un segundo parmetro que posee informacin necesaria para atender el llamado.*En este ejemplo se atiende en visual Basic el evento onclick declarado en el control de ejemplo de la diapositiva anterior.*El ciclo de vida de un pgina web form corresponde al tiempo que transcurre entre la invocacin del servidor Web (IIS) y el envo de la informacin de respuesta al cliente.Detallaremos a continuacin los sucesos mas importantes que ocurren en el ciclo de vida de una pgina ASP.NET El ciclo de vida de una pgina ASP.NET comienza cuando el marco de ejecucin de ASP.NET invoca al cdigo asociado a la pgina .aspx requerida. Luego de instanciar los objetos de contexto request y response, crea el rbol de controles declarado en la pgina .aspx y determina si la pgina fue llamada en modo postback o no. Luego ocurre la inicializacin de objetos y la configuracin de sus estados, producindose el disparo del evento Init en cada uno de ellos, y a posterior el evento Init de la pgina contenedora; a su vez se aplican los Themes que afecten a la pgina ( Los Themes, son estilos que se aplican a los controles web, ms adelante en este curso se tratarn puntualmente). Una vez inicializados los objetos, ASP.NET 2.0 carga en ellos sus estados y los valores del view state. A continuacin se procesa el post y se cargan sus valores en cada uno de los objetos.Este es el momento en que ocurre la carga de la pgina, en el cual el desarrollador podr atrapar el evento Page_Load. Una vez que la pgina ha sido inicializada, cargada y validada, se disparan y atienden los eventos que hayan sido solicitados en el cliente y para los cuales existen los manejadores de eventos programados por el desarrollador. Esta es la oportunidad para el desarrollador de ejecutar la lgica del negocio y acceso a datos.En el paso siguiente, Render, el View State es salvado con los nuevos valores, y el lenguaje de marcas es generado (html, xml, etc).Antes de que el objeto Page sea liberado, los controles hijos son descargados, momento en el cual se dispara el evento UnLoad de cada uno de ellos y el de la pgina que los contiene.Es responsabilidad del recolector de basura (Garbage Collector) destruir (Dispose) todos los objetos incluidos en el ciclo de vida de la pgina.

    **Una pgina maestra permite aadir cdigo, controles, estilos, etc. que deben ser compartidos por todas o la mayora de las pginas de la aplicacin.

    Las pginas que estn vinculadas con la pgina maestra heredando su contenido visualmente, se llaman pginas de contenido; estas son independientes de su pgina maestra, tanto en el cdigo como en el lenguaje que se desee programar. Es decir, puedo tener una master page codificada en C#, y las pginas de contenido en VB .Net.

    Otro tema importante es que se pueden crear sitios con pginas maestras anidadas (Nested Master Pages). Es decir, un sitio puede tener distintos mdulos, con una una pgina maestra que contiene un encabezado determinado para toda la aplicacin, y luego crear otras pginas maestras para cada modulo, vinculadas con la ya definida, que posean el men de cada modulo.Para comprender mejor este tema, vea el ejercicio correspondiente entre los incluidos en el curso.*ASP.NET 2.0 provee un nuevo mecanismo para la creacin de aplicaciones web que permite, mediante la declaracin de una pgina maestra (master page), que todo el sitio posea la misma apariencia.En versiones anteriores, si haba que utilizar un men, lo mas usual era crear un control de usuario con la funcionalidad del men y luego incluirlo en todas las pginas. Ahora, el men solo debe incluirse en la pgina maestra, y todas las paginas de contenido que estn vinculadas con ella tendrn el men.Esto permite un cdigo mas limpio y ordenado en la aplicacin, haciendo al mismo ms fcil de mantener.

    La pgina maestra se puede configurar para toda la aplicacin desde el web.config, o bien en la directiva @Page de las pginas que la utilicen.*Las pginas de contenido son pginas aspx que tienen una referencia a alguna pgina maestra (MasterPageFile). Los controles que se incorporen en ellas deben estar incluidos dentro del control asp:content, de este modo se respetar el espacio de la pgina web designado en la pgina maestra, logrando una interfaz homognea para toda la aplicacin.**En las versiones anteriores de ASP.NET para que un sitio tuviera un estilo homogneo haba que crear hojas de estilo en cascada, y asignar a cada control de cada pgina el nombre del estilo que correspondiera.En ASP.NET 2.0, con el nuevo concepto de Themes y Skins, se puede definir temas que contengan los archivos skin que sean necesarios y luego asignar ese tema a la aplicacin o a la pgina. De este modo, todos los controles definidos en el tema de la aplicacin (o pgina) tomaran su estilo de ste directamente.Si no se desea asignar un tema a nivel de mquina, aplicacin o pgina, se puede a cada control asignarle el tema de donde tomar su estilo.

    *Los archivos *.skin contienen declaraciones de estilo y formato de los controles de ASP.NET.En el ejemplo se puede ver el estilo asignado al control LoginName, uno de los nuevos controles del grupo Login.El estilo declarado para este control debe poseer el atributo runat=server para ser reconocidos por ASP.NET.**Las interfaces de usuario de navegacin son tediosas de implementar, especialmente si estn basadas en script del lado del cliente.ASP.NET 2.0 incorpora nuevos controles de navegacin, como el men, treeview, site map, etc. facilitando la utilizacin de este tipo de controles.En el ejemplo, el control men hace referencia a un xml como DataSource, este xml tiene la estructura del mapa del sitio (web.SiteMap).Vea en el ejemplo de cdigo complementario.Los datos para llenar el men, pueden estar en un xml o bien en la base de datos, permitiendo varios niveles de men.La presentacin puede mejorar su apariencia por medio de skins o bien, con la opcin AutoFormat seleccionado manualmente los estilos presentados.*El control de navegacin SiteMapPath indica de manera elegante, la ubicacin en el mapa del sitio de la pgina actual que esta viendo el usuario.Este control puede configurarse mediante estilos, templates y otros controles de ASP.NET.Al estar basado en el modelo de proveedores no posee un mecanismo de DataBind (enlace de datos), desde el web.config se configura el proveedor indicando el archivo *.sitemap que ser utilizado en el sitio.El archivo *.sitemap, es un xml con la estructura del sitio, sus nodos principales son:Nodo Raz: Nodos Hijos: Los nodos hijos pueden tener a su vez mas nodos hijos, creando as una estructura mas compleja.**El archivo de configuracin web.config permite una fcil administracin e instalacin de una aplicacin web ASP.NET conteniendo toda la informacin relevante de la aplicacin (autenticacin, sesiones, autorizacin, etc.) incluyendo valores referentes a la funcionalidad propia de la aplicacin.Al modificar el archivo de configuracin web.config, no es necesario reiniciar la aplicacin en el servidor, sta lo detecta automticamente.El sistema de configuracin de ASP.NET se compone de dos archivos:Machine.config: donde se guarda informacin de configuracin para todo el servidor. (Existe un solo archivo machine.config instalado por cada versin de ASP.NET )Web.config: donde se guarda informacin de configuracin especfica de la aplicacin, se pueden colocar mltiples archivos Web.Config en una aplicacin, por ejemplo uno en la raz y uno en cada uno de los subdirectorios que lo necesiten. Pero no puede haber ms de uno por directorio.Otra ventaja es que se pueden agregar archivos de configuracin externos, referenciados desde el web.config, facilitando enormemente el trabajo para grandes equipos de desarrollo.

    *En las versiones anteriores de ASP.NET, haba que editar los archivos de configuracin manualmente.En ASP.NET 2.0, tanto el Visual Studio 2005 como Visual Web Developer 2005 Express Edition existe una herramienta visual Web Site Administration Tool para la administracin de la configuracin de la aplicacin. As mismo, el servidor web IIS provee una interfaz de usuario (Snap-in de MMC) para el mismo fin.Las secciones, de seguridad, acceso a datos, etc., pueden ser configuradas fcilmente por medio de estas herramientas.

    *Esta porcin de ejemplo de un archivo web.config declara la cadena de conexin a una base de datos. En la prxima diapositiva se leer el valor desde el cdigo.Cabe destacar que el archivo web.config es de formato texto y puede ser editado fcilmente y en cualquier momento, durante el desarrollo o mientras la aplicacin este en produccin.*ASP.NET 2.0 provee una API de configuracin mas rica que versiones anteriores, facilitando la lectura y escritura de los archivos de configuracin desde el cdigo. Este ejemplo muestra como recuperar el valor de una cadena de conexin a la base de datos, declarada en un web.config.

    ***Existen 3 tipos de autenticacin en aplicaciones .Net.La autenticacin basada en windows, utiliza la infraestructura de Windows para validar las credenciales, es apropiada para aplicaciones intranet.

    La autenticacin basada en formularios, utiliza generalmente bases de datos para la validacin de credenciales, es apropiada para aplicaciones web.

    La autenticacin basada en MS Passport, utiliza un servicio web para la validacin de credenciales, por lo cual no necesita guardar los datos de los usuarios en una base de datos, pero su utilizacin tiene un costo econmico.

    En el curso se introduce la autenticacin por formularios, para ms informacin de los otros tipos de autenticacin, sugerimos consultar el material previo del programa Desarrollador 5 Estrellas, o consultar el sitio de MSDN Espaol.

    *Para utilizar la autenticacin por formularios, hay que configurar en el web.config la seccin correspondiente incorporando el elemento authentication como muestra el ejemplo; y a su vez indicar cual ser la pgina de Login para que el usuario pueda ingresar sus credenciales.

    El elemento authorization esta fuertemente relacionado con la autenticacin, y determina si el usuario autenticado est autorizado a acceder a cierta pgina o no segn sean sus privilegios asociados.

    El ejemplo muestra que no se autoriza el acceso a la aplicacin a ningn usuario que no haya sido previamente autenticado.*Este modo de autenticacin es muy utilizado en sitios web pblicos.

    Para Autenticar por Formularios, los algoritmos de verificacin de usuarios, consultan bases de datos.

    Cuando se confirma que las credenciales de autenticacin (usuario y contrasea) son vlidas, se genera un ticket de autenticacin con la identidad del usuario. Luego en las siguientes peticiones de pgina, se autoriza al usuario utilizando este ticket.

    Este ticket de autenticacin se guarda en una cookie. Las cookies son archivos de texto que guardan informacin de estado en la PC cliente. (encontrara mas informacin sobre cookies en los distintos enlaces de la seccin Referencias del curso).**ASP.NET 2.0 provee un nuevo grupo de controles para la autenticacin de usuarios, llamados Controles de LoginEstos controles brindan la funcionalidad de recibir y validar las credenciales de un usuario, crear usuarios, recuperar contraseas, mostrar el usuario actual en las pginas de un sitio, etc.El modelo de proveedores (*) de membresa (membership provider) trabaja fuertemente ligado con estos controles, facilitando el proceso de desarrollo. Para utilizar estos controles, se debe habilitar la autenticacin por formularios en la aplicacin. Vea los ejercicios de ejemplo que utilizan estos controles.

    Es importante aclarar que el modelo de la base de datos tambin es provisto por Microsoft y debe respetarse. En caso de querer usar un modelo propio para los datos de usuarios, roles, etc. deber desarrollarse el proveedor correspondiente.

    (*) Para mas informacin acerca del modelo de proveedores, vea los documentos recomendados al final del curso.*El nuevo control de creacin de usuarios hereda del nuevo control Wizard y se puede personalizar si se desea cambiar el idioma del control , los nombres de los botones, ttulos etc.

    Hay otros controles, como el visualizador de usuario, el recuperador de claves y para cambiar la clave. Todos estos controles encapsulan la funcionalidad requerida y solo requieren utilizar un modelo de datos propuesto y provisto por Microsoft.**Como se mencion anteriormente, las pginas HTML se transmiten por medio del protocolo HTTP de un servidor al cliente y viceversa. Este protocolo es un protocolo sin estado, por consiguiente, la informacin de las pginas web se pierde entre los idas y vueltas al servidor.

    Como en muchos casos es necesario conservar estos datos, ASP .Net provee distintos mecanismos que permiten mantener el estado de sus pginas a travs de los idas y vueltas.

    Entre los mecanismos, se encuentra el ViewState, Application State, Session State, es decir los datos se mantienen a nivel de aplicacin y a nivel de sesin del usuario.

    *****Este archivo (global.asax) contiene distintos eventos que son lanzados a nivel de aplicacin. Estas declaraciones de evento no producen interfaz de usuario y sirven para mantener variables de estado de la aplicacin y/o de la sesin.

    Los eventos Application_Start y Application_End suceden cuando la aplicacin es inicializada y descargada del servidor web respectivamente.

    Los eventos Session_Start y Session_End suceden cuando un nuevo usuario se conecta y se desconecta con la aplicacin respectivamente.

    El archivo global.asax se ubica en el raz del directorio virtual de la aplicacin web.

    ASP.NET analiza y compila el global.asax en una clase dinmica del Net Framework la primera vez que cualquier URL de la aplicacin es activada o solicitada.

    Las directivas del gobal.asax dan a las pginas ASP .NET instrucciones especiales a ser usadas en la compilacin, una directiva puede ser: .

    *La coleccin Application permite almacenar la informacin que es comn a todos los usuarios que acceden al sitio y que deber estar disponible en todo momento.La carga en memoria de esta informacin sucede en el arranque de la aplicacin web (aunque no necesariamente tiene que ser asi), es rara vez modificada y su mayor acceso es para lectura. El ejemplo muestra como almacenar para toda la aplicacin los datos de la sucursal en la cual est instalada. Mediante el evento Application_Start se buscan los datos necesarios, una sola vez, y se mantendrn en memoria toda la vida de la aplicacin.

    El cdigo muestra la carga de un objeto DataView que se guarda en una variable de aplicacin: Application[Sucursal"].Luego puede ser accedida desde las pginas del sitio. El siguiente ejemplo muestra la recuperacin de los datos de la sucursal en el evento Load y los muestra en una grilla:

    void Page_Load(Object sender, EventArgs e) {DataView Source = (DataView)(Application[" Sucursal "]); ... MyGridView.DataSource = Source; ... } *El cdigo muestra la carga de un objeto DataView que se guarda en una variable de aplicacin: Application(Sucursal).Luego puede ser accedida desde las pginas del sitio. El siguiente ejemplo muestra la recuperacin de los datos de la sucursal en el evento Load y los muestra en una grilla:

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.LoadDim Source As DataView = CType((Application(Sucursal")), DataView)... MyGridView.DataSource = Source... End Sub*ASP.NET provee un mecanismo para mantener informacin individual de cada interaccin de un navegador con el servidor web llamado sesin.La sesin perdura un tiempo determinado, previamente establecido en el archivo de configuracin; y se renueva por cada pedido del cliente.La coleccin Session permite almacenar la informacin particular de una sesin.Cuando un usuario solicita por primera vez una pgina .aspx al servidor web, ASP.NET crea una nueva sesin para l. En este momento es factible la carga en memoria de la informacin del usuario. Por defecto la informacin de sesin se guarda en memoria.El ejemplo muestra como almacenar el cdigo de cliente de un usuario. Mediante el evento Session_Start se buscan los datos necesarios, que se mantendrn en memoria mientras el usuario este conectado.

    El cdigo de la diapositiva muestra la carga del cdigo del cliente que se guarda en una variable de sesin: Session[Codigo"].Luego puede ser accedida desde las pginas del sitio. El siguiente ejemplo muestra la recuperacin del cdigo del cliente en el evento Load, mostrndolo en un control TextBox:

    void Page_Load(Object sender, EventArgs e) {string cliente = (Session[Codigo"]); ... txtCliente.Text = cliente; ... }

    *El cdigo de la diapositiva muestra la carga del cdigo del cliente que se guarda en una variable de sesin: Session(Codigo).Luego puede ser accedida desde las pginas del sitio. *Para mantener el estado de los controles de una pgina aspx entre postbacks, ASP.NET utiliza el View State.

    Esta tcnica es utilizada por defecto en todos los controles, pero puede deshabilitarse en caso de no ser necesario, mediante la propiedad EnableViewState.

    El View State se puede declarar por pgina (afectando a todos los controles de la misma) o por cada control.

    El tamao del campo oculto donde se almacena puede crecer innecesariamente dificultando la navegacin del sitio; es por eso necesario moderar el uso del ViewState.En el servidor se implementa como una coleccin: ViewState.

    **El control SQLDataSource permite trabajar con cualquiera de las bases de datos relacionales basadas en lenguaje SQL, tales como Microsoft SQL Server u Oracle.

    El ObjectDataSource permite enlazar contra clases de la capa de negocios y se declara de la siguiente forma: En el TypeName se indica el nombre de la clase contra la cual se realiza el enlace, luego con las propiedades SelectMethod, UpdateMethod, DeleteMethod e InsertMethod se indica que mtodo de la clase se utilizar para realizar las tareas de seleccin, modificacin, eliminacin e insercin de datos respectivamente.Para mas informacin sobre este interesante tema se recomienda realizar los ejercicios propuestos y leer el material propuesto. *El nuevo control GridView es una mejora de la DataGrid de ASP.NET 1.1 que permite entre otras cosas el enlace de datos contra los controles SQLDataSource (como en el ejemplo) y ObjectDataSource (visto anteriormente).

    El control SQLDataSource, hace referencia a la cadena de conexin configurada en el web.config mediante el signo $. Esta es una nueva forma de hacer referencia al contenido del archivo de configuracin desde el cdigo del cliente.

    De este modo el ordenamiento, modificacin de registros, Paginado, etc. se realizan automticamente indicndolo como en el ejemplo (ver las propiedades resaltadas).

    Otra de las grandes ventajas sobre su grilla predecesora es que permite la definicin de mltiples campos como clave primaria

    *DetailsViewEs un control que visualiza un registro por vez, opcionalmente provee botones de navegacin que permite navegar entre los distintos registros asociados. Adems de visualizar, tambin permite modificar el registro actual.

    FormViewEs similar al anterior a diferencia que necesita la definicin de un template para representar los campos.

    **ASP.NET 1.1 era capaz de compilar dinmicamente algunos tipos de archivo (aspx, asmx, ascx) en el momento en que por primera vez eran requeridos por la aplicacin. Cualquier modificacin a un archivo compilado dinmicamente se reflejaba en la pgina html de salida. Este mecanismo simplificaba el desarrollo de aplicaciones puesto que el desarrollador solo necesitaba copiar un archivo para provocar los cambios necesarios. Este modelo de compilacin dinmica se extendi en ASP.NET 2.0 para otros tipos de archivo, tpicamente archivos de clase. El nuevo modelo de compilacin de ASP.NET evita la necesidad de una precompilacin explicita desde Visual Studio. Para que esta compilacin dinmica sea efectiva los diferentes tipos de archivos deben residir en carpetas especficas (App_Code, App_Data, App_Themes, etc).Sin embargo, al momento de hacer la instalacin de la aplicacin web se recomienda precompilarla, esto evita que los archivos de cdigo fuente tengan que existir en el servidor.La precompilacin para instalacin genera un manifiesto del sitio compuesto por: assemblies, archivos estticos y archivos de configuracin. Este manifiesto es generado en la mquina destino y tambin puede ser empaquetado y copiado a una mquina de produccin. Para llevarla a cabo utilice la herramienta aspnet_compiler.exe.Visual Studio 2005 permite crear un proyecto de despliegue (Web Setup Project). Encontrar la opcin para crear este tipo de proyecto, en men Create Project Other Projects Type, el cual una vez configurado y compilado genera un archivo de instalacin .msi*En esta diapositiva se muestra la estructura de directorios necesaria para la compilacin dinmica de una aplicacin web con ASP.NET 2.0**En versiones anteriores, para crear una aplicacin web era necesario tener instalado IIS (Microsoft Internet Information Server) y las extensiones de servidor de Front Page. Con el nuevo Visual Studio 2005 o Visual Web Developer 2005 Express Edition, ahora es factible administrar, desarrollar y depurar aplicaciones web sin intervencin de un administrador.Nota: En el ambiente de produccin es necesario tener instalado servidor web IIS.*Visual Web Developer 2005 Express Edition provee mayor flexibilidad al momento de administrar los archivos de una aplicacin Web.File System: Permite seleccionar la carpeta del disco local donde se van a alojar las pginas Web del sitio, de esta forma no es necesario el uso de IIS.Local IIS: Permite un manejo mucho mas simple al momento de trabajar con un servidor Web IIS. Cuando crea un proyecto o intenta abrir uno existente, Visual Studio 2005 le permite ver todos los sitios Web y aplicaciones configuradas en su mquina. (http://localhost/Site1). Las extensiones de servidor de Front Page no son necesarias para desarrollar aplicaciones Web en un IIS local.FTP: Permite la edicin y actualizacin de proyectos a travs del protocolo estndar de transferencia de archivos FTP (File Transfer Protocol).Sitio Remoto: Es posible publicar con un sitio Web a un servidor remoto, permitiendo mantener sincronizadas los archivos del proyecto local con los del servidor Web remoto (requiere las extensiones de servidor de Front Page).