Pablo Espada Bueno www.esbupa.com www.programadorautonomo.net
<ul><li>Habitualmente me dedico a impartir formación y a labores de desarrollo y consultoría en .NET </li></ul><ul><li>Si ...
<ul><li>Introducción a ASP.NET </li></ul>
<ul><li>HTML (1991) </li></ul><ul><ul><li>Páginas estáticas orientadas al contenido </li></ul></ul><ul><li>CGI (1993) </li...
<ul><li>Vamos a analizar como se desarrollaban aplicaciones Windows y Aplicaciones web en 1996, tras aparecer ASP </li></u...
Private Sub Command1_Click() If List1.SelCount > 0 Then Label1.Caption = &quot;Hola, &quot; & List1.Text Else Label1.Capti...
<html> <%@ Language=VBScript %> <%  nombres = array(&quot;Antonio&quot;,  &quot;Jose&quot;, &quot;Alberto&quot;,  &quot;Lu...
<html> <%@ Language=VBScript %> <%  nombres = array(&quot;Antonio&quot;,  &quot;Jose&quot;, &quot;Alberto&quot;,  &quot;Lu...
<ul><li>ASP.NET permite generar aplicaciones web con el paradigma de Windows </li></ul><ul><ul><li>Diseño + lógica </li></...
Base Class Library Common Language Specification Common Language Runtime ADO.NET, XML, Enterprise Services VB C++ C# Visua...
<ul><li>Modelo de ejecución </li></ul>
TCP/IP INETINFO.exe ISAPI ASP.NET Aspnet_wp.exe CLR App Domain CLR App Domain CLR App Domain kernel Filtros ISAPI ASPNET_W...
HTTP.SYS W3WP.exe ISAPI ASP.NET kernel Filtros ISAPI Aspnet_wp.exe HTTPHandlers HTTPModules .ASPX, .ASCX, .ASMX
ISAPI ASP.NET GET test.aspx GET test.aspx Procesar ¿test.aspx compilada? Leer Test.aspx Generar Test.cs Clase compilada Co...
Demo: Compilación dinámica
<ul><li>Separación en dos ficheros físicos </li></ul><ul><ul><li>Código por detrás de la página (“code-beside”) </li></ul>...
<ul><li>ASP.NET 2.0 introduce una nueva forma de gestionar la relación entre las páginas de presentación (.aspx) y las pág...
Demo: Code Beside – Clases Parciales
<ul><li>Web Forms </li></ul>
<ul><li>Formularios semejantes a Windows pero en Web </li></ul><ul><ul><li>Separación lógica – diseño </li></ul></ul><ul><...
<ul><li>Componentes que encapsulan la generación de HTML </li></ul><ul><ul><li>Semejantes a los controles de Windows </li>...
Demo: Controles de servidor
<ul><li>Los controles tienen propiedades </li></ul><ul><ul><li>Editables en modo diseño </li></ul></ul><ul><li>También acc...
<ul><li>Los controles de servidor mantienen sus propiedades </li></ul><ul><li>Dos mecanismos </li></ul><ul><ul><li>Procesa...
<ul><li>Los controles pueden lanzar eventos </li></ul><ul><ul><li>Ya sean HtmlControl o WebControl </li></ul></ul><ul><ul>...
Demo: Desarrollo con eventos
Upcoming SlideShare
Loading in …5
×

Introducción a ASP.NET

12,002 views

Published on

Esta presentación introduce al desarrollo de sitios web con ASP.NET, realizando una comparación con la programación en Visual Basic 6 y ASP clásico

Published in: Technology
2 Comments
11 Likes
Statistics
Notes
No Downloads
Views
Total views
12,002
On SlideShare
0
From Embeds
0
Number of Embeds
588
Actions
Shares
0
Downloads
0
Comments
2
Likes
11
Embeds 0
No embeds

No notes for slide
  • Introducción a ASP.NET

    1. 1. Pablo Espada Bueno www.esbupa.com www.programadorautonomo.net
    2. 2. <ul><li>Habitualmente me dedico a impartir formación y a labores de desarrollo y consultoría en .NET </li></ul><ul><li>Si desea que colabore con usted impartiéndoles una formación o desarrollando algún proyecto, puede contactarme: </li></ul><ul><ul><li>Web </li></ul></ul><ul><ul><ul><li>www.programadorautonomo.net </li></ul></ul></ul><ul><ul><ul><li>www.esbupa.com </li></ul></ul></ul><ul><ul><li>Email </li></ul></ul><ul><ul><ul><li>[email_address] </li></ul></ul></ul><ul><ul><ul><li>[email_address] </li></ul></ul></ul><ul><li>Espero que les guste la presentación </li></ul>
    3. 3. <ul><li>Introducción a ASP.NET </li></ul>
    4. 4. <ul><li>HTML (1991) </li></ul><ul><ul><li>Páginas estáticas orientadas al contenido </li></ul></ul><ul><li>CGI (1993) </li></ul><ul><ul><li>Ejecutables que generan HTML dinámicamente </li></ul></ul><ul><ul><li>Versión mejorada: ISAPI </li></ul></ul><ul><li>ASP (1996), PHP (1997), JSP (1999) </li></ul><ul><ul><li>Páginas HTML que incluyen código script dinámico </li></ul></ul>
    5. 5. <ul><li>Vamos a analizar como se desarrollaban aplicaciones Windows y Aplicaciones web en 1996, tras aparecer ASP </li></ul>Cuentame…
    6. 6. Private Sub Command1_Click() If List1.SelCount > 0 Then Label1.Caption = &quot;Hola, &quot; & List1.Text Else Label1.Caption = &quot;&quot; End If End Sub VB 6
    7. 7. <html> <%@ Language=VBScript %> <% nombres = array(&quot;Antonio&quot;, &quot;Jose&quot;, &quot;Alberto&quot;, &quot;Luis&quot;, &quot;Benito&quot;) %> <body> <p>Seleccione su nombre:</p> <form method=&quot;POST&quot; action=&quot;HolaMundo.asp&quot;> <p><select name=&quot;nombre&quot; size=&quot;5&quot;> <% for i = 0 to UBound(nombres) %> <option <% if Request.Form(&quot;nombre&quot;) = nombres(i) then %> selected <% end if %> > <%=nombres(i) %></option> <% next %> </select><br><br> <input type=&quot;submit&quot; value=&quot;Di hola&quot;></p> </form> <% if Request.Form(&quot;nombre&quot;) <> &quot;&quot; then %> <p>Hola, <%=Request.Form(&quot;nombre&quot;) %></p> <% end if %> </body> </html> ASP
    8. 8. <html> <%@ Language=VBScript %> <% nombres = array(&quot;Antonio&quot;, &quot;Jose&quot;, &quot;Alberto&quot;, &quot;Luis&quot;, &quot;Benito&quot;) %> <body> <p>Seleccione su nombre:</p> <form method=&quot;POST&quot; action=&quot;HolaMundo.asp&quot;> <p><select name=&quot;nombre&quot; size=&quot;5&quot;> <% for i = 0 to UBound(nombres) %> <option <% if Request.Form(&quot;nombre&quot;) = nombres(i) then %> selected <% end if %> > <%=nombres(i) %></option> <% next %> </select><br><br> <input type=&quot;submit&quot; value=&quot;Di hola&quot;></p> </form> <% if Request.Form(&quot;nombre&quot;) <> &quot;&quot; then %> <p>Hola, <%=Request.Form(&quot;nombre&quot;) %></p> <% end if %> </body> </html> Private Sub Command1_Click() If List1.SelCount > 0 Then Label1.Caption = &quot;Hola, &quot; & List1.Text Else Label1.Caption = &quot;&quot; End If End Sub Diseño Componentes gráficos Lógica Eventos Propiedades Sin estado Estado Diseño + Lógica Composición HTML Paso de parámetros Petición Respuesta
    9. 9. <ul><li>ASP.NET permite generar aplicaciones web con el paradigma de Windows </li></ul><ul><ul><li>Diseño + lógica </li></ul></ul><ul><ul><li>Componentes gráficos </li></ul></ul><ul><ul><li>Eventos </li></ul></ul><ul><ul><li>Propiedades </li></ul></ul><ul><ul><li>Estado </li></ul></ul><ul><li>Construido sobre .NET </li></ul>
    10. 10. Base Class Library Common Language Specification Common Language Runtime ADO.NET, XML, Enterprise Services VB C++ C# Visual Studio.NET ASP.NET: Web Services and Web Forms JScript … Windows Forms
    11. 11. <ul><li>Modelo de ejecución </li></ul>
    12. 12. TCP/IP INETINFO.exe ISAPI ASP.NET Aspnet_wp.exe CLR App Domain CLR App Domain CLR App Domain kernel Filtros ISAPI ASPNET_WP.exe HTTPHandlers HTTPModules ASPX ASMX Auth Sesión Caché .ASPX, .ASCX, .ASMX
    13. 13. HTTP.SYS W3WP.exe ISAPI ASP.NET kernel Filtros ISAPI Aspnet_wp.exe HTTPHandlers HTTPModules .ASPX, .ASCX, .ASMX
    14. 14. ISAPI ASP.NET GET test.aspx GET test.aspx Procesar ¿test.aspx compilada? Leer Test.aspx Generar Test.cs Clase compilada Compilar Respuesta HTML Respuesta HTML Instanciar
    15. 15. Demo: Compilación dinámica
    16. 16. <ul><li>Separación en dos ficheros físicos </li></ul><ul><ul><li>Código por detrás de la página (“code-beside”) </li></ul></ul><ul><ul><ul><li>Basado en el paradigma de Clases Parciales </li></ul></ul></ul><ul><ul><li>Código en cualquier lenguaje .NET soportado </li></ul></ul><tags> test.asp código <tags> test.aspx código test.aspx.cs ASP ASP .NET
    17. 17. <ul><li>ASP.NET 2.0 introduce una nueva forma de gestionar la relación entre las páginas de presentación (.aspx) y las páginas de código (.aspx.vb o .aspx.cs) basándose en las clases parciales </li></ul><ul><li>Una clase puede estar implementada en 2 ficheros fuente distintos, indicandolo a través del atributo “partial” </li></ul><ul><li>El atributo @Page de cada página .aspx indicará de que clase está heredando y dónde se encuentra el fichero fuente que la implementa </li></ul><ul><ul><li>Atributo Inherits </li></ul></ul><ul><ul><li>Atributo CodeFile </li></ul></ul><ul><li>El compilador unirá ambas partes de la clase, generando una única clase que hereda de la anterior y que será la que haga la unión entre presentación y código </li></ul><ul><ul><li>Por este motivo los manejadores de eventos se declaran como “protected” </li></ul></ul>
    18. 18. Demo: Code Beside – Clases Parciales
    19. 19. <ul><li>Web Forms </li></ul>
    20. 20. <ul><li>Formularios semejantes a Windows pero en Web </li></ul><ul><ul><li>Separación lógica – diseño </li></ul></ul><ul><ul><li>Componentes gráficos </li></ul></ul><ul><ul><li>Estado </li></ul></ul><ul><ul><li>Eventos </li></ul></ul><ul><ul><li>Propiedades </li></ul></ul>
    21. 21. <ul><li>Componentes que encapsulan la generación de HTML </li></ul><ul><ul><li>Semejantes a los controles de Windows </li></ul></ul><ul><li>Pleno soporte desde Visual Studio </li></ul><ul><ul><li>Paleta de componentes </li></ul></ul><ul><ul><li>Layout </li></ul></ul><ul><ul><li>Diseñadores de propiedades </li></ul></ul><ul><ul><li>Asistentes </li></ul></ul>
    22. 22. Demo: Controles de servidor
    23. 23. <ul><li>Los controles tienen propiedades </li></ul><ul><ul><li>Editables en modo diseño </li></ul></ul><ul><li>También accesibles desde código </li></ul><ul><ul><li>A partir del llamado árbol de controles </li></ul></ul>Test.aspx HtmlLiteral ListBox HtmlLiteral <html> <body> <select> … </select> </body> </html>
    24. 24. <ul><li>Los controles de servidor mantienen sus propiedades </li></ul><ul><li>Dos mecanismos </li></ul><ul><ul><li>Procesamiento automático de variables del post </li></ul></ul><ul><ul><li>Viewstate: variable de formulario oculta </li></ul></ul><ul><ul><ul><li>Cuidado con el tamaño, deshabilitar si no se utiliza </li></ul></ul></ul>
    25. 25. <ul><li>Los controles pueden lanzar eventos </li></ul><ul><ul><li>Ya sean HtmlControl o WebControl </li></ul></ul><ul><ul><li>Load , Click , TextChange , SelectedItemChange … </li></ul></ul><ul><ul><li>Posibilidad de procesamiento: </li></ul></ul><ul><ul><ul><li>En servidor </li></ul></ul></ul><ul><ul><ul><li>En cliente </li></ul></ul></ul><ul><ul><ul><li>Encolados hasta siguiente postback </li></ul></ul></ul><ul><li>Con todo esto cambia el paradigma de desarrollo </li></ul><ul><ul><li>De petición-respuesta a event-driven </li></ul></ul>
    26. 26. Demo: Desarrollo con eventos

    ×