SlideShare una empresa de Scribd logo
1 de 100
Introducción al desarrollo de aplicaciones Web con ASP.NET Lenguajes Avanzados Ing. Uriel García R. Ingeniería de Sistemas Universidad Católica de Costa Rica
 
Lo nuevo…. Más funciones ,[object Object],[object Object],[object Object],[object Object],[object Object]
 
Requerimientos  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Requerimientos del Hardware ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Objetivo ,[object Object]
Prerrequisitos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Temario  (1/2) ,[object Object],[object Object],[object Object],[object Object],[object Object]
Temario  (2/2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Temario ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Aplicaciones Web – ASP.NET ,[object Object],[object Object]
Aplicaciones Web - Servidor Web ,[object Object],[object Object]
Hypertext Transfer Protocol (HTTP) ,[object Object],[object Object],[object Object]
Funcionamiento 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 solicitada inicio.html <html> <body> Bienvenidos al  Curso ASP.NET </body> </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 ,[object Object],[object Object],Suma.html <html> <body> <form> <input type=&quot;text&quot; name=&quot;op1&quot; /> + <input type=&quot;text&quot; name=&quot;op2&quot; /> <input type=&quot;submit&quot; value=&quot;  =  &quot; /> </form> </body> </html>
HTML Forms (Cont.) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
HTML Forms (Cont.) Method = GET <form method=“get&quot;> . . . </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&quot;> . . . </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 cuerpo de 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 Servidor ,[object Object],[object Object],Suma.html <html> <body> <form> <input type=&quot;text&quot; name=&quot;op1&quot; /> + <input type=&quot;text&quot; name=&quot;op2&quot; /> <input type=&quot;submit&quot; value=&quot;  =  &quot; /> </form> </body> </html> Suma.html <html> <body> <form> <input type=&quot;text&quot; name=&quot;op1“  value=“2” /> + <input type=&quot;text&quot; name=&quot;op2“  value=“2” > <input type=&quot;submit&quot; value=&quot;  =  &quot; /> 4 </form> </body> </html> Antes del procesamiento Después del procesamiento
Procesamiento en el Servidor ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
ASP.NET ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
ASP.NET - Ventajas ,[object Object],[object Object],[object Object],[object Object],[object Object]
ASP.NET – Ventajas (Cont.) ,[object Object],[object Object],[object Object],[object Object]
Componentes de una aplicación ASP.NET ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Componentes de una aplicación ASP.NET ,[object Object],[object Object],[object Object],[object Object],[object Object]
Componentes de una aplicación ASP.NET Servicios Web Cliente Internet WebForm1.aspx.vb WebForm1.aspx WebForm2.aspx.vb WebForm2.aspx Global.asax Web.config Output Cache BIN Database ASP.NET Web Server Comp. Comp.
Las aplicaciones Web ASP.NET + IIS ,[object Object],[object Object],[object Object],[object Object],[object Object]
Las aplicaciones Web ASP.NET + IIS ,[object Object],[object Object],[object Object],[object Object],[object Object]
Estructura de las aplicaciones Web ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Plataforma de desarrollo Web Microsoft en el tiempo Visual Studio 6.0 Visual InterDev 6.0 IIS 5.0 SQL Server 2000 ASP Visual Studio .NET 2002 .NET Framework 1.0 ASP.NET 1.0 Visual Studio .NET 2003 .NET Framework 1.1 IIS 6.0 ASP.NET 1.1 Visual Studio 2005 Visual Web Developer Express Edition .NET Framework 2.0 SQL Server 2005 ASP.NET 2.0 Visual Studio “Orcas” .NET Framework “Orcas” ASP.NET “Orcas” 2000  2001  2002  2003  2004  2005  2006 y más
Temario  (1/2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],WebForms - Generalidades
Controles de Servidor ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Tipos de Controles de Servidor ,[object Object],[object Object],Controles de Servidor HTML Controles de Servidor Web ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Equivalencias de Controles ,[object Object],[object Object],[object Object],< INPUT   type =&quot;button&quot;   value =&quot;Buscar&quot;> < INPUT   type =&quot;button&quot;   value =&quot;Buscar&quot;   id =&quot;cmdBuscar&quot;   runat =&quot;server&quot;   NAME =&quot;button1&quot;> < asp:Button   id =&quot;cmdBuscar&quot;   runat =&quot;server&quot;   Text =&quot;Buscar&quot;/>
Controles de Servidor - Ejemplos WebControl HTML equivalente <asp:button> <input type=submit> <asp:checkbox> <input type=checkbox> <asp:hyperlink> <a href=&quot;…&quot;> </a> <asp:image> <img src=&quot;…&quot;> <asp:imagebutton> <input type=image> <asp linkButton> <asp:label> <span> </span> <asp:panel> <div> </div> <asp:radiobutton> <input type=radiobutton> <asp:table> <table> </table> <asp:textbox> <input type=text> <asp:listbox> <select size=&quot;5&quot;> </select>
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Controles de Servidor - Validación
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Controles de Servidor - Validación
[object Object],[object Object],[object Object],Controles de Servidor - Validación
[object Object],[object Object],[object Object],[object Object],Controles de Servidor – Controles “Ricos”
Controles de Usuario ,[object Object],[object Object],[object Object],[object Object],<%@ Control Language=&quot;vb&quot; %> <%@ Control Language=“cs&quot; %>
¿Por qué usar Controles de Usuario? ,[object Object],[object Object],[object Object],WebForm2.aspx WebForm1.aspx UserControl.ascx FARMACIA FARMACIA FARMACIA
Agregando Controles de Usuario ,[object Object],[object Object],[object Object],<%@Register TagPrefix=&quot;uc&quot;  TagName=&quot;encabezado&quot; Src=&quot;header.ascx&quot; %> <uc:encabezado id=“Enc1” runat=“server”> </uc:encabezado>
Eventos en un WebForm (1/4) Server Cliente Web Analiza el mensaje evento manejador mensaje respuesta Llama al manejador apropiado Modelo de Eventos Web Form
Eventos en un  WebForm  (2/4) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Eventos en un  WebForm  (3/4) ,[object Object],<asp:Button ID=&quot;btnEjemplo&quot; runat=&quot;server&quot; Text=&quot;Aceptar&quot; onclick=&quot;btnEjemploClick&quot; /> Atención 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) Atención 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)  Then lblEjemplo.Text = txtEjemplo.Text End If End Sub
Ciclo de vida de un WebForm ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Temario  (1/2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Conceptos principales  (1/2) ,[object Object],[object Object],[object Object],[object Object]
Conceptos principales  (2/2) ,[object Object],[object Object],[object Object],[object Object],[object Object]
Accediendo desde el código al web.config  (1/2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Accediendo desde el código al web.config  (2/2) SqlConnection  connection =  new   SqlConnection (  ConfigurationManager .ConnectionStrings [ &quot;ADVENTUREWORKSConnectionString&quot; ] .ConnectionString ); ,[object Object],[object Object],Dim  connection  As  SqlConnection =  New  _ SqlConnection(ConfigurationManager.ConnectionStrings( _  &quot;ADVENTUREWORKSConnectionString&quot; ).ConnectionString ) Ejemplo en Visual Basic
Temario  (1/2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Generalidades ,[object Object],[object Object],[object Object],[object Object]
Tipos de Autenticación ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Configurando la autenticación ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Autenticación por Formularios ,[object Object],[object Object],[object Object],[object Object]
Autenticación por Formularios Cliente solicita una página Autorizado Autenticación basada en Formulario NO Autenticado Autenticado Form de Login (Usuario ingresa sus credenciales) Autenticado Cookie de autenticación Autorizado NO Autenticado Acceso Denegado Página Segura solicitada IIS Usuario Clave Gabriel *********** Aceptar 1 2 3 4 6 5 7  
Controles de Login  (1/2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Ejemplo del control
Controles de Login  (2/2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Ejemplo del control
Temario  (1/2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Generalidades ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Administració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 estado Del lado del servidor Del lado del cliente ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],Administración de estados  - Servidor SessionID Variables de Session y  Application
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Administración de estados - Cliente Cookie
Global.asax ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Estado de la aplicación (1/2) ,[object Object],[object Object],[object Object],protected   void  Application_Start() {  DataSet ds =  new  DataSet();  try  { FileStream fs =  new   FileStream(Server.MapPath(&quot;schemadata.xml&quot;),  FileMode.Open,FileAccess.Read);  StreamReader reader =  new  StreamReader(fs); ds.ReadXml(reader); } finally  { fs.Close(); } DataView view =  new  DataView(ds.Tables[0]);  Application[&quot;Sucursal&quot;] = view; }
Estado de la aplicación (2/2) ,[object Object],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(&quot;schemadata.xml&quot;),  _   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 (&quot; Sucursal &quot;)  = view End Sub
Estado de la sesión  (1/2) ,[object Object],[object Object],[object Object],[object Object],Protected void  Session_Start(  object  sender,  EventArgs  e   ) {  //... try { conn =  new   SqlConnection (  ConfigurationManager .ConnectionStrings [ &quot;ADVENTUREWORKSConnectionString&quot; ] .ConnectionString ); command.Connection = conn; conn.Open(); object  result = command.ExecuteScalar(); Session[&quot;codigo&quot;] = result;  } finally  { conn.Close(); } }
Estado de la sesión  (2/2) ,[object Object],Sub  Application_Start( ByVal  sender  As   Object ,  ByVal  e  As   _  EventArgs) Dim  ds  As  DataSet =  New  DataSet Dim  command  As  SqlCommand  = New  SqlCommand(  _  &quot;Select codigo From  c lientes Where name = &quot;  & nombre ) Try conn =  New  SqlConnection(  _  ConfigurationManager.ConnectionStrings(  _  &quot;ADVENTUREWORKSConnectionString&quot; ).ConnectionString) command.Connection = conn conn.Open() Dim  result  As  Object = command.ExecuteScalar() Session(&quot;codigo&quot;) = result  Finally conn.Close() End Try   End Sub
View State ,[object Object],[object Object]
Temario  (2/2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Generalidades ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Páginas Maestras ,[object Object],[object Object],<%@ Master Language=&quot;C#“   CodeFile=&quot;MasterPage.master.cs&quot;  Inherits=&quot;MasterPage&quot; %>   <asp:contentplaceholder id=&quot;contenedor&quot; runat=&quot;server“> contenido por defecto </asp:contentplaceholder>
Páginas de contenido ,[object Object],[object Object],[object Object],<%@ Page Language=&quot;C#&quot; MasterPageFile=&quot;~/MasterPage.master&quot;  CodeFile=&quot;Default.aspx.cs&quot; Inherits=&quot;_Default&quot; Title=&quot;Home&quot; %> <asp:Content ID=&quot;cntDefault&quot; ContentPlaceHolderID=&quot;contenedor&quot; Runat=&quot;Server&quot;>   contenido de la página  </asp:Content>
Temario ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Themes y Skins - Generalidades ,[object Object],[object Object],[object Object],[object Object]
Contenido de un archivo Skin ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Temario ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Navegación - Menú ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Ejemplo del control
Control de Navegación ,[object Object],[object Object],[object Object],[object Object]
Temario ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Controles de enlace de Datos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Controles visualizadores  (1/2) ,[object Object],<asp:GridView ID=&quot;GridView1&quot; runat=&quot;server&quot; DataSourceID=&quot;SqlDataSource1&quot;  DataKeyNames=&quot;ProductID&quot; AllowPaging=&quot;True&quot; AllowSorting=&quot;True&quot;> <Columns> <asp:CommandField DeleteText=&quot;Excluir“ CancelText=&quot;Cancelar“ UpdateText=&quot;Atualizar&quot; EditText=&quot;Editar&quot;/> <asp:BoundField ReadOnly=&quot;True&quot; HeaderText=&quot;Cod&quot; DataField=&quot;ProductID&quot;/> <asp:BoundField HeaderText=&quot;Produto&quot; DataField=&quot;ProductName&quot;/> <asp:BoundField HeaderText=&quot;Estoque&quot; DataField=&quot;UnitsInStock&quot;  DataFormatString=&quot;{0:n0}&quot;/> </Columns> </asp:GridView> <asp:SqlDataSource ID=&quot;SqlDataSource1&quot; runat=&quot;server&quot; ConnectionString=&quot;<%$ ConnectionStrings:myConnection %>&quot;  UpdateCommand=&quot;UPDATE [Products] SET [ProductName] = @ProductName &quot; SelectCommand=&quot;SELECT [ProductID], [ProductName] … FROM [Products]&quot; InsertCommand=&quot;INSERT INTO [Products] ([ProductName] ...&quot; DeleteCommand=&quot;DELETE FROM [Products] WHERE [ProductID] ...&quot;> </asp:SqlDataSource>
Controles visualizadores  (2/2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],<asp:DetailsView AutoGenerateRows=&quot;False&quot; DataKeyNames=&quot;au_id&quot; DataSourceID=&quot;SqlDataSource3&quot; HeaderText=&quot;Author Details&quot; ID=&quot;DetailsView1&quot; runat=&quot;server&quot; Width=&quot;275px&quot;>   <Fields>    <asp:BoundField DataField=&quot;au_id&quot; HeaderText=&quot;au_id&quot; SortExpression=&quot;au_id&quot; />  <asp:BoundField DataField=&quot;au_lname&quot; HeaderText=&quot;au_lname&quot; />    <asp:CheckBoxField DataField=&quot;contract&quot; HeaderText=&quot;contract&quot; />  </Fields>  </asp:DetailsView>
Temario ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Compilación e Instalación -Generalidades ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Compilación dinámica vroot App_Code CS VB WSDL XSD RESX RESOURCE Los archivos se compilan dinámicamente en el primer acceso App_LocalResources
Temario ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Generalidades ,[object Object],[object Object],[object Object],[object Object]
Creación y Acceso a Proyectos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Temario ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Referencias  (1/2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Referencias  (2/2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
© 2006 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Más contenido relacionado

La actualidad más candente

Programacion de aplicaciones Web con ASP.NET
Programacion de aplicaciones Web con ASP.NETProgramacion de aplicaciones Web con ASP.NET
Programacion de aplicaciones Web con ASP.NETJavier Roig
 
Trabajar con bases de datos desde ASP.NET
Trabajar con bases de datos desde ASP.NETTrabajar con bases de datos desde ASP.NET
Trabajar con bases de datos desde ASP.NETJavier Roig
 
Desarrollo de Aplicaciones Web con ASP.NET MVC5
Desarrollo de Aplicaciones Web con ASP.NET MVC5Desarrollo de Aplicaciones Web con ASP.NET MVC5
Desarrollo de Aplicaciones Web con ASP.NET MVC5Oscar Gensollen
 
Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4
Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4
Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4Rodolfo Finochietti
 
PHP, casos de éxito y comparativas con otros lenguajes
PHP, casos de éxito y comparativas con otros lenguajesPHP, casos de éxito y comparativas con otros lenguajes
PHP, casos de éxito y comparativas con otros lenguajesHéctor Garduño Real
 
2009_asp.net_capitulo_1
2009_asp.net_capitulo_12009_asp.net_capitulo_1
2009_asp.net_capitulo_1zhylz Zevallos
 
Estudio comparativo de PHP, ASP.NET Y JAVA
Estudio comparativo de PHP, ASP.NET Y JAVAEstudio comparativo de PHP, ASP.NET Y JAVA
Estudio comparativo de PHP, ASP.NET Y JAVAHelmilpa
 
ASP.NET MVC (2011)
ASP.NET MVC (2011)ASP.NET MVC (2011)
ASP.NET MVC (2011)wildtango
 
ASP .NET MVC: Desarrollo web con el patrón MVC
ASP .NET MVC: Desarrollo web con el patrón MVCASP .NET MVC: Desarrollo web con el patrón MVC
ASP .NET MVC: Desarrollo web con el patrón MVCriojadotnet
 
Presentacion sobre asp
Presentacion sobre aspPresentacion sobre asp
Presentacion sobre aspkarenReyes152
 
Desarrollo Web con ASP.NET MVC
Desarrollo Web con ASP.NET MVCDesarrollo Web con ASP.NET MVC
Desarrollo Web con ASP.NET MVCAngel Nuñez
 
Asp.net conceptos
Asp.net conceptosAsp.net conceptos
Asp.net conceptosXstremsX
 
Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010
Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010
Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010Desarrollos NEA
 

La actualidad más candente (19)

Programacion de aplicaciones Web con ASP.NET
Programacion de aplicaciones Web con ASP.NETProgramacion de aplicaciones Web con ASP.NET
Programacion de aplicaciones Web con ASP.NET
 
Asp.net 4
Asp.net 4Asp.net 4
Asp.net 4
 
Trabajar con bases de datos desde ASP.NET
Trabajar con bases de datos desde ASP.NETTrabajar con bases de datos desde ASP.NET
Trabajar con bases de datos desde ASP.NET
 
Desarrollo de Aplicaciones Web con ASP.NET MVC5
Desarrollo de Aplicaciones Web con ASP.NET MVC5Desarrollo de Aplicaciones Web con ASP.NET MVC5
Desarrollo de Aplicaciones Web con ASP.NET MVC5
 
Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4
Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4
Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4
 
PHP, casos de éxito y comparativas con otros lenguajes
PHP, casos de éxito y comparativas con otros lenguajesPHP, casos de éxito y comparativas con otros lenguajes
PHP, casos de éxito y comparativas con otros lenguajes
 
2009_asp.net_capitulo_1
2009_asp.net_capitulo_12009_asp.net_capitulo_1
2009_asp.net_capitulo_1
 
Dce2 ejercicios asp.net
Dce2 ejercicios asp.netDce2 ejercicios asp.net
Dce2 ejercicios asp.net
 
Ejercicio basico en asp.net LOZADA ERICK
Ejercicio basico en asp.net LOZADA ERICKEjercicio basico en asp.net LOZADA ERICK
Ejercicio basico en asp.net LOZADA ERICK
 
Tutorial ASP .NET
Tutorial ASP .NETTutorial ASP .NET
Tutorial ASP .NET
 
Estudio comparativo de PHP, ASP.NET Y JAVA
Estudio comparativo de PHP, ASP.NET Y JAVAEstudio comparativo de PHP, ASP.NET Y JAVA
Estudio comparativo de PHP, ASP.NET Y JAVA
 
ASP.NET MVC (2011)
ASP.NET MVC (2011)ASP.NET MVC (2011)
ASP.NET MVC (2011)
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
ASP .NET MVC: Desarrollo web con el patrón MVC
ASP .NET MVC: Desarrollo web con el patrón MVCASP .NET MVC: Desarrollo web con el patrón MVC
ASP .NET MVC: Desarrollo web con el patrón MVC
 
Presentacion sobre asp
Presentacion sobre aspPresentacion sobre asp
Presentacion sobre asp
 
Desarrollo Web con ASP.NET MVC
Desarrollo Web con ASP.NET MVCDesarrollo Web con ASP.NET MVC
Desarrollo Web con ASP.NET MVC
 
5-Unidad 2: Diseño de Vista-2.2 Para Web
5-Unidad 2: Diseño de Vista-2.2 Para Web5-Unidad 2: Diseño de Vista-2.2 Para Web
5-Unidad 2: Diseño de Vista-2.2 Para Web
 
Asp.net conceptos
Asp.net conceptosAsp.net conceptos
Asp.net conceptos
 
Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010
Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010
Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010
 

Similar a Introducción ASP .NET

Especialista Web J13: Introducción a Asp.Net
Especialista Web J13: Introducción a Asp.NetEspecialista Web J13: Introducción a Asp.Net
Especialista Web J13: Introducción a Asp.NetMoisés Cid Deza
 
2009 05-07-tutorial asp.net
2009 05-07-tutorial asp.net2009 05-07-tutorial asp.net
2009 05-07-tutorial asp.netSandy Contreras
 
Dce2 introduccion asp.net primeras 20
Dce2 introduccion asp.net primeras 20Dce2 introduccion asp.net primeras 20
Dce2 introduccion asp.net primeras 20Marvin Romero
 
Presentacion sesion 3 en MPA del CEU por Pablo de Castro
Presentacion sesion 3 en MPA del CEU por Pablo de CastroPresentacion sesion 3 en MPA del CEU por Pablo de Castro
Presentacion sesion 3 en MPA del CEU por Pablo de CastroPablo De Castro
 
Building Ria Applications With Silverlight 2
Building Ria Applications With Silverlight 2Building Ria Applications With Silverlight 2
Building Ria Applications With Silverlight 2Tonymx
 
Asp.net lendry Barrientos
Asp.net lendry BarrientosAsp.net lendry Barrientos
Asp.net lendry BarrientosLeandryDe
 
Revision de tecnologias web
Revision de tecnologias webRevision de tecnologias web
Revision de tecnologias webFRISLY5
 
Que es html zabaleta ruíz milton de jesús
Que es html zabaleta ruíz milton de jesúsQue es html zabaleta ruíz milton de jesús
Que es html zabaleta ruíz milton de jesúsmiltonzabaleta1997
 
Exprimiendo SharePoint 2010
Exprimiendo SharePoint 2010Exprimiendo SharePoint 2010
Exprimiendo SharePoint 2010Juan Pablo
 
01 Ext Js Introduccion
01 Ext Js   Introduccion01 Ext Js   Introduccion
01 Ext Js IntroduccionMayer Horna
 
Introducción a ASP.NET
Introducción a ASP.NETIntroducción a ASP.NET
Introducción a ASP.NETpabloesp
 
Lanzamiento Visual Studio 2008
Lanzamiento Visual Studio 2008Lanzamiento Visual Studio 2008
Lanzamiento Visual Studio 2008Tonymx
 
Framework .NET 3.5 02 Entorno de desarrollo (ide)
Framework .NET 3.5 02 Entorno de desarrollo (ide)Framework .NET 3.5 02 Entorno de desarrollo (ide)
Framework .NET 3.5 02 Entorno de desarrollo (ide)Antonio Palomares Sender
 

Similar a Introducción ASP .NET (20)

Especialista Web J13: Introducción a Asp.Net
Especialista Web J13: Introducción a Asp.NetEspecialista Web J13: Introducción a Asp.Net
Especialista Web J13: Introducción a Asp.Net
 
2009 05-07-tutorial asp.net
2009 05-07-tutorial asp.net2009 05-07-tutorial asp.net
2009 05-07-tutorial asp.net
 
Dce2 introduccion asp.net primeras 20
Dce2 introduccion asp.net primeras 20Dce2 introduccion asp.net primeras 20
Dce2 introduccion asp.net primeras 20
 
Presentacion sesion 3 en MPA del CEU por Pablo de Castro
Presentacion sesion 3 en MPA del CEU por Pablo de CastroPresentacion sesion 3 en MPA del CEU por Pablo de Castro
Presentacion sesion 3 en MPA del CEU por Pablo de Castro
 
[Run Reloaded] Qué hay de nuevo en ASP.NET 4.0 (Eugenio Serrano)
[Run Reloaded] Qué hay de nuevo en ASP.NET 4.0 (Eugenio Serrano)[Run Reloaded] Qué hay de nuevo en ASP.NET 4.0 (Eugenio Serrano)
[Run Reloaded] Qué hay de nuevo en ASP.NET 4.0 (Eugenio Serrano)
 
Building Ria Applications With Silverlight 2
Building Ria Applications With Silverlight 2Building Ria Applications With Silverlight 2
Building Ria Applications With Silverlight 2
 
HTML.pdf
HTML.pdfHTML.pdf
HTML.pdf
 
Asp.net lendry Barrientos
Asp.net lendry BarrientosAsp.net lendry Barrientos
Asp.net lendry Barrientos
 
Ekipo 2
Ekipo 2Ekipo 2
Ekipo 2
 
Revision de tecnologias web
Revision de tecnologias webRevision de tecnologias web
Revision de tecnologias web
 
Que es html zabaleta ruíz milton de jesús
Que es html zabaleta ruíz milton de jesúsQue es html zabaleta ruíz milton de jesús
Que es html zabaleta ruíz milton de jesús
 
Exprimiendo SharePoint 2010
Exprimiendo SharePoint 2010Exprimiendo SharePoint 2010
Exprimiendo SharePoint 2010
 
01 Ext Js Introduccion
01 Ext Js   Introduccion01 Ext Js   Introduccion
01 Ext Js Introduccion
 
EQUIPO 2,LAS AGUILAS
EQUIPO 2,LAS AGUILASEQUIPO 2,LAS AGUILAS
EQUIPO 2,LAS AGUILAS
 
Introducción a ASP.NET
Introducción a ASP.NETIntroducción a ASP.NET
Introducción a ASP.NET
 
Html5
Html5Html5
Html5
 
Access
AccessAccess
Access
 
Access
AccessAccess
Access
 
Lanzamiento Visual Studio 2008
Lanzamiento Visual Studio 2008Lanzamiento Visual Studio 2008
Lanzamiento Visual Studio 2008
 
Framework .NET 3.5 02 Entorno de desarrollo (ide)
Framework .NET 3.5 02 Entorno de desarrollo (ide)Framework .NET 3.5 02 Entorno de desarrollo (ide)
Framework .NET 3.5 02 Entorno de desarrollo (ide)
 

Último

Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteJuan Hernandez
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
Factores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFactores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFlor Idalia Espinoza Ortega
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.DaluiMonasterio
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxOscarEduardoSanchezC
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuaDANNYISAACCARVAJALGA
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinavergarakarina022
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPELaura Chacón
 
6° SEM30 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
6° SEM30 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx6° SEM30 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
6° SEM30 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docxCeciliaGuerreroGonza1
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleJonathanCovena1
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 

Último (20)

Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parte
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
Factores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFactores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamica
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
La Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdfLa Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdf
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahua
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karina
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPE
 
6° SEM30 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
6° SEM30 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx6° SEM30 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
6° SEM30 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo Sostenible
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 

Introducción ASP .NET

  • 1. Introducción al desarrollo de aplicaciones Web con ASP.NET Lenguajes Avanzados Ing. Uriel García R. Ingeniería de Sistemas Universidad Católica de Costa Rica
  • 2.  
  • 3.
  • 4.  
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15. Funcionamiento 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
  • 16. Pagina solicitada inicio.html <html> <body> Bienvenidos al Curso ASP.NET </body> </html>
  • 17. 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]
  • 18. 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>
  • 19.
  • 20.
  • 21. HTML Forms (Cont.) Method = GET <form method=“get&quot;> . . . </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&quot;> . . . </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 cuerpo de 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
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29. Componentes de una aplicación ASP.NET Servicios Web Cliente Internet WebForm1.aspx.vb WebForm1.aspx WebForm2.aspx.vb WebForm2.aspx Global.asax Web.config Output Cache BIN Database ASP.NET Web Server Comp. Comp.
  • 30.
  • 31.
  • 32.
  • 33. Plataforma de desarrollo Web Microsoft en el tiempo Visual Studio 6.0 Visual InterDev 6.0 IIS 5.0 SQL Server 2000 ASP Visual Studio .NET 2002 .NET Framework 1.0 ASP.NET 1.0 Visual Studio .NET 2003 .NET Framework 1.1 IIS 6.0 ASP.NET 1.1 Visual Studio 2005 Visual Web Developer Express Edition .NET Framework 2.0 SQL Server 2005 ASP.NET 2.0 Visual Studio “Orcas” .NET Framework “Orcas” ASP.NET “Orcas” 2000 2001 2002 2003 2004 2005 2006 y más
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39. Controles de Servidor - Ejemplos WebControl HTML equivalente <asp:button> <input type=submit> <asp:checkbox> <input type=checkbox> <asp:hyperlink> <a href=&quot;…&quot;> </a> <asp:image> <img src=&quot;…&quot;> <asp:imagebutton> <input type=image> <asp linkButton> <asp:label> <span> </span> <asp:panel> <div> </div> <asp:radiobutton> <input type=radiobutton> <asp:table> <table> </table> <asp:textbox> <input type=text> <asp:listbox> <select size=&quot;5&quot;> </select>
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47. Eventos en un WebForm (1/4) Server Cliente Web Analiza el mensaje evento manejador mensaje respuesta Llama al manejador apropiado Modelo de Eventos Web Form
  • 48.
  • 49.
  • 50. Eventos en un WebForm (4/4) Atención 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) Then lblEjemplo.Text = txtEjemplo.Text End If End Sub
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62. Autenticación por Formularios Cliente solicita una página Autorizado Autenticación basada en Formulario NO Autenticado Autenticado Form de Login (Usuario ingresa sus credenciales) Autenticado Cookie de autenticación Autorizado NO Autenticado Acceso Denegado Página Segura solicitada IIS Usuario Clave Gabriel *********** Aceptar 1 2 3 4 6 5 7  
  • 63.
  • 64.
  • 65.
  • 66.
  • 67. Administració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
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.
  • 84.
  • 85.
  • 86.
  • 87.
  • 88.
  • 89.
  • 90.
  • 91.
  • 92.
  • 93. Compilación dinámica vroot App_Code CS VB WSDL XSD RESX RESOURCE Los archivos se compilan dinámicamente en el primer acceso App_LocalResources
  • 94.
  • 95.
  • 96.
  • 97.
  • 98.
  • 99.
  • 100. © 2006 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Notas del editor

  1. El presente curso de entrenamiento introduce el desarrollo de aplicaciones web presentando ASP.NET 4.0 como framework (marco) de desarrollo, para que el alumno pueda conocer y aprovechar al máximo el potencial de esta tecnología. Esta sección incluye tanto las características nuevas, como aquellas que han sido modificadas; aplicando lo aprendido en los cursos anteriores del programa Desarrollador 5 Estrellas. Acompañan al presente material teórico una serie de ejercicios de ejemplo y guías, desarrollados en Visual C# y en Visual Basic .NET, que sirven de apoyo al alumno en el proceso del aprendizaje. Se recomienda la realización de los ejercicios propuestos, la lectura del material adicional de referencia asi como también la lectura y ejecución de los ejemplos para lograr una formación completa en el tema.
  2. Se recomienda además, tener conocimientos básicos de HTML y acceso a bases de datos relacionales mediante el lenguaje SQL. Puede encontrar material de referencia acerca de HTML y tecnologías relacionadas en el siguiente sitio web: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnanchor/html/anch_webdev.asp
  3. HTTP define como los navegadores y los servidores Web se comunican uno con otro. En una aplicación 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 página y captura la entrada de datos del usuario. El HTML Form es la porción de la página que es enviada a través del protocolo HTTP al servidor para procesar el pedido realizado por el usuario. Hay dos modos de envío de formularios al servidor: Get y Post . El primero envía los datos ingresados en el formulario como una cadena de consulta, el segundo envía los datos en el cuerpo del pedido. Para mas información, consulte el material de referencia al final del curso.
  4. Los Formularios Web son archivos de texto que poseen la extensión .aspx que, generalmente, expresan la interfaz del usuario. Estos archivos son interpretados por ASP.NET vinculando la interfaz del usuario con el código del lado del servidor (code behind). Para lograr la vinculación, la directiva Page entra en juego: &lt;%@ Page compilewith=&amp;quot;MiPagina.aspx.cs&amp;quot; classname=&amp;quot;MiEspacioDeNombres.MiClase&amp;quot; %&gt; Code Behind (código detrás): logra el comportamiento deseado de un formulario web. Definir clases como Partial Class permite que una misma clase esté definida de forma parcial en múltiples archivos (en versiones anteriores una clase sólo podía estar definida en un archivo). En ASP.NET 2.0 con la incorporación del concepto de clases parciales, puede encontrar el concepto Code Beside que podría traducirse como código al lado, con la misma funcionalidad que el code behind. Visual Studio 2005 aprovecha esta característica para definir parte de la clase de la página ASPX en el propio archivo &apos;.aspx&apos;, que ahora contiene definiciones de controles y eventos, y el código que gobierna su funcionamiento en un archivo aparte por medio de una clase parcial. Nótese 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.
  5. El modelo de eventos de una página ASP.NET, trabaja como se muestra en el ejemplo gráfico. El cliente realiza una petición, 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 información que ha solicitado (ya sea una nueva página, un mensaje, etc.)
  6. 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 información para atender el evento del cliente sea transferida al servidor por medio de una petición 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 página que viaja en cada postback ; si no se tiene control de su tamaño puede dificultar la navegación del sitio haciéndolo más lento. Para ello verifique el estado de la propiedad EnableViewState de todos los controles y utilice este mecanismo cuando sea necesario. Existen otras técnicas que permiten comunicarse con el servidor: Cuando se utiliza una página con la propiedad PostBackUrl , el evento generado en el cliente es atendido por una segunda página. La página que atiende el pedido puede hacer referencia a los controles de la página 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 información sobre Script CallBack en ASP.NET 2.0 vea el material de referencia.
  7. Como puede apreciarse en el ejemplo, en el cliente de la página web se declara un botón con el evento onclick el manejador del evento es un método protegido de la misma clase, que, se ubica del lado del servidor. Es importante notar que los métodos que atienden eventos de este tipo, siempre tienen dos parámetros, un objeto que hace referencia al control que provoca el evento y un segundo parámetro que posee información necesaria para atender el llamado.
  8. En este ejemplo se atiende en visual Basic el evento onclick declarado en el control de ejemplo de la diapositiva anterior.
  9. El ciclo de vida de un página web form corresponde al tiempo que transcurre entre la invocación del servidor Web (IIS) y el envío de la información de respuesta al cliente. Detallaremos a continuación los sucesos mas importantes que ocurren en el ciclo de vida de una página ASP.NET El ciclo de vida de una página ASP.NET comienza cuando el marco de ejecución de ASP.NET invoca al código asociado a la página .aspx requerida. Luego de instanciar los objetos de contexto request y response , crea el árbol de controles declarado en la página .aspx y determina si la página fue llamada en modo postback o no. Luego ocurre la inicialización de objetos y la configuración de sus estados, produciéndose el disparo del evento Init en cada uno de ellos, y a posterior el evento Init de la página contenedora; a su vez se aplican los Themes que afecten a la página ( Los Themes, son estilos que se aplican a los controles web, más adelante en este curso se tratarán puntualmente). Una vez inicializados los objetos, ASP.NET 2.0 carga en ellos sus estados y los valores del view state. A continuación 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 página, en el cual el desarrollador podrá atrapar el evento Page_Load . Una vez que la página 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 lógica 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 página que los contiene. Es responsabilidad del recolector de basura (Garbage Collector) destruir ( Dispose ) todos los objetos incluidos en el ciclo de vida de la página.
  10. El archivo de configuración web.config permite una fácil administración e instalación de una aplicación web ASP.NET conteniendo toda la información relevante de la aplicación (autenticación, sesiones, autorización, etc.) incluyendo valores referentes a la funcionalidad propia de la aplicación. Al modificar el archivo de configuración web.config, no es necesario reiniciar la aplicación en el servidor, ésta lo detecta automáticamente. El sistema de configuración de ASP.NET se compone de dos archivos: Machine.config : donde se guarda información de configuración para todo el servidor. (Existe un solo archivo machine.config instalado por cada versión de ASP.NET ) Web.config : donde se guarda información de configuración específica de la aplicación, se pueden colocar múltiples archivos Web.Config en una aplicación, por ejemplo uno en la raíz y uno en cada uno de los subdirectorios que lo necesiten. Pero no puede haber más de uno por directorio. Otra ventaja es que se pueden agregar archivos de configuración externos, referenciados desde el web.config, facilitando enormemente el trabajo para grandes equipos de desarrollo.
  11. En las versiones anteriores de ASP.NET, había que editar los archivos de configuración 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 administración de la configuración de la aplicación. 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 fácilmente por medio de estas herramientas.
  12. Esta porción de ejemplo de un archivo web.config declara la cadena de conexión a una base de datos. En la próxima diapositiva se leerá el valor desde el código. Cabe destacar que el archivo web.config es de formato texto y puede ser editado fácilmente y en cualquier momento, durante el desarrollo o mientras la aplicación este en producción.
  13. ASP.NET 2.0 provee una API de configuración mas rica que versiones anteriores, facilitando la lectura y escritura de los archivos de configuración desde el código. Este ejemplo muestra como recuperar el valor de una cadena de conexión a la base de datos, declarada en un web.config.
  14. Existen 3 tipos de autenticación en aplicaciones .Net. La autenticación basada en windows, utiliza la infraestructura de Windows para validar las credenciales, es apropiada para aplicaciones intranet. La autenticación basada en formularios, utiliza generalmente bases de datos para la validación de credenciales, es apropiada para aplicaciones web. La autenticación basada en MS Passport, utiliza un servicio web para la validación de credenciales, por lo cual no necesita guardar los datos de los usuarios en una base de datos, pero su utilización tiene un costo económico. En el curso se introduce la autenticación por formularios , para más información de los otros tipos de autenticación, sugerimos consultar el material previo del programa Desarrollador 5 Estrellas, o consultar el sitio de MSDN Español.
  15. Para utilizar la autenticación por formularios, hay que configurar en el web.config la sección correspondiente incorporando el elemento authentication como muestra el ejemplo; y a su vez indicar cual será la página de Login para que el usuario pueda ingresar sus credenciales. El elemento authorization esta fuertemente relacionado con la autenticación, y determina si el usuario autenticado está autorizado a acceder a cierta página o no según sean sus privilegios asociados. El ejemplo muestra que no se autoriza el acceso a la aplicación a ningún usuario que no haya sido previamente autenticado.
  16. Este modo de autenticación es muy utilizado en sitios web públicos. Para Autenticar por Formularios, los algoritmos de verificación de usuarios, consultan bases de datos. Cuando se confirma que las credenciales de autenticación (usuario y contraseña) son válidas, se genera un ticket de autenticación con la identidad del usuario. Luego en las siguientes peticiones de página, se autoriza al usuario utilizando este “ticket”. Este ticket de autenticación se guarda en una cookie. Las cookies son ar chivos de texto que guardan información de estado en la PC cliente. (encontrara mas información sobre cookies en los distintos enlaces de la sección Referencias del curso).
  17. ASP.NET 2.0 provee un nuevo grupo de controles para la autenticación de usuarios, llamados Controles de Login Estos controles brindan la funcionalidad de recibir y validar las credenciales de un usuario, crear usuarios, recuperar contraseñas, mostrar el usuario actual en las páginas de un sitio, etc. El modelo de proveedores (*) de membresía (membership provider) trabaja fuertemente ligado con estos controles, facilitando el proceso de desarrollo. Para utilizar estos controles, se debe habilitar la autenticación por formularios en la aplicación. Vea los ejercicios de ejemplo que utilizan estos controles. Es importante aclarar que el modelo de la base de datos también 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 información acerca del modelo de proveedores, vea los documentos recomendados al final del curso.
  18. El nuevo control de creación de usuarios hereda del nuevo control Wizard y se puede personalizar si se desea cambiar el idioma del control , los nombres de los botones, títulos 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.
  19. Como se mencionó anteriormente, las páginas 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 información de las páginas 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 páginas a través 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 aplicación y a nivel de sesión del usuario.
  20. Este archivo (global.asax) contiene distintos eventos que son lanzados a nivel de aplicación. Estas declaraciones de evento no producen interfaz de usuario y sirven para mantener variables de estado de la aplicación y/o de la sesión. Los eventos Application_Start y Application_End suceden cuando la aplicación 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 aplicación respectivamente. El archivo global.asax se ubica en el raíz del directorio virtual de la aplicación web. ASP.NET analiza y compila el global.asax en una clase dinámica del Net Framework la primera vez que cualquier URL de la aplicación es activada o solicitada. Las directivas del gobal.asax dan a las páginas ASP .NET instrucciones especiales a ser usadas en la compilación, una directiva puede ser: &lt;%@ Application Description=“Aquí describo al global.asax” %&gt;.
  21. La colección Application permite almacenar la información que es común a todos los usuarios que acceden al sitio y que deberá estar disponible en todo momento. La carga en memoria de esta información sucede en el arranque de la aplicación 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 aplicación 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 mantendrán en memoria toda la vida de la aplicación. El código muestra la carga de un objeto DataView que se guarda en una variable de aplicación: Application[“Sucursal&amp;quot;] . Luego puede ser accedida desde las páginas del sitio. El siguiente ejemplo muestra la recuperación 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[&amp;quot; Sucursal &amp;quot;]); ... MyGridView.DataSource = Source; ... }
  22. El código muestra la carga de un objeto DataView que se guarda en una variable de aplicación: Application(“Sucursal“) . Luego puede ser accedida desde las páginas del sitio. El siguiente ejemplo muestra la recuperación 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.Load Dim Source As DataView = CType((Application(“Sucursal&amp;quot;)), DataView) ... MyGridView.DataSource = Source ... End Sub
  23. ASP.NET provee un mecanismo para mantener información individual de cada interacción de un navegador con el servidor web llamado sesión. La sesión perdura un tiempo determinado, previamente establecido en el archivo de configuración; y se renueva por cada pedido del cliente. La colección Session permite almacenar la información particular de una sesión. Cuando un usuario solicita por primera vez una página .aspx al servidor web, ASP.NET crea una nueva sesión para él. En este momento es factible la carga en memoria de la información del usuario. Por defecto la información de sesión se guarda en memoria. El ejemplo muestra como almacenar el código de cliente de un usuario. Mediante el evento Session_Start se buscan los datos necesarios, que se mantendrán en memoria mientras el usuario este conectado. El código de la diapositiva muestra la carga del código del cliente que se guarda en una variable de sesión: Session[“Codigo&amp;quot;] . Luego puede ser accedida desde las páginas del sitio. El siguiente ejemplo muestra la recuperación del código del cliente en el evento Load, mostrándolo en un control TextBox: void Page_Load(Object sender, EventArgs e) { string cliente = (Session[“Codigo&amp;quot;]); ... txtCliente.Text = cliente; ... }
  24. El código de la diapositiva muestra la carga del código del cliente que se guarda en una variable de sesión: Session(“Codigo“) . Luego puede ser accedida desde las páginas del sitio.
  25. Para mantener el estado de los controles de una página aspx entre postbacks, ASP.NET utiliza el View State. Esta técnica 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 página (afectando a todos los controles de la misma) o por cada control. El tamaño del campo oculto donde se almacena puede crecer innecesariamente dificultando la navegación del sitio; es por eso necesario moderar el uso del ViewState. En el servidor se implementa como una colección: ViewState.
  26. Una página maestra permite añadir código, controles, estilos, etc. que deben ser compartidos por todas o la mayoría de las páginas de la aplicación. Las páginas que están vinculadas con la página maestra heredando su contenido visualmente, se llaman páginas de contenido; estas son independientes de su página maestra, tanto en el código como en el lenguaje que se desee programar. Es decir, puedo tener una master page codificada en C#, y las páginas de contenido en VB .Net. Otro tema importante es que se pueden crear sitios con páginas maestras anidadas (Nested Master Pages). Es decir, un sitio puede tener distintos módulos, con una una página maestra que contiene un encabezado determinado para toda la aplicación, y luego crear otras páginas 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.
  27. ASP.NET 2.0 provee un nuevo mecanismo para la creación de aplicaciones web que permite, mediante la declaración de una página maestra (master page), que todo el sitio posea la misma apariencia. En versiones anteriores, si había que utilizar un menú, lo mas usual era crear un control de usuario con la funcionalidad del menú y luego incluirlo en todas las páginas. Ahora, el menú solo debe incluirse en la página maestra, y todas las paginas de contenido que estén vinculadas con ella tendrán el menú. Esto permite un código mas limpio y ordenado en la aplicación, haciendo al mismo más fácil de mantener. La página maestra se puede configurar para toda la aplicación desde el web.config, o bien en la directiva @Page de las páginas que la utilicen.
  28. Las páginas de contenido son páginas aspx que tienen una referencia a alguna página 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 página web designado en la página maestra, logrando una interfaz homogénea para toda la aplicación.
  29. En las versiones anteriores de ASP.NET para que un sitio tuviera un estilo homogéneo había que crear hojas de estilo en cascada, y asignar a cada control de cada página 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 aplicación o a la página. De este modo, todos los controles definidos en el tema de la aplicación (o página) tomaran su estilo de éste directamente. Si no se desea asignar un tema a nivel de máquina, aplicación o página, se puede a cada control asignarle el tema de donde tomar su estilo.
  30. 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.
  31. Las interfaces de usuario de navegación son tediosas de implementar , especialmente si están basadas en script del lado del cliente . ASP.NET 2.0 incorpora nuevos controles de navegación, como el menú, treeview, site map, etc . facilitando la utilización 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 código 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 presentación puede mejorar su apariencia por medio de skins o bien, con la opción AutoFormat seleccionado manualmente los estilos presentados.
  32. El control de navegación SiteMapPath indica de manera elegante, la ubicación en el mapa del sitio de la página 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 Raíz: &lt;siteMap&gt; Nodos Hijos: &lt;siteMapNode title=&amp;quot;Book 1&amp;quot; url=&amp;quot;~/book1/book1.aspx&amp;quot; description=&amp;quot;Go To Book 1&amp;quot;&gt; Los nodos hijos pueden tener a su vez mas nodos hijos, creando así una estructura mas compleja.
  33. El control SQLDataSource p ermite trabajar con cualquiera de las bases de datos relacionales basadas en lenguaje SQL, tales como Microsoft SQL Server u Oracle. &lt;asp:SqlDataSource ID=&amp;quot;SqlDataSource1&amp;quot; runat=&amp;quot;server&amp;quot; SelectCommand =&amp;quot;SELECT au_id, au_lname, au_fname FROM authors&amp;quot; ConnectionString=&amp;quot;&lt;%$ ConnectionStrings:Pubs %&gt;&amp;quot; /&gt; El ObjectDataSource permite enlazar contra clases de la capa de negocios y se declara de la siguiente forma: &lt;asp:ObjectDataSource TypeName =&amp;quot;MyDataLayer&amp;quot; SelectMethod =&amp;quot;GetRecords&amp;quot; UpdateMethod =&amp;quot;UpdateRecord&amp;quot; DeleteMethod =&amp;quot;DeleteRecord&amp;quot; InsertMethod =&amp;quot;InsertRecord&amp;quot; runat=&amp;quot;server&amp;quot;/&gt; 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 método de la clase se utilizará para realizar las tareas de selección, modificación, eliminación e inserción de datos respectivamente. Para mas información sobre este interesante tema se recomienda realizar los ejercicios propuestos y leer el material propuesto.
  34. 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 conexión configurada en el web.config mediante el signo $. Esta es una nueva forma de hacer referencia al contenido del archivo de configuración desde el código del cliente. De este modo el ordenamiento, modificación de registros, Paginado, etc. se realizan automáticamente indicándolo como en el ejemplo (ver las propiedades resaltadas). Otra de las grandes ventajas sobre su grilla predecesora es que permite la definición de múltiples campos como clave primaria
  35. DetailsView Es un control que visualiza un registro por vez, opcionalmente provee botones de navegación que permite navegar entre los distintos registros asociados. Además de visualizar, también permite modificar el registro actual. FormView Es similar al anterior a diferencia que necesita la definición de un template para representar los campos.
  36. ASP.NET 1.1 era capaz de compilar dinámicamente algunos tipos de archivo (aspx, asmx, ascx) en el momento en que por primera vez eran requeridos por la aplicación. Cualquier modificación a un archivo compilado dinámicamente se reflejaba en la página 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 compilación dinámica se extendió en ASP.NET 2.0 para otros tipos de archivo, típicamente archivos de clase. El nuevo modelo de compilación de ASP.NET evita la necesidad de una precompilación explicita desde Visual Studio. Para que esta compilación dinámica sea efectiva los diferentes tipos de archivos deben residir en carpetas específicas (App_Code, App_Data, App_Themes, etc). Sin embargo, al momento de hacer la instalación de la aplicación web se recomienda precompilarla, esto evita que los archivos de código fuente tengan que existir en el servidor. La precompilación para instalación genera un manifiesto del sitio compuesto por: assemblies, archivos estáticos y archivos de configuración. Este manifiesto es generado en la máquina destino y también puede ser empaquetado y copiado a una máquina de producción. Para llevarla a cabo utilice la herramienta aspnet_compiler.exe. Visual Studio 2005 permite crear un proyecto de despliegue (Web Setup Project). Encontrará la opción para crear este tipo de proyecto, en menú Create Project  Other Projects Type, el cual una vez configurado y compilado genera un archivo de instalación .msi
  37. En esta diapositiva se muestra la estructura de directorios necesaria para la compilación dinámica de una aplicación web con ASP.NET 2.0
  38. En versiones anteriores, para crear una aplicación 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 intervención de un administrador. Nota : En el ambiente de producción es necesario tener instalado servidor web IIS .
  39. Visual Web Developer 2005 Express Edition provee mayor flexibilidad al momento de administrar los archivos de una aplicación Web. File System : Permite seleccionar la carpeta del disco local donde se van a alojar las páginas 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 máquina. (http://localhost/Site1). Las extensiones de servidor de Front Page no son necesarias para desarrollar aplicaciones Web en un IIS local. FTP : Permite la edición y actualización de proyectos a través del protocolo estándar 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).