ASP … by niusheng11

VIEWS: 31 PAGES: 24

									     ASP …

   Curso – Taller
Active Server Pages
   Introducción
                 El Camino Recorrido
•    Centro Europeo de Investigaciones Nucleares (1989)
•    Prototipo basado en texto – Hipertext’91
•    Mosaic (1993)
•    HTML - HTTP
•    World Wide Web Consortium – W3C (1994)
•    Documento Web estático y dinámico
       – CGI – PHP – JSP – ASP
       – javascript – applets – controles ActiveX
• XHTML – XML
• e-commerce, e-learning, e-government , e-…

Jujuy - 2008                                              2
               Evolución de ASP
•    ISAPI
•    ASP
•    ASP.NET
•    ASP.NET AJAX
•    ASP.NET 3.5 Extensions




Jujuy - 2008                      3
           Concepto Central en ASP.NET
• Plataforma de Desarrollo Web
• Modelo de Programación
                   Web Client

                      IIS            ASP.NET
                                    Applications

                                       .NET
                                    Framework

                        Operating System



Jujuy - 2008                                       4
               Otras Cuestiones en ASP.NET
•    Apariencia y lógica del negocio separadas.
•    Utiliza proveedores de servicios.
•    El código se compila la 1ra vez.
•    Administración del estado.
•    Múltiples lenguajes de programación.
•    Actualización de servidores mientras ejecutan.



Jujuy - 2008                                      5
     Arquitectura de .NET Framework
                                                     Microsoft .NET Framework

               ASP.NET
                                                    Windows Forms
                Web Forms         Web Services


               Services Framework

                           Base        Data      Debug    ...


               Common Language Runtime

               System Services



Jujuy - 2008                                                                    6
               Modelo de Aplicación Web
                   Unmanaged Code
                    HTTP Request


                    Host (IIS, Internet Explorer)


                    HTTP Runtime



                            HTTP Module


                            HTTP Module


                    Request Handler        ...

                   Managed Code
Jujuy - 2008                                        7
                           HTTP Conceptos
• Especifica los mensajes que pueden enviar los clientes a los
  servidores y las respuestas que obtienen.
• Utiliza una conexión TCP generalmente con el puerto 80 del
  servidor
• Métodos: GET, HEAD, PUT, POST, OPTIONS
• Respuestas:
       –       1xx Información: 100 servidor de acuerdo
       –       2xx Éxito: 200 solicitud exitosa, 204 no hay contenido
       –       3xx Redirección: 301 página movida, 304 caché válido
       –       4xx Error del cliente: 403 prohibida, 404 no encontrada
       –       5xx Error del servidor: 503 interno, 504 intentar más tarde
• Encabezados: User-Agent, Host, Cookie, Server, Last-
  Modified, Location, Set-Cookie
Jujuy - 2008                                                                 8
        HTTP y Ciclo de Ejecución .aspx
                        Client   Server


                                  IIS
          Request .aspx file
                                    ASP.NET Runtime
                                                           Code
                                    Parse .aspx file       behind


                                    Generate page class


                                    Instantiate controls




                                          Response
Jujuy - 2008                                                        9
                       Aplicación
• Aplicación Web:
       – Archivos, páginas, módulos y código ejecutable
       – Directorio virtual y subdirectorios
       – Información global de la aplicación
       – Utilización de los recursos del sistema
       – Bloqueo y desbloqueo
       – Ambiente de múltiples hilos de ejecución



Jujuy - 2008                                              10
                         Sesión
• Sesión Web:
       – Restringida a una aplicación lógica
       – Entorno de comunicación entre usuario y servidor
       – Identificación y clasificación de solicitudes
       – Almacenamiento de datos entre solicitudes
       – Eventos
       – Liberación de datos de sesión



Jujuy - 2008                                            11
                 Modelo de Eventos
• Eventos ASP.NET
       – Se origina en el cliente, se gestiona en el servidor
       – Se gestiona mediante un controlador de evento


• Argumentos de evento
       – … void NombreEvento( object sender, EventArgs e)




Jujuy - 2008                                                    12
                       Modelo de Eventos
                              event
      Web Client              message        Server


                                               parse message
               event
                          call appropriate
                            event handler




                                                      event handler



                              response

Jujuy - 2008                                                          13
                    Modelo de Eventos
• Ejemplo:
      System.Web.UI.WebControls
      Class: Button, public event Click
      En ASP.NET
           <asp:ImageButton id=“btnNext“ runat=“server“
           imageurl=“...“ onclick=“btnNext_Click“/>

      En C#
           protected void btnNext_Click(Object S, ImageClickEventArgs e)
           {
                  // ... Hacer algo ...
           }




Jujuy - 2008                                                         14
                         Tipos de Eventos
• Aplicación y Sesión
       – Application_Start, Application_End
       – Session_Start, Session_End
• Páginas y Controles
       –       DataBindig – Enlaza con una fuente de datos
       –       Dispose – Libera de la memoria
       –       Error – Excepción sin gestionar (solo páginas)
       –       Init – Inicializa el control
       –       Load - Carga el control
       –       PreRender – Antes de procesarse
       –       UnLoad – Descarga de la memoria
Jujuy - 2008                                                    15
                 Ciclo Vital de la Página Web
                                                                                       Inicialización
                  Determina modo          Preinicialización        Personalización
  Constructor                                                                               Init,
                   de PostBack                 PreInit             Inicializa temas
                                                                                       InitComplete




 Procesa datos     Carga página,                                                          Primera
                                                              NO
   enviados       control y estado                                                         Carga

                                                                                             SI

                                                                                         Precarga
                                                                                         PreLoad




Gestión envio        Notifica
                                              Primera                                      Carga
  de datos        Cambios en el      NO                                                                   Controles hijos
                                               Carga                                       Load
PostBackEvent     envío de datos

                                                 SI
                                                                     Premostrar       Gurada estado,
                                          Carga completa             PreRender,       personalización,       Mostrar
                                                                                                                            Controles hijos
                                          LoadComplete             PreRenderCom        control, vista y      Render
                                                                        plete             página



                                                                                                           Desacargar
                                                                                                            Unload


Jujuy - 2008                                                                                                                            16
          Configuración de Aplicaciones
• Archivo Web.Config
       – XML
       – Directorio de la aplicación
       – Detecta cambios automáticamente
• Influencia jerárquica en directorios
       – Unico archivo con <location path=“...“>
       – Multiples archivos con allowOverride=“false“


Jujuy - 2008                                            17
               Ejemplo de web.config
<configuration>
     <configSections>
       <sectionGroup name=“system.web“>
         <section name=“httpmodules“
              type=“System.Web.Configuration.
                    HttpModulesConfigurationHandler“/>
         <section name=“sessionstate“
              type=“System.Web.SessionState.
                    SessionStateSectionHandler“/>
       </sectionGroup>
     </configSections>

     <system.web>
       <httpmodules>
         <add type=“System.Web.State.SessionStateModule“
              name=“Session“>
       </httpmodules>
       <sessionstate cookieless=“true“ timeout=“20“/>
     <system.web>
</configuration>




Jujuy - 2008                                               18
                Jerarquía de Clases
• Namespaces
       – Estructurados jerárquicamente
       – Sintaxis con punto, agrupación lógica
       – Ejemplo: System.Web.UI.WebControls.Button
• Permite implementar nuevos namespaces
       – Ejemplo 1: MiSistema.Stock.Articulos
       – Ejemplo 2: MiSistema.Ventas.Factura


Jujuy - 2008                                         19
                           Jerarquía de Clases
                                              System.Object


                                          System.Web.UI.Control


           System.Web.UI.                       WebControl
           WebControls
                            ListControl                       Table

               ListBox                                        Button

               CheckBoxList
                                                              TextBox
                     ...
                                              ...

Jujuy - 2008                                                            20
                             Ensamblados
• El resultado de la compilación puede ser un
  archivo .dll o .exe
• Ensamblados de uno o varios archivos
               Assembly 1
                                        Assembly 2
                 MyApp.dll
                             pic1.jpg




                                        shared name
                                                      MyApp.dll

                                                      metadata
                 metadata



Jujuy - 2008                                                      21
               Ensamblados - Manifiesto
• Manifiesto de un ensamblado contiene:
       – Lista de archivos en el ensamblado
       – Información de versiones y nombres compartidos
• Se utiliza para:
       – Localizar y cargar clases
       – Instanciar objetos en memoria
       – Resolver la referencia a métodos y campos
       – Seguridad

Jujuy - 2008                                              22
                          Lenguaje C#
• Evolución de C y C++
• Type safety, versioning, envent, garbage
  collection
• Ejemplo:
               using System;
               namespace miespaciodenombre
               {
                 public class Hello {
                   public static void Main() {
                     Console.WriteLine(“Hello World!“);
                   }
                 }
               }

Jujuy - 2008                                              23
                   Múltiples Sintaxis
• Directivas
       <%@ Page language=“VB” *…+ %>
• Bloques de código
       <script runat=“server” *…+>
         [ líneas de código ]
       </script>
• Bloques de enlace en línea
       <% [ código o expresiones en línea ] %>
• Sintaxis en HTML
       <HTML_elemento runat=“server” *atributos …+>
       </HTML_elemento>

Jujuy - 2008                                          24

								
To top