asp.net. introducción a asp.net procesamiento en el servidor componentes de una aplicación asp.net...

36
Introducción ASP .NET

Upload: adalina-garzon

Post on 03-Feb-2015

24 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ASP.NET. Introducción a ASP.Net Procesamiento en el servidor Componentes de una aplicación ASP.Net HTTP HTML Modelo de ejecución de ASP.NET Formulario

Introducción

ASP .NET

Page 2: ASP.NET. Introducción a ASP.Net Procesamiento en el servidor Componentes de una aplicación ASP.Net HTTP HTML Modelo de ejecución de ASP.NET Formulario

Agenda

Introducción a ASP.Net

Procesamiento en el servidor Componentes de una aplicación ASP.Net

HTTP HTML

Modelo de ejecución de ASP.NET

Formulario Web Controles

Eventos

Page 3: ASP.NET. Introducción a ASP.Net Procesamiento en el servidor Componentes de una aplicación ASP.Net HTTP HTML Modelo de ejecución de ASP.NET Formulario

ASP.NET

Una aplicación web es un conjunto de páginas HTML que se transmiten por medio del protocolo HTTP de un servidor al cliente y viceversa, brindando distintas funcionalidades a un usuario final.

ASP.NET es un Framework para programar aplicaciones web, de un modo similar al que se programan las aplicaciones Windows. El componente principal son los Web Forms que permiten separar la interfaz del usuario de la funcionalidad de la aplicación.

Page 4: ASP.NET. Introducción a ASP.Net Procesamiento en el servidor Componentes de una aplicación ASP.Net HTTP HTML Modelo de ejecución de ASP.NET Formulario

Servidor Web

Un servidor web es una aplicación donde se almacenan las páginas, imágenes, etc. (que forman una aplicación web) disponibles para ser visitadas por los usuarios de la red.

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

Page 5: ASP.NET. Introducción a ASP.Net Procesamiento en el servidor Componentes de una aplicación ASP.Net HTTP HTML Modelo de ejecución de ASP.NET Formulario

Hypertext Transfer Protocol (HTTP)

Uno de los protocolos más importantes de Internet

HTTP define como los navegadores y los servidores Web se comunican uno con otro

Esta basado en texto y es transmitido sobre conexiones TCP

Page 6: ASP.NET. Introducción a ASP.Net Procesamiento en el servidor Componentes de una aplicación ASP.Net HTTP HTML Modelo de ejecución de ASP.NET Formulario

HTML Forms

Suma.html<html> <body> <form> <input type="text" name="op1" /> + <input type="text" name="op2" /> <input type="submit" value=" = " /> </form> </body></html>

Un HTML Form es la porción de un documento HTML que aparece entre las etiquetas <form></form>

Page 7: ASP.NET. Introducción a ASP.Net Procesamiento en el servidor Componentes de una aplicación ASP.Net HTTP HTML Modelo de ejecución de ASP.NET Formulario

HTML Forms

Cómo el HTML Form es enviado, dependerá del atributo Method del form:

− Si el atributo Method del form no está presente o tiene el valor GET, el navegador enviará al servidor un comando HTTP GET

El botón submit (<input type=“submit”>) envía el HTML Form junto con cualquier entrada de datos del usuario al servidor Web

− Si el atributo Method del form tiene el valor POST, el navegador enviará al servidor un comando HTTP POST

Page 8: ASP.NET. Introducción a ASP.Net Procesamiento en el servidor Componentes de una aplicación ASP.Net HTTP HTML Modelo de ejecución de ASP.NET Formulario

Procesamiento en el Servidor

El servidor tiene que interpretar las entradas del usuario enviadas junto con el form y generar la correspondiente salida.

La parte del cliente es HTML

Page 9: ASP.NET. Introducción a ASP.Net Procesamiento en el servidor Componentes de una aplicación ASP.Net HTTP HTML Modelo de ejecución de ASP.NET Formulario

Procesamiento en el Servidor

Suma.html<html> <body>

<form> <input type="text"

name="op1" /> + <input type="text"

name="op2" /> <input type="submit" value=" =

" /></form>

</body></html>

Antes del procesamientoSuma.html<html> <body> <form> <input type="text" name="op1“ value=“2”/> + <input type="text" name="op2“ value=“2”> <input type="submit" value=" = " /> 4 </form> </body></html>

Después del procesamiento

Page 10: ASP.NET. Introducción a ASP.Net Procesamiento en el servidor Componentes de una aplicación ASP.Net HTTP HTML Modelo de ejecución de ASP.NET Formulario

Procesamiento en el Servidor

Existen varias tecnologías de procesamiento:− CGI (Common Gateway Interface)

• Define una API de bajo nivel

• Popular en entornos UNIX, no tanto en Windows

− ISAPI (Internet Server Application Programming Interface)• Son DLL Windows que “corren” bajo IIS. Escritas en C++

• Mejor performance que CGI

− ASP (Active Server Pages)• Simple solución: HTML + Script del lado del servidor

• Programadas en JScript o VBScript

• Objetos intrínsecos que abstraen detalles de bajo nivel de HTTP • Objetos Request y Response

• Permite usar ADO (ActiveX Data Object) para acceso a datos

Page 11: ASP.NET. Introducción a ASP.Net Procesamiento en el servidor Componentes de una aplicación ASP.Net HTTP HTML Modelo de ejecución de ASP.NET Formulario

¿Qué es ASP.NET?

ASP.NET es el framework de programación Web dentro de .NET

Permite desarrollar aplicaciones Web con un modelo “similar” al utilizado para aplicaciones Windows El componente fundamental de ASP.NET es el

− WebForm

• Una aplicación Web ASP.NET consta de uno o más WebForms

Independencia del cliente (navegador, S.O., dispositivo físico, etc.)

Permite utilizar cualquier lenguaje .NET

Page 12: ASP.NET. Introducción a ASP.Net Procesamiento en el servidor Componentes de una aplicación ASP.Net HTTP HTML Modelo de ejecución de ASP.NET Formulario

Ventajas

La “parte ejecutable” de una aplicación ASP.NET es COMPILADA

Implementación y actualización de las aplicaciones sin reiniciar el servidor

Acceso a toda la .NET Class Library Independiente del lenguaje de programación

Encapsulamiento de funcionalidad a través de controles de servidor y controles de usuario

Page 13: ASP.NET. Introducción a ASP.Net Procesamiento en el servidor Componentes de una aplicación ASP.Net HTTP HTML Modelo de ejecución de ASP.NET Formulario

Ventajas (Cont.)

Permite usar ADO.NET para acceso a datos

Soporta XML, Hojas de estilo CSS, etc.

Detección automática del navegador cliente, generando el lenguaje de marcas soportado por el mismo

Mecanismo de Caching incorporado para páginas completa o partes de la misma frecuentemente solicitadas

Page 14: ASP.NET. Introducción a ASP.Net Procesamiento en el servidor Componentes de una aplicación ASP.Net HTTP HTML Modelo de ejecución de ASP.NET Formulario

Componentes de una aplicaciónASP.NET

WebForms (Formularios Web)− Uno o más archivos con extensión .aspx

Archivos Code-Behind− Archivos asociados a WebForms que contienen código que se ejecutará en el lado del servidor (e.g. VB.NET, C#, etc.)

Archivos de configuración con formato XML− Un único archivo Machine.config por servidor

− Un archivo Web.config por cada aplicación

Page 15: ASP.NET. Introducción a ASP.Net Procesamiento en el servidor Componentes de una aplicación ASP.Net HTTP HTML Modelo de ejecución de ASP.NET Formulario

Componentes de una aplicaciónASP.NET

Global.asax− Código necesario para responder a eventos a nivel de aplicación

Directorio BIN− Contiene el assembly de la aplicación (e.g. MyWebApp.dll)− Cero o más assemblies (Componentes externos)

Enlaces a Servicios Web XML− Permiten a la aplicación ASP.NET enviar y recibir datos desde Servicios Web

Page 16: ASP.NET. Introducción a ASP.Net Procesamiento en el servidor Componentes de una aplicación ASP.Net HTTP HTML Modelo de ejecución de ASP.NET Formulario

Modelo de ejecución de ASP.NET

Page 17: ASP.NET. Introducción a ASP.Net Procesamiento en el servidor Componentes de una aplicación ASP.Net HTTP HTML Modelo de ejecución de ASP.NET Formulario

Modelo de ejecución de ASP.NET

Page 18: ASP.NET. Introducción a ASP.Net Procesamiento en el servidor Componentes de una aplicación ASP.Net HTTP HTML Modelo de ejecución de ASP.NET Formulario

Diferentes tipos de proyectos

ASP.NET Web Site− File – New WebSite

• Pertenencia de un fichero al proyecto basada en su ubicación en lacarpeta del Web Site

− No tiene estructura de proyecto

ASP.NET Web Application− File – New – New Project – Asp.NET Web Application− Proyecto para la realización de aplicaciones Web (es el que usaremos)

ASP.NET Web Service Application− File – New – New Project – Asp.NET Service Application− Proyecto para la realización de servicios web

Page 19: ASP.NET. Introducción a ASP.Net Procesamiento en el servidor Componentes de una aplicación ASP.Net HTTP HTML Modelo de ejecución de ASP.NET Formulario

Arquitectura ASP.NET

Page 20: ASP.NET. Introducción a ASP.Net Procesamiento en el servidor Componentes de una aplicación ASP.Net HTTP HTML Modelo de ejecución de ASP.NET Formulario

Formulario Web - Web Forms

¿Qué es un Formulario Web?− Componentes de un Web Form

Controles de servidor− HTML

− WebControls

Eventos en un Web Form

Ciclo de vida de un Web Form

Page 21: ASP.NET. Introducción a ASP.Net Procesamiento en el servidor Componentes de una aplicación ASP.Net HTTP HTML Modelo de ejecución de ASP.NET Formulario

Formulario Web - Web Forms

Web Form− Es una página expresada en lenguaje de marcas que es compilada y ejecutada dinámicamente en el servidor para generar la salida solicitada por el cliente (explorador ó dispositivo)

• Parte vista: Contiene código HTML y declaraciones de controles del lado del servidor Tiene extensión .aspx

− Se compone de:

• Código asociado, denominado CodeBehind

Separación del aspecto visual (vista) del código (controlador)

− Permite trabajo independiente

Page 22: ASP.NET. Introducción a ASP.Net Procesamiento en el servidor Componentes de una aplicación ASP.Net HTTP HTML Modelo de ejecución de ASP.NET Formulario

Componetes de un WebForm

La parte vista de un Web Form (e.g. PageName.aspx) puede incluir:

− Directivas de página• Se indican dentro de <%@ Page ... %>• Permiten especificar atributos específicos de una página .aspx− CodeBehind: fichero de código asociado

− ContentType: tipo MIME de la response− ErrorPage: URL ante aparición de errores− Inherits: clase base del objeto Page− Language: lenguaje de programación empleado− Trace: habilitación de la traza para la página actual− EnableViewState: habilitación de la propiedad VIEWSTATE− etc.

− e.g.

• <%@ Page Language="C#" CodeBehind="PageName.aspx.cs” ErrorPage="/DefaultError.html" Trace="true"%>

Page 23: ASP.NET. Introducción a ASP.Net Procesamiento en el servidor Componentes de una aplicación ASP.Net HTTP HTML Modelo de ejecución de ASP.NET Formulario

Componentes de un Web Form

La parte vista de un Web Form puede incluir (cont.):− Controles:

• <input type="text">

• <asp:Button runat="server">− Comentarios

• <!-- html comment -->

• <%-- asp.net comment --%>− Data bind expressions

• <%# expression %>

− Bloques de código• <script runat="server"> ... </script>

− Render code • <%= %> o <% %>

• No recomendado; preferible etiquetas <script runat="server“> asociadas a los eventos de los controles

Page 24: ASP.NET. Introducción a ASP.Net Procesamiento en el servidor Componentes de una aplicación ASP.Net HTTP HTML Modelo de ejecución de ASP.NET Formulario

Ejemplo Default.aspx.csCodeBehind

namespace ASPDotNetTutorial {public partial class _Default : System.Web.UI.Page {

protected void Page_Load(object sender, EventArgs e) {

}}

}

Page 25: ASP.NET. Introducción a ASP.Net Procesamiento en el servidor Componentes de una aplicación ASP.Net HTTP HTML Modelo de ejecución de ASP.NET Formulario

Ejemplo Default.aspx.designer.

//------------------------------------------------------------------------------// <auto-generated>// This code was generated by a tool.// Runtime Version:2.0.50727.42//// Changes to this file may cause incorrect behavior and will be lost if// the code is regenerated.// </auto-generated>//------------------------------------------------------------------------------

namespace ASPDotNetTutorialMasterPages {public partial class Default {

protected global::System.Web.UI.HtmlControls.HtmlForm form1;

}}

Page 26: ASP.NET. Introducción a ASP.Net Procesamiento en el servidor Componentes de una aplicación ASP.Net HTTP HTML Modelo de ejecución de ASP.NET Formulario

CodeBehind

El código asociado a un Web Form se conoce como CodeBehind

− Implementa el patrón Page Controller (lo veremos más adelante)

• e.g. PageName.aspx.cs− public partial class PageName : System.Web.UI.Page − Incluye código generado por el programador

− Es una partial class (una sola clase, implementada en dos archivos) que contiene el código asociado a la página (controlador)

• e.g. PageName.aspx.designer.cs

− public partial class PageName− Incluye código autogenerado por el IDE

Page 27: ASP.NET. Introducción a ASP.Net Procesamiento en el servidor Componentes de una aplicación ASP.Net HTTP HTML Modelo de ejecución de ASP.NET Formulario

Controles de Servidor

Componentes que se ejecutan en el lado del servidor

− Para esto hacen uso del atributo ViewState

Encapsulan partes de la interfaz de usuario

Poseen el atributo runat="server"

Pueden mantener su “estado” entre “PostBacks” al servidor

Poseen un modelo de objetos común − Ej.: todos tienen las propiedades ID y Text

Generan HTML específico según navegador del cliente

Page 28: ASP.NET. Introducción a ASP.Net Procesamiento en el servidor Componentes de una aplicación ASP.Net HTTP HTML Modelo de ejecución de ASP.NET Formulario

Controles HTML

Por defecto, los elementos HTML no son accesibles desde código del lado del servidor

Agregando runat="server" y el atributo id, se convierten en Controles de Servidor HTML

Se encuentran definidos como objetos dentro del Namespace

− System.Web.UI.HtmlControls

− <input type="text" id="txtName" runat="server"/>− <span id="spnStart" runat="server">Start</span>

Ejemplo:

Page 29: ASP.NET. Introducción a ASP.Net Procesamiento en el servidor Componentes de una aplicación ASP.Net HTTP HTML Modelo de ejecución de ASP.NET Formulario

WebControls

Sólo accesibles del lado del servidor

Poseen mayor funcionalidad, y pueden contener otros objetos

− Dependen del Namespace

• System.Web.UI.WebControls

Ejemplo− <asp:TextBox ID="txtUserName" runat="server“ Text="Write your name"/>

Tipos de WebControls− Intrínsecos, de Validación, “Ricos”, listas vinculables datos

No tienen una relación 1:1 con los elementos HTML

Page 30: ASP.NET. Introducción a ASP.Net Procesamiento en el servidor Componentes de una aplicación ASP.Net HTTP HTML Modelo de ejecución de ASP.NET Formulario

Equivalencia de Controles

Botón HTML

− <input type="button" value="Search"/>

Controles de Servidor HTML

− <input type="button" value="Search" id="btnSearch” runat="server" name="btnSearch"/>

Controles de Servidor Web (WebControls)− <asp:Button ID="btnSearchASP" runat="server” Text="Search"/>

Page 31: ASP.NET. Introducción a ASP.Net Procesamiento en el servidor Componentes de una aplicación ASP.Net HTTP HTML Modelo de ejecución de ASP.NET Formulario

Equivalencia de Controles

Page 32: ASP.NET. Introducción a ASP.Net Procesamiento en el servidor Componentes de una aplicación ASP.Net HTTP HTML Modelo de ejecución de ASP.NET Formulario

¿Cómo trabajan los Controles del Servidor?

Al procesarse la página, y encontrar un atributo runat="server"

− Se genera el código HTML representativo del control, con sus propiedades

− Asignándole a cada uno, un id único

− Se añade al formulario un cuadro de texto oculto, para almacenar el “estado” de la página

• ("__VIEWSTATE")

Page 33: ASP.NET. Introducción a ASP.Net Procesamiento en el servidor Componentes de una aplicación ASP.Net HTTP HTML Modelo de ejecución de ASP.NET Formulario

Modelo de Eventos

Page 34: ASP.NET. Introducción a ASP.Net Procesamiento en el servidor Componentes de una aplicación ASP.Net HTTP HTML Modelo de ejecución de ASP.NET Formulario

Eventos en un WebForm

PostBack− A instancias de un formulario Web mostrado en el cliente cada evento sucedido en él genera un POST hacia el servidor y una respuesta (BACK). Este ida y vuelta dentro de un mismo formulario Web se llama PostBack

− Es un mecanismo que permite (de forma automática) mantener el estado de los controles del formulario Web entre PostBacks− El estado de los controles viaja en un campo oculto, denominado ViewState, por cada PostBack

ViewState

Page 35: ASP.NET. Introducción a ASP.Net Procesamiento en el servidor Componentes de una aplicación ASP.Net HTTP HTML Modelo de ejecución de ASP.NET Formulario

Eventos en un WebForm

protected void btnExampleClick(object sender,EventArgs e) {

this.btnExample.Text = "Pulsado";}

Declaración de eventos en un control del lado del cliente

− A e.g. Default.aspx

− e.g. Default.aspx.cs

Atención del evento en el servidor (Code Behind)

<asp:Button ID="btnExample" runat="server" Text="Aceptar"

OnClick="btnExampleClick" />

Page 36: ASP.NET. Introducción a ASP.Net Procesamiento en el servidor Componentes de una aplicación ASP.Net HTTP HTML Modelo de ejecución de ASP.NET Formulario

Cíclo de Vida de un WebForm

Sucesos más importantes del ciclo de vida de una página:

− Inicialización de objetos (Page_Init)

− Cargar View State

− Procesar datos del Post

− Carga de la página (Page_Load)

− Eventos

− Grabar View State

− Render

− Page_Unload