49313949-ASP-Apuntes

download 49313949-ASP-Apuntes

of 59

Transcript of 49313949-ASP-Apuntes

1. INTRODUCCIN A ASP.NETINTRODUCCINEn los inicios del mundo de Internet (aos sesenta), el nico objetivo era conectar un conjunto reducido de ordenadores para que pudieran compartir informacin. A mediados de los setenta y debido al cada vez mayor nmero de ordenadores conectados en red, se crearon los protocolos TPC/IP (Transmision Constrol Protocol / Internet Protocol). El protocolo TCP se utiliza para controlar la transmisin correcta de la informacin entre ordenadores El protocolo IP sirve para localizar un ordenador dentro de una red, asignndole un nmero de 32 bits (por ejemplo: 165.167.255.4) que sera el equivalente a un nmero de telfono. Pronto el nmero de ordenadores conectados a la red se incremento en gran medida. La informacin que almacenaban era esttica y los primeros servidores no podan acceder a bases de datos, ni modificar el contenido de la informacin que suministraban a la red de ninguna manera. A mediados de los noventa, un gran nmero de empresas queran que sus pginas Web sirvieran, adems de informar, para poder realizar negocios en la red. El cubrir esta necesidad fue el objetivo de las nuevas tcnicas de creacin de pginas Web y condicion el desarrollo con el objetivo de permitir accesos a las bases de datos desde la Web y modificar su contenido dinmicamente.

APARICIN DE ASPLa primera solucin fue la aparicin de CGI (Common Gateway Interface) para implementar Pginas Web Activas en el servidor. La estructura CGI se programaba empleando lenguajes compilados como el C, Delphi y Visual Basic o interpretados como el Perl. El objetivo era que el servidor respondiera la solicitud de un cliente a travs de la pgina Web. Las limitaciones de la CGI provenan de la necesidad de cargar en la memoria del servidor tantas copias del programa CGI como solicitudes se hubieran recibido. Ello provocaba el colapso del sistema si este nmero aumentaba considerablemente. A principios de 1996 Microsoft se dio cuenta de este problema e introdujo en el mercado la llamada ISAPI (Internet Server Application Programming Interface). Este producto formaba parte del controlador integral de Internet llamado IIS (Internet Information Server). La principal diferencia era que, ahora, se manejaba una nica copia en memoria del cdigo de la aplicacin, aunque existieran varias solicitudes por parte de distintos clientes. Pero ISAPI tena el inconveniente de hacer muy complejo el cdigo y para realizar las pruebas de compilacin y ejecucin era necesario parar el funcionamiento del servidor. Paralelamente, era necesario vincular una base de datos a una aplicacin de servidor para dar respuesta a algunas de las peticiones del cliente. Microsoft creo IDC (Internet Database Connector) para conectar sitios Web con bases de datos a travs de IIS y ODBC (Open Database Connectivity).

Introduccin a ASP.NET

1

Otra opcin en el mercado era el de la competencia, Netscape Server API (NSAPI), que se ejecutaba en servidores Netscape y se programaba a travs de JavaScript y dems componentes Java. Esta tecnologa pecaba de los mismos males. Estas API llevaron a una superespecializacin de los servidores. O se trabajaba para Microsoft o para Netscape. ASP naci con el objetivo de fusionar la simplicidad de CGI con la potencialidad de ISAPI. As naci el nuevo lenguaje ASP (Active Page Server). ASP se puede programar desde un simple editor de textos o editor HTML, pues usan lenguajes script: VBScript o JScript. Y su ejecucin en el servidor es igual a ISAPI.

EVOLUCIN DE ASP ASP 1A finales de 1996, junto con FrontPage, apareci ASP1 como extensin de IIS3. FrontPage permita la creacin de pginas Web desde un entorno intuitivo y sencillo. ASP1 permita acceder a distintos tipos de bases de datos mediante los controles ActiveX y combinar en una misma pgina Web la parte de cdigo y representacin.

ASP 2Con la mejora de IIS4, se introdujo una nueva versin de ASP que formaba parte del paquete de instalacin del nuevo Windows NT 4. IIS4 inclua ahora el sistema bsico de control de correo electrnico SMTP (Simple Mail Transfer Protocol) ASP2 era ahora escalable, es decir, las aplicaciones podan crecer en tamao al mismo ritmo que las empresas (gracias al uso de un conjunto de servidores de red). En esta poca muchas de las grandes empresas adoptaron ASP como base de sus aplicaciones. ASP permite ahora que los programadores de empresas desarrollen sus propios componentes mediante la arquitectura COM (Component Object Model) . En esta poca se desarroll el e-commerce gracias al desarrollo de la tecnologa que permiti la comunicacin entre componentes de aplicaciones ASP a travs de la red. La casa Sun lanz, en esta poca, JSP (Java Server Pages) con un alto rendimiento pues el lenguaje era compilado y orientado a objetos, con lo cual se ganaba tiempo de respuesta y todas las ventajas de la POO.

ASP 3Con la aparicin de Windows 2000, lo hizo ASP 3. Esta nueva versin permita la compilacin de su cdigo y su posterior almacenamiento en el cach de la pgina Web. De esta manera, se aseguraba su funcionamiento al verificar todos los elementos script de la pgina. Esto fue una gran evolucin respecto ASP 2 que se ejecutaba en lnea. En comparacin a JSP, ASP 3 introdujo el concepto de server scripts. Eran objetos COM basados en archivos XML (Extensible Markup Language) Microsoft se adaptaba a las necesidades de los programadores que usaban el lenguaje XML como fuente universal de intercambio de datos e informacin. Junto con los

Introduccin a ASP.NET

2

objetos ADO (ActiveX Data Objects), ASP 3 pretenda crear aplicaciones escalables, fiables, rpidas y de acceso universal. El problema de fondo era que ASP 3 utilizaba lenguajes scripts y stos necesitan de un intrprete para ser ejecutados. Adems para poder distribuir una aplicacin ASP en la red, se necesita que el administrador de un sitio Web tenga registrados los componentes y permisos. No es suficiente con copiar los archivos al servidor.

ASP.NETASP.NET apareci en el mercado como repuesta de Microsoft al gran xito de J2EE (Java 2 Enterprise Edition). Los puntos fundamentales de la nueva estructura ASP.NET son ASP.NET proporciona un modelo de desarrollo de aplicaciones Web basado en la plataforma .NET. Este entorno de programacin permite tratar a ASP.NET como un lenguaje orientado a objetos. Se pueden desarrollar aplicaciones Web en cualquiera de los lenguajes .NET, como C# o Visual Basic. Separacin de la capa de presentacin de la capa de negocio, gracias a la utilizacin de las pginas code-behind (cdigo trasero). Acceso a los servicios proporcionados por .NET Framework. Eso permite que podamos utilizar la biblioteca de clases en las aplicaciones Web. El cdigo de las aplicaciones ASP.NET se compila a travs del motor CLR, que compila con JIT (Just In Time). Los parmetros de configuracin se almacenan en archivos de tipo XML, porque es de lectura universal y se pueden generar con cualquier editor de textos. Permite usar ADO.NET para acceso a datos. Deteccin automtica del navegador cliente, generando el lenguaje de marcas soportado por el mismo. Mecanismo de Caching incorporado para pginas completa o partes de la misma frecuentemente solicitadas. Compatibilidad con ASP. Se pueden tener pgina ASP y ASP.NET en el mismo servidor colaborando. Las pginas ASP tendrn extensin .asp y son procesadas por la DLL ASP.DLL y las pgina ASP.NET .aspx y son procesadas por el entorno .NET. ASP.NET es que conserva el contenido de los formularios despus de enviarlos al servidor. Microsoft llama a esto persistencia automtica del estado de la vista de los datos.

EJECUCIN DE LOS ARCHIVOS ASP.NETCuando un visitante quiere acceder a un sitio Web, escribe una direccin URL (Uniform Resource Locator) en el navegador y ste realiza una peticin HTML al servidor que est alojando ese sitio Web. En el momento en que el servidor recibe la peticin, determina el tipo de archivo solicitado y lo enva a la aplicacin correspondiente para Introduccin a ASP.NET 3

que lo procese. En el caso de pginas ASP.NET, stas son compiladas (normalmente si es la primera vez que se seleccionan) y ejecutadas, reenviando al visitante los resultados de la consulta a travs de su navegador.

Ejecucin del lado del clienteEn las aplicaciones ASP.NET se mezcla una parte de ejecucin del lado del cliente y otra del lado del servidor. La ejecucin de la pgina del lado del cliente se determina de la siguiente manera: Cuando el servidor recibe una peticin determina el tipo de navegador del cliente y, en funcin de ste, codifica las instrucciones a una versin HTML adecuada. Incluso el servidor puede determinar si el navegador soporta JavaScript y, en funcin de ello, convertir parte de su cdigo en JavaScript para ejecutarse en el cliente. Todo ello lo decide el servidor sin tener que codificar en JavaScript. Al descargar la pgina ASP.NET en el navegador se enva, junto a ella, cdigo para realizar comprobaciones e iniciar aquellas funciones que se puedan realizar en el cliente liberando as al servidor de su ejecucin. Cuando el servidor recibe la respuesta de un formulario, los valores son guardados en una nueva herramienta de ASP.NET llamada bolsa de estado y son comprimidos y ocultados en una pgina llamada vista de estado. El objetivo es que, una vez enviado el formulario, ste recupere su apariencia anterior.

GET Y POSTEl procedimiento ms habitual para que un navegador realice una peticin a un servidor desde un formulario es mediante el uso de dos mtodos HTML: GET y POST. El mtodo GET almacena toda la informacin que requiere dentro de una direccin URL. En ella primero aparecer el tipo de protocolo utilizado: HTML o FTP, a continuacin, el nombre del dominio, seguido del path a la pgina solicitada y el nombre de la pgina. A continuacin se le puede aadir toda la informacin necesaria para realizar la peticin, la llamada query string. sta est separada del resto mediante el signo de interrogacin. A partir de ah se establecen pares: clave=valor, por ejemplo, temperatura=20. Si necesitamos varios pares, stos se unen mediante el signo &. Si enviramos un formulario que contuviese campos para nombre, apellidos y edad por el mtodo GET (METHOD = "GET") y el usuario escribiera Juan, Soto y 30, se enviara la siguiente peticin URL al servidor:http://Workshop1/Painting/Profile.asp?Nombre=Juan&Apellido=Soto&Edad=30

Cuando un navegador enva la informacin mediante el mtodo POST, los datos se estructuran igual que en el mtodo GET pero se ubican en una cabecera HTML separada de la pgina, por lo que no son visibles. Por esta razn, en la mayora de los casos los programadores prefieren ese mtodo. Cualquiera sea el mtodo utilizado, es decir GET o POST, cuando un formulario es enviado al servidor, decimos que se produjo un POSTBACK. Los Web Forms envan sus datos por el mtod POST y la pgina destino es la actual.

Introduccin a ASP.NET

4

Ejecucin del lado del servidor El servidor enva una peticin Localiza la pgina usando la URL ASP.NET analiza el cdigo y si ste no tiene un cdigo compilado actualizado llama al compilador para general el IL, luego compila y guarda el cdigo. El runtime del servidor carga y ejecuta el cdigo y enva la respuesta al cliente. En las siguientes peticiones, el runtime carga directamente el IL y lo ejecuta. La respuesta es reenviada al navegador traducida a cdigo HTML y ste representa la respuesta en la pantalla del cliente.

El ciclo simplificado de ejecucin del lado del servidor sera: Peticin Servidor localiza el archivo ASP se procesa

Errores de compilacin Compilar

S

ha cambiado? No Ejecutar

Guardar

Respuesta

COMPONENTES DE ASP.NETASP.NET es un Marco (framework) para programar aplicaciones Web, de un modo similar al que se programan las aplicaciones Windows. Los componentes principales de una aplicacin Web ASP.NET son: WebForms (Formularios Web). Proporcionan la interfaz de usuario para la aplicacin Web y lo constituyen uno o ms archivos con extensin .aspx. Archivos Code-Behind. Las pginas con cdigo trasero estn asociadas a los formularios Web Forms y contienen el cdigo del servidor para el formulario Web Form. Su extensin ser .aspx.vb si el lenguaje utilizado es Visual Basic Archivos de configuracin con formato XML. Los archivos de configuracin son archivos XML que definen la configuracin predeterminada para la aplicacin Web y para el servidor Web. Se pueden utilizar un archivo Web.config por cada aplicacin y un nico archivo Machine.config por servidor Global.asax. Los archivos Global.asax contienen el cdigo necesario para responder a los eventos a nivel de aplicacin provocados por ASP.NET Directorio BIN. Contiene el assembly de la aplicacin (Ej.: MiAplic.dll) y cero o ms assemblies (Componentes externos)

net

Introduccin a ASP.NET

5

Conectividad a bases de datos. La conectividad a bases de datos permite a la aplicacin Web transferir datos desde y hacia fuentes de base de datos. Cach. El uso de cach permite a la aplicacin Web devolver ms rpidamente formularios Web Forms y datos tras la primera peticin.

ESTRUCTURA DE UNA APLICACIN WEBLas aplicaciones Web estn compuestas de los siguientes ficheros: Archivos de solucin (.sln, .suo). La extensin de archivo NombreSolucin.sln se utiliza para archivos de solucin que enlazan uno o ms proyectos, y almacena informacin global. La extensin de archivo NombreSolucin.suo se utiliza para archivos que acompaan los registros de solucin y las personalizaciones que agreguemos a nuestra solucin. Este archivo guarda nuestra configuracin, como puntos de interrupcin y elementos de tareas, para que sean recuperados cada vez que abramos la solucin. Archivos de proyecto (.vbproj). Cada proyecto es una nica aplicacin Web almacenada en su propia carpeta. Dentro de la carpeta de proyecto se encuentra el archivo de configuracin del proyecto y los archivos reales que constituyen el proyecto. El archivo de configuracin del proyecto es un documento XML que contiene referencias a todos los elementos del proyecto, como formularios y clases, adems de referencias de proyecto y opciones de compilacin. Los archivos de proyecto Visual Basic .NET utilizan una extensin .vbproj, mientras que C# utiliza .csproj. Formularios Web Forms ASP.NET(.aspx). Los formularios Web Forms ASP.NET se utilizan cuando es necesario generar sitios Web dinmicos a los que los usuarios accedern directamente. Servicios Web ASP.NET (.asmx). Los servicios Web se utilizan cuando deseamos crear sitios Web dinmicos a los que nicamente accedern otros programas. Los servicios Web ASP.NET pueden estar soportados por una pgina de cdigo subyacente designada por la extensin WebService.asmx.vb o WebService.asmx.cs.

Introduccin a ASP.NET

6

Clases, pginas de cdigo subyacente (.vb o .cs). Las pginas de cdigo subyacente utilizan dos extensiones: el tipo de pgina (.aspx o .asmx) y la extensin de Visual Basic (.vb) o la extensin de C# (.cs). Por ejemplo, el nombre de archivo completo para la pgina de cdigo subyacente de un formulario Web Form ASP.NET predeterminado es, para un proyecto C#, WebForm1.aspx.cs. Clases de aplicaciones globales (.asax). El archivo Global.asax, tambin conocido como el archivo de la aplicacin ASP.NET, es un archivo opcional que contiene cdigo para responder a eventos a nivel de aplicacin provocados por ASP.NET o por HttpModules. Archivo Web.config. Este archivo Web.config contiene opciones de configuracin que el CLR lee, como polticas de enlace de ensamblados, objetos remoting, etc., y otras configuraciones que la aplicacin puede leer. Styles.css. Es el archivo de hojas de estilo predeterminado para la Web. Ensamblado del proyecto (.dll). Todas las pginas de cdigo subyacente (.aspx.vb y .aspx.cs) de un proyecto estn compiladas en un nico archivo ensamblado que se almacena como ProjectName.dll. Este archivo ensamblado del proyecto se ubica en el directorio /bin del sitio Web. AssemblyInfo.vb o AssemblyInfo.cs. El archivo AssemblyInfo se utiliza para describir la informacin general del ensamblado, como la versin y los atributos del mismo.

SERVIDOR WEBPodemos crear un proyecto Web en diferentes localizaciones: En el sistema de ficheros de nuestro equipo En un servidor IIS local En un servidor IIS remoto En un sitio FTP

Nosotros vamos a utilizar el sistema de ficheros de nuestro equipo ya que no tenemos instalado el servidor IIS. Ventajas Inconvenientes

No necesitamos tener instalado IIS, en su No podremos utilizar ciertas lugar se utiliza ASP.NET Development caractersticas avanzadas de IIS como la autenticacin basada en HTTP del Server. No necesitamos permisos administrativos servidor. para crear o depurar sitios Web Los colaboradores en el desarrollo no Como slo se puede acceder a l podrn ver la ltima versin, tendramos localmente, evitamos problemas de que publicarla en un servidor. seguridad durante el desarrollo

Introduccin a ASP.NET

7

EL PROCESO DE DESARROLLOVisual Studio .NET contiene todo lo necesario para generar una aplicacin Web ASP.NET de principio a fin. Crear una aplicacin Web ASP.NET con Visual Studio .NET implica los siguientes pasos bsicos: Crear una especificacin de diseo. Antes de nada lo que se debe hacer es disear la aplicacin Web y para ello debemos analizar las necesidades del usuario y las caractersticas principales que debe tener la aplicacin, as como la funcionalidad de sta. Crear un nuevo proyecto. Cuando seleccionamos una nueva plantilla de proyecto, Visual Studio .NET crea automticamente los archivos y el cdigo predeterminado necesarios para soportar el proyecto. Como parte de esta creacin inicial del proyecto, deberamos transferir las principales tareas de codificacin desde nuestra especificacin de diseo a la Lista de Tareas de Visual Studio .NET. Esta transferencia permite hacer un seguimiento de nuestro desarrollo contra la especificacin. Crear la interfaz. Se debe disear e implementar la interfaz de la aplicacin con el usuario, para ello disponemos de la ventana Editor/Navegador en modo Diseo. A la vez que introducimos los objetos de los formularios podemos establecer sus caractersticas en la ventana de Propiedades. Escribir cdigo. Despus de crear la interfaz podremos escribir los procedimientos de eventos que se ejecutarn al realizar diferentes acciones sobre los objetos de los distintos formularios. Es posible que tambin necesitemos escribir cdigo para agregar lgica de negocio y para acceder a datos. Generar. Cuando generamos un proyecto, compilamos todo el cdigo de las pginas Web y dems archivos de clases en una librera de enlace dinmico (dynamic-link library, DLL) denominada ensamblado. Probar y depurar. Probar y depurar no es un paso a realizar una nica vez, sino algo que se realiza repetidamente durante el proceso de desarrollo. Cada vez que realizamos un cambio importante, es necesario generar una versin de depuracin de la aplicacin para asegurarnos de que funciona segn lo previsto. Implantar. Cuando un proyecto est totalmente, podemos implantar los archivos generados en un servidor Web.

Introduccin a ASP.NET

8

SINTXIS DE ASP.NETASP.NET utiliza tres delimitadores distintos para indicar el cdigo de servidor, es decir, el cdigo que se ejecutar en el servidor y que estar escrito en el lenguaje C#-

Encerrado dentro de los delimitadores se va a encontrar todo el cdigo de script de servidor, de esta forma el comando asigna el valor Pepe a la variable nombre. Entre estos delimitadores se pueden incluir varias sentencias. El cdigo incluido entre estos delimitadores se ejecuta dentro de la pgina.

Dentro del segundo tipo de delimitadores se encuentran expresiones que devuelve algn valor para ser mostrado en la salida de la pgina, as por ejemplo la expresin enviar al navegador el valor Pepe, es decir, el valor actual de la variable. Entre estos delimitadores slo se puede encerrar una sentencia.

Esta etiqueta es utilizada nicamente para declarar mtodos (procedimientos y funciones) de la pgina.

Code-behindOtra forma es introducir el cdigo en un fichero aparte que tiene extensin aspx.vb (para VB), de esta forma separmos la vista de los controladores. Este fichero con cdigo en VB se denomina code-behind

EjemplosEn el ejemplo se puede ver la utilizacin de los delimitadores para definir un objeto de la clase DateTime con la fecha y hora actual. Y tambin se utilizan los Introduccin a ASP.NET 9

delimitadores para mostrar la fecha y hora actual en el navegador del usuario. Incluir este cdigo en el body. La hora y fecha actual es:

Dentro de los delimitadores de cdigo de servidor se pueden encontrar tambin instrucciones del lenguaje de objetos que se utilice, as por ejemplo puede aparecer una instruccin If...Else del lenguaje VB, como se puede apreciar en siguiente cdigo

En el cdigo anterior se comprueba si la variable nombre tiene algn valor, si lo tiene saludamos con el valor de la variable, mostrando el saludo en color rojo. Aunque ya veremos que el cdigo VB es mejor ejecutarlo desde un fichero code-behind que provocar la especializacin de los ficheros segn sean orientados al interface o a la ejecucin de cdigo VB.

ESTRUCTURA DE UNA PGINA ASP.NETLos elementos ms importantes de una pgina ASP.NET son: Directivas Bloques de declaracin de cdigo Controles ASP.NET Bloques de presentacin de cdigo Comentarios del lado del servidor Directivas de inclusin del lado del servidor Texto literal y etiquetas HTML

DirectivasUna directiva controla como se compila una pgina ASP.NET. Las directivas tiene la siguiente sintsix.

Las directivas aparecen normalmente al principio de la pgina aunque pueden localizarse en cualquier sitio. Dos ejemplos de directivas son: De pgina: solo puede haber una lnea en cada fichero, en cada lnea puede haber varias directivas de otros tipos. Language: para indicar el lenguaje predeterminado

Introduccin a ASP.NET

10

Trace: se realiza un seguimiento de la pgina y permite visualizar informacin adicional sobre la ejecucin de la pgina junto con su contenido Debug: permite que se visualicen mensajes de error en tiempo de ejecucin, se puede combinar con Trace AutoEventWireup: Indica si los eventos de la pgina pueden ser detectados por el cdigo (PageLoad) sin necesidad de que los controladores de eventos utilicen Handles . En los webs forms de visual basic, el valor viene a false y a que es propio del lenguaje indicar en cada controlador de eventos el evento al que responde y el objeto que lo provoca con Handles. Codefile: Indica el fichero donde estn los controladores de evento del la pgina actual Inherits: este atributo indica el nombre de una clase de la que el control hereda, este atributo es utilizado para realizar la separacin del cdigo de la presentacin de lainformacin

Trace=True

Trace=True Debug=True

AutoEventWireup="false"

CodeFile="Default.aspx.vb"

Inherits="_Default"

Bloques de declaracin de cdigoUn bloque de declaracin de cdigo contiene toda la lgica de aplicacin de una pgina ASP.NET y todas las declaraciones de variables globales y mtodos. Debe aparecer dentro de la etiqueta

Si no especificamos la propiedad Lenguaje tomar el dato de la directiva de pgina que especifique el lenguaje de programacin a utilizar en el servidor.

Controles ASP.NETCombinado con el cdigo HTML pueden aparecer controles ASP.NET, el nico requisito es que los controles tengan la propiedad runat=Server. Un limitacin importante es que slo se puede incluir una sentencia por pgina.

Bloques de presentacin de cdigoPudemos incluir cdigo intercalado con el contenido HTML de la pgina utilizando

Introduccin a ASP.NET

11

Comentarios del lado del servidorPara introducir mententarios del lado del servidor, con propsito de documentacin se utiliza

Cabe destacar que estas lneas estn ocultas para el cliente, es decir, no se vern si desde el navegador utilizamos las opciones para ver cdigo fuente.

Directivas de inclusin del lado del servidorPodemos incluir un archivo en una pgina ASP.NET utilizando uan de las dos formas de la directiva del lado del servidor. Si queremos incluir un archivo que est ubicado en el mismo directorio o en un subdirectorio de la pgina que incluye el archivo, utilizamos la siguiente directiva:

Texto literal y etiquetas HTMLLa informacin que queremos presentar de forma esttica en nuestra pgina se hace por medio de texto y etiquetas HTML.

Introduccin a ASP.NET

12

2. FORMULARIOS EN ASP.NETINTRODUCCINLos Web Forms (Formularios Web) es una nueva caracterstica de ASP.NET que ofrece un nuevo modelo de programacin que nos va a permitir generar contenidos dinmicos de una forma ms sencilla. Los Web Forms sustituyen e integran los formularios HTML dentro del entorno de programacin de ASP.NET. Un Web Form en ltima instancia va a generar el cdigo HTML correspondiente al formulario que se est diseando. ASP.NET nos proporciona un gran nmero de controles propios que coexisten armnicamente con contenido HTML: normalmente crearemos contenido esttico utilizando HTML y contenido interactivo con ASP.NET. Los ficheros que se corresponden con los Web Forms (pginas Web de ASP.NET) tienen extensin .aspx. La lgica de las pginas Web ASP.NET se compone del cdigo creado para interactuar con la pgina. El cdigo puede residir en un bloque de script en la pgina o en una clase independiente. Si el cdigo est en un archivo de clase independiente, a este archivo se le conoce como archivo de cdigo subyacente o code-behind El cdigo del archivo de cdigo subyacente se puede escribir en Visual Basic, Visual C# o JScript .NET.

FORMULARIOS CON CODE-BEHINDEs recomendable serparar la vista de los controladores y para ello .NET nos permite utilizar un fichero aparte para implementar todos los controladores de una pgina. El cdigo que corresponde a la respuesta a los eventos del formulario es el code-behind y tiene el mismo nombre del formulario y extensin .aspx.vb. A continuacin vemos un ejemplo muy sencillo de un formulario que muestra un cuadro de texto (TextBox) un botn (Button) y una etiqueta (Label). Estos controles tienen la etiqueta runat=server para indicar que son controles de servidor. Cuando introducimos un texto en el cuadro de texto y pulsamos el botn nos muestra en una etiqueta un saludo de la forma:HOLA Elena; Pgina de prueba

Formularios

13

Al botn le hemos aplicado un detector de eventos Handles btnSaludar.Click que va a llamar al mtodo btnSaludar_Click, este mtodo se encuentra en el fichero Default.aspx.cs, como se referencia en la cabecera de la pgina con CodeFile="Default.aspx.vb" y va a formar parte de la clase _Default. El contenido del fichero code-behind que se corresponde con el anterior Web Form es el siguiente:Protected Sub btnSaludar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSaludar.Click Me.lblTexto.Text = "Hola " + txtNombre.Text End Sub

Funcionamiento del formulario y su code-behind En la cabecera del .aspx indicamos el nombre del archivo code-behind, y el atributo Inherits indicando cmo se llama la clase que definiremos en dicho archivo. En el ejemplo, esta clase se llama _Default, pero podemos ponerle cualquier nombre, siempre que sea el mismo al indicado en el Inherits del archivo .aspx. El concepto de partial class se utiliza para vincular las pginas aspx (la interfaz del usuario) con su code-behind (comportamiento). Esta clase contiene el cdigo para realizar cualquier tipo de clculo, acceso a BDD etc. (la lgica de negocio), mientras que la pgina .aspx slo indica cmo colocar los distintos componentes en la pantalla (la presentacin). Cuando un cliente enva una peticin a la pgina .aspx, ASP.NET crea dos clases parciales una correspondiente a la pgina .aspx y la otra al code-behind, que se unirn en la compilacin.

SEPARAR EL CDIGO DEL CONTENIDOLos buenos programadores no son necesariamente buenos diseadores. La mayora de las empresas dividen la tarea de desarrollar un sitio Web entre un equipo de diseo y otro de ingeniera. El equipo de diseo es responsable de hacer que un sitio Web sea bonito; el equipo de ingeniera de que el sitio funcione. Antes de ASP.NET era muy difcil hacer este trabajo en las pginas Web pues el cdigo y el contenido se mezclaban en la misma pgina. Los controles ASP.NET nos ofrecen un mtodo limpio para separar el cdigo (capa negocio) del contenido (capa presentacin). Los diseadores pueden colocar controles ASP.NET en una pgina sin preocuparse de la lgica de aplicacin. Una vez que la pgina est diseada el equipo de ingenieros puede ocuparse de aadir a una seccin aparte, o lo que es mejor, a un fichero aparte la lgica de aplicacin.

Formularios

14

TIPOS DE CONTROLES Controles HTMLSon los campos de formulario conocidos en HTML (label, textfield, etc.)

Estos controles se crean automticamente desde la barra de herramientas del programa.

Controles propiosASP.NET permite que el programador cree sus propios controles de servidor si los deriva de controles existentes. Viene a ser una adaptacin de un control de servidor a las necesidades particulares de un programador. Existen dos tipos de controles propios: de usuario Web User Controls, son simples adaptaciones de controles existentes, son fciles de crear y se almacenan con la extensin .ascx propios totales Web Custom Controls, requieren un conocimiento profundo de programacin orientada a objetos adems de un conocimiento del lenguaje compartido CLR.

CONTROL DE EVENTOS EventoUn evento es el modo que tiene un objeto de notificar al servidor que sobre l se ha producido una accin (un clic, una modificacin de sus valores, la carga de la pgina, etc). El uso ms habitual para los eventos se produce en las interfaces grficas. Este tipo de eventos se producen en los controles de servidor HTML y WEB Cada control tiene su propia coleccin de eventos. Para crear un nuevo evento se pueden utilizar dos mtodos: Con el men desplegable de clases y su correspondiente men de mtodos situados en la parte superior del cdigo.

En las propiedades del control se pulsa el icono y se muestran los distintos eventos para el control activo. Al pulsar doble clic sobre el evento se muestar el controlador de eventos correspondiente

Controlador de eventosUn controlador de eventos es un procedimiento del cdigo que determina las acciones que se han de ejecutar cuando se produce un evento, como cuando un usuario hace clic en un botn. Formularios 15

Protected Sub btnSaludar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSaludar.Click Dim ahora As DateTime = DateTime.Now Me.lblTexto.Text = "El momento actual es " + ahora.ToString() End Sub

Estructura de un procedimiento de eventoCada componente de un formulario tiene asociado una serie de eventos a los que responde. Cada evento debe ser manipulado por un controlador de eventos que se comunican con el control por medio de dos argumentos: Sender de tipo Object que es una referencia al objeto que produce el evento. e un objeto de la clase EventArgs o alguna de sus derivadas con informacin del evento que se ha producido (pulsacin, seleccin, clic, etc).

Formularios

16

3. CONTROLES WEBINTRODUCCINEstos controles son especficos de ASP.NET, tienen una sintaxis basada en XML y no tienen una correspondencia exacta con los controles HTML como suceda con los controles HTML del servidor. Los controles Web pertenecen al espacio de nombres System.Web.UI.WebControls que contiene tambin al resto de familias de controles ASP.NET. A continuacin se ver un ejemplo que muestra un proverbio en funcin del elemento elegido en una lista desplegable.