introduccion a .net framework 3.5 aplicaciones asp

Upload: cmendezcr

Post on 17-Jul-2015

286 views

Category:

Documents


2 download

TRANSCRIPT

Introduccin al desarrollo de aplicaciones web

ndice_1. INTRODUCCIN ...............................................................................3 2. ASP.NET ...........................................................................................5 3. JAVA (JSP, SERVLETS) .....................................................................5 4. PHP..................................................................................................6 5. DHTML .............................................................................................6

formacin digital

1

Introduccin al desarrollo de aplicaciones web1. INTRODUCCIN El desarrollo de aplicaciones para el entorno Internet ha cambiado mucho desde su aparicin hace algunos aos. El mundo de la informtica avanza rpidamente y las necesidades bsicas de un sitio web han cambiado. Al principio, el desarrollo de pginas web se limitaba prcticamente al uso del lenguaje de marcado HTML (lenguaje de marcado de hipertexto), un lenguaje sencillo basado en la especificacin 3.2, sin capas ni estilos, con el que se obtenan pginas estticas cuya labor nicamente era suministrar informacin personal del autor o de la empresa (de forma textual o a travs de imgenes), sin proporcionar ninguna interaccin con el usuario. Actualmente, un sitio web suele soportar la recogida de datos a travs de formularios, inclusiones de archivos (subir ficheros al servidor, como imgenes o documentos), envo de correos electrnicos, acceso a bases de datos, redireccionamiento de acuerdo al perfil del usuario, etc. En definitiva, hoy da, las aplicaciones web se disean con el propsito de suministrar al usuario una serie de servicios ms complejos.

Como ejemplo podemos citar una plataforma de teleformacin que soporte matriculacin de alumnos, subida de cursos, exmenes, almacenamiento de notas, estadsticas de tiempos sobre conexiones al centro virtual, visitas por curso y alumno, etc. Cada vez que el alumno entra en la plataforma y se identifica (introduce su nombre de usuario y contrasea), se le presenta una pgina personalizada (con acceso a cada uno de los cursos en que est matriculado). Asimismo, cuando el alumno realiza un ejercicio o examen, el sistema puede comprobar los resultados introducidos y otorgarle una nota que almacena en una base de datos para ir elaborando un expediente. Estos son ejemplos de pginas dinmicas, cuyo aspecto final va a depender de las acciones del usuario y de la forma de interactuar que tenga con la aplicacin: en cuntos cursos se ha matriculado, si ha aprobado o suspendido un examen, los temas o respuestas que ha dado en los foros de su curso, etc.

Entre las aplicaciones tpicas desarrolladas en la actualidad, se encuentran los portales, las tiendas o comercios virtuales, aplicaciones publicitarias, de ocio (portales de juegos), etc. Estos desarrollos se caracterizan por el alto nmero de usuarios que tienen que soportar y por la calidad de la interfaz de usuario, el diseo y el sistema de navegacin presentados.

3

Introduccin al desarrollo de aplicaciones web

Ejemplo de aplicacin web actual: plataforma de teleformacin.

Por otra parte, los desarrollos Internet se implementan sobre los protocolos y los lenguajes de Internet. A su vez, estos protocolos son estndares que implementan una serie de mecanismos bsicos para permitir el paso de informacin entre los equipos clientes de los usuarios (que contienen los navegadores de Internet) y los equipos servidores (que contienen la aplicacin), y son principalmente el protocolo TCP/IP (Protocolo de Control de Transmisin / Protocolo de Internet) y HTTP (Protocolo de Transmisin de Hipertexto).

A mayor complejidad de aplicaciones, mayor complejidad y potencia de herramientas y nuevas tecnologas usadas en su programacin.

En los prximos apartados, vamos a estudiar una serie de tecnologas de desarrollo web utilizadas en la actualidad.

4

Introduccin al desarrollo de aplicaciones web2. ASP.NET ASP (Active Server Page) es la tecnologa que desarroll Microsoft para la creacin de pginas dinmicas del lado del servidor. Para escribir pginas ASP colocamos lenguajes scripts (VBScript o JavaScript) junto al cdigo HTML. En ASP 3.0, el ltimo ASP, tenemos objetos integrados disponibles para el programador, como son: Application, ASPError, Request, Response, Server, Session y ObjectContext. La tecnologa sucesora de ASP, ASP.NET, es un Framework para aplicaciones web desarrollado y comercializado por Microsoft que apareci en Enero de 2002 con la versin 1.0 del .NET Framework. ASP.NET se cimienta sobre el Common Lenguaje Runtime (CLR) conformando una ventaja al programador al poder escribir cdigo en cualquier lenguaje soportado por el .NET Framework. Las pginas ASP.NET son conocidas oficialmente como web forms (formularios web) y son la principal herramienta de construccin de aplicaciones web. ASP.NET tambin incluye la tecnologa necesaria para el desarrollo de servicios Web XML, que permiten construir aplicaciones distribuidas basadas en la Web. Normalmente, las aplicaciones ASP.NET se ejecutan con el servidor Microsoft IIS (Internet Information Server) como servidor web. No obstante, existe una manera de utilizar el servidor web Apache en su lugar (aunque con deficiencias).

3. JAVA (JSP, SERVLETS) Java es la solucin de SUN Microsystems para el desarrollo de aplicaciones web. Consta de un conjunto de libreras y API (Interfaz de Programacin de Aplicaciones) de desarrollo, que incluye un conjunto de objetos de servidor o Servlets, y un sistema de programacin de pginas con un modelo similar al de ASP (introduciendo cdigo Java embebido en pginas HTML): pginas JSP (Java Server Pages, Pginas de Servidor Java). Este modelo de Servlets y pginas JSP, al estar directamente basado en Java presenta todas las ventajas de este lenguaje, como la orientacin a objetos o la disponibilidad de todas las libreras adicionales de Java (generacin de imgenes, comunicaciones, seguridad, encriptacin, etc.).

5

Introduccin al desarrollo de aplicaciones web4. PHP PHP corresponde a las iniciales de Personal Home Page. Este lenguaje de programacin tiene una sintaxis similar a los lenguajes C y Perl, y se interpreta por un servidor web Apache bajo sistemas Unix/Linux (tambin han salido al mercado versiones para sistemas Windows, aunque no siempre podremos utilizar todas sus caractersticas bajo este sistema operativo). PHP presenta una tcnica similar a las pginas ASP de Microsoft, es decir, las pginas HTML incluyen el cdigo PHP embebido en ellas y, al ejecutarlas, se genera cdigo HTML dinmicamente. Por otro lado, es preciso mencionar que soporta clases y dispone de un gran nmero de libreras de funciones para realizar operaciones avanzadas como acceso a bases de datos, correo electrnico, transferencia de ficheros, comunicaciones, etc. Por ltimo, las pginas PHP tambin se han extendido mucho en los ltimos aos (son las pginas web que vemos con extensin .php o .phtml).

5. DHTML Sus siglas significan Dinamic HTML (HTML dinmico). Se forma de una conjuncin de HTML, hojas de estilo en cascada (CSS), lenguajes de script como JavaScript o VBScript, y la jerarqua de objetos DOM. Estos lenguajes de script se ejecutan en la mquina cliente (en el navegador del usuario que solicita una pgina). De hecho, sta es una gran diferencia con el resto de las anteriores tecnologas que hemos estudiado en los apartados anteriores. En la actualidad, el desarrollador web utilizar alguna de estas tecnologas de servidor. Dichas tecnologas aportarn numerosas ventajas como la unin entre la lgica principal de la aplicacin y el HTML dinmico. Con este ltimo, se consiguen pginas ms eficientes y con efectos que la hacen mucho ms vistosas (alternancia de imgenes, capas, cambios de estado provocados por eventos, etc.). En definitiva, estos lenguajes no permiten el desarrollo de cualquier proyecto en Internet. Es ms un complemento para los desarrolladores que el ncleo de verdaderas aplicaciones web.

6

Introduccin al desarrollo de aplicaciones web El desarrollo de aplicaciones web ha evolucionado rpidamente en los ltimos aos. Las pginas estticas que usaban nicamente el lenguaje HTML 3.2, han pasado a sitios web interactivos que ofrecen multitud de servicios a los usuarios. Actualmente se utilizan tecnologas como: DHTML (HTML, CSS y lenguajes de script, como VBScript o JavaScript, que se ejecutan en el cliente). PHP, JSP y Servlets. ASP.NET (tecnologas que se ejecutan en el servidor).

recuerde_

7

Introduccin a .NET

ndice_ formacin digital

1. INTRODUCCIN ...............................................................................3 2. REQUISITOS DEL SISTEMA ...............................................................3 3. MICROSOFT .NET FRAMEWORK.........................................................4 3.1. CLR O COMMON LANGUAGE RUNTIME ....................................6 3.1.1. CLS o Common Language Specification .......................6 3.1.2. CTS o Common Type System.......................................6 3.1.3. IL, MSIL o Microsoft Intermediate Lenguaje ...............7 3.2. BIBLIOTECA DE CLASES .NET FRAMEWORK ...........................8 3.3. LO NUEVO DE .NET FRAMEWORK 3.0 Y 3.5...........................10 3.3.1. WPF o Windows Presentation Foundation .................11 3.3.2. WCF o Windows Communication Foundation.............11 3.3.3. WWF o Windows Workflow Foundation.....................12 3.3.4. CardSpace ................................................................12 3.3.5. LINQ o Lenguaje-Integrated Query ..........................12 3.3.6. ASP.NET AJAX ..........................................................12 3.3.7. ADO.NET Entity Framework ......................................13

1

Introduccin a .NET1. INTRODUCCIN En este tema estudiaremos los requisitos necesarios para instalar .NET. Adems, explicaremos varios conceptos bsicos sobre la arquitectura de la plataforma y conoceremos cmo ha evolucionado hasta llegar a la versin actual .Net Framework 3.5. Esta base terica nos facilitar el entendimiento y contextualizacin de ASP.NET como un Framework de .NET para el desarrollo de aplicaciones web desarrollado por Microsoft.

2. REQUISITOS DEL SISTEMA A continuacin, enumeramos los requisitos necesarios para poder instalar .NET Framework: Sistema operativo de la familia Windows (32-bit y 64-bit) excepto los siguientes: Microsoft Windows 95, Microsoft Windows 98, Microsoft Windows Millennium Edition, Microsoft Windows NT Server, Windows NT Workstation, Windows NT Server Enterprise Edition, Microsoft Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server, Windows 2000 Datacenter Server, Windows Server 2003, Enterprise Edition for Itanium-based Systems, Windows Server 2003, Datacenter Edition for Itanium-based Systems. Tambin se pueden desarrollar aplicaciones ASP.NET usando otros sistemas operativos gracias al proyecto Mono (http://www.mono-project.com/Main_Page), que es un grupo de herramientas libres compatible con .NET. Microsoft Data Access Components (MDAC) 2.8 for data access applications y Windows Installer version 3.0 (probablemente, ambas herramientas estn ya instaladas en nuestro sistema). Requisitos del hardware:

Procesador Mnimo Recomendado 400 Mhz 1 Ghz

Memoria 96 MB 256 MB

Espacio en disco 32-bit 64-bit 280 MB 610 MB

Servidor Web Internet Information Server y permisos para guardar archivos en el servidor web. Puede ser que an teniendo uno de los sistemas operativos necesarios no tengamos instalado el IIS, que no viene en la configuracin por defecto de instalacin. En este caso, instalaremos el IIS (slo ser indispensable si queremos alojar y publicar la pgina web en nuestro equipo).

3

Introduccin a .NET Microsoft .NET Framework SDK (Software Development Kit): es la implementacin de la plataforma .NET sobre la que se ejecutarn las pginas ASP.NET. Es decir, el .NET Framework SDK contiene todas las clases que componen la plataforma .NET. Su distribucin es gratuita y podemos descargarlo del sitio web de desarrolladores de Microsoft en http://msdn.microsoft.com. Adems, en esta direccin podemos encontrar abundante documentacin sobre el tema. Por otra parte, tambin es recomendable, aunque no obligatorio, disponer de la aplicacin Visual Studio .NET, que es un entorno de desarrollo para la plataforma .NET. Este entorno integrado ofrece una serie de ayudas visuales y utilidades muy interesantes, adems de valiosa documentacin que nos ayudar en el desarrollo, prueba y depuracin de nuestras aplicaciones ASP.NET. Adems, las distribuciones de la aplicacin de Visual Studio .NET suelen incluir el paquete Microsoft .NET Framework SDK, como parte opcional de la instalacin, por si el equipo donde va a ser instalado el Visual Studio .NET1 no lo tiene todava. Este entorno es muy recomendable pero no imprescindible para escribir nuestras aplicaciones ASP.NET. De hecho, tambin puede usarse cualquier otro editor de texto comn, como el bloc de notas de Windows o la aplicacin EditPlus, aunque stos no proporcionan las utilidades del entorno Visual Studio .NET. Adems, si utilizamos Visual Studio o Visual Web Developer podemos probar las pginas web de ASP.NET usando el servidor de desarrollo de ASP.NET, que ejecuta las pginas localmente en el equipo sin necesidad de instalar IIS.

3. MICROSOFT .NET FRAMEWORK .NET Framework 3.5 permite el desarrollo de aplicaciones a travs del uso de un conjunto de herramientas y servicios que proporciona, y que podemos agrupar en tres bloques principales: El Entorno de Ejecucin Comn o Common Language Runtime (CLR) es el ncleo de .NET Framework. Se encarga de la gestin del cdigo, su ejecucin, los temas de manipulacin de memoria, etc.

1

Podemos

conseguir

una

versin

de

evaluacin

de

Visual

Studio

.NET

en

el

sitio

http://www.microsoft.com/express/download/

4

Introduccin a .NET La jerarqua de clases bsicas de la plataforma o .NET Framework Base Classes. Este conjunto de clases constituye un API de servicios para utilizar en la programacin de nuestras aplicaciones. Por ejemplo, las clases para acceder a bases de datos (ADO.NET), para gestionar ficheros XML, gestin de hilos (threading), para el desarrollo de aplicaciones web (ASP.NET), etc. El motor de generacin de interfaz de usuario. Permite crear interfaces para la Web (con la tecnologa ASP.NET), para el tradicional entorno Windows (Windows Forms) o para el nuevo Windows Presentation Foundation (WPF). En este manual vamos a profundizar en aspectos relacionados con ASP.NET aunque tambin veremos otros ms generales dentro de la plataforma .NET. Por otra parte, ASP.NET es un Framework para aplicaciones web. Podemos definirlo como un subconjunto de .NET Framework dedicado al desarrollo de sitios web dinmicos, aplicaciones web y servicios web XML. A continuacin, podemos observar un esquema de la composicin del .NET Framework y como ha ido evolucionando gracias a la insercin de nuevas tecnologas y mejora de sus caractersticas.

LINQ

ADO.NET Entity Framework

ASP.NET AJAX

WPF

WCF

WF

CardSpace

Biblioteca de clases .NET Framework

ASP.NET

Windows Forms

ADO.NET

IO

XML

THREADING

Etc.

CLR (Common Language Runtime)

CTS

CLS

MSIL

Gestin de memoria

.NET Framework

5

Introduccin a .NETEn este manual vamos a centrarnos en la parte de ASP.NET que, como hemos dicho, constituye la solucin de Microsoft para desarrollar aplicaciones web, aunque la base sobre la que se apoya, el paquete .NET, es comn para desarrollar otro tipo de aplicaciones para Windows. 3.1. CLR O COMMON LANGUAGE RUNTIME El CLR es la base del sistema Microsoft .NET. Este motor hace que sea posible el desarrollo basado en mltiples lenguajes y que sea posible la integracin y ejecucin de todos ellos en el entorno .NET. Esto se realiza gracias al seguimiento de las especificaciones del CLR por parte de los creadores de lenguajes y herramientas de desarrollo. En los prximos apartados vamos a estudiar una serie de trminos relacionados con el CLR (Common Language Runtime) o Lenguaje comn en tiempo de ejecucin: CLS, CTS e IL. 3.1.1. CLS o Common Language Specification Esta Especificacin Comn de Lenguajes se conoce como CLS (Common Language Specification) y consiste en un conjunto de caractersticas comunes que deben cumplir todos los lenguajes de la plataforma, para poder integrarse entre s. Esta integracin se refiere a que, por ejemplo, es posible escribir una clase en C# y heredar de dicha clase desde VB.NET. Esto se produce gracias a que el entorno de ejecucin es comn y el cdigo compilado no pasa directamente a cdigo ejecutable puro, sino a un cdigo intermedio (como veremos en el apartado de IL). Por ello, podemos decir que la plataforma .NET tiene soporte multi-lenguaje. Algunos de los lenguajes soportados actualmente son: C#, Visual Basic .NET, Delphi (Object Pascal), C++, C, J#, Perl, Python, Fortran, Ruby, Cobol y PowerBuilder. 3.1.2. CTS o Common Type System Estas siglas corresponden a Common Type System o Sistema Comn de Tipos. Es el mecanismo del CLR que permite definir el modo en que los tipos sern creados y manipulados por el entorno de ejecucin de .NET Framework. As, todos los lenguajes pueden trabajar basndose en una serie de especificaciones de datos que hacen posible el intercambio de informacin y trabajo con las libreras bsicas de la plataforma .NET.

6

Introduccin a .NET3.1.3. IL, MSIL o Microsoft Intermediate Lenguaje Es un lenguaje parecido al bytecode de Java, hacia el cual cualquier compilador integrado con Microsoft .NET (c#, VisalBasic, etc.) deber compilar su cdigo fuente, ya que es el nico entendible por el CLR. La siguiente figura muestra un diagrama con el proceso de generacin de lenguaje intermedio a partir del cdigo fuente:

Cdigo fuente (C#, VB.NET, C++,...)

CLS Compilador CTS

Cdigo IL

Compilador a cdigo nativo

HW y SO

Lo que hace posible que todos los lenguajes usados en .NET puedan compilarse a un lenguaje unificado (IL) es que cumplen con una especificacin comn (CLS) y con un sistema comn de tipos (CTS).

7

Introduccin a .NETEl cdigo auxiliar generado se compila a continuacin en cdigo nativo y se optimiza para la arquitectura de hardware concreta en la que se ejecuta, utilizando los servicios de compilacin JIT (Just In Time) de CLR. En resumen, el JIT es otro elemento de .NET Framework que se encarga de convertir el cdigo MSIL en cdigo de nuestro sistema operativo. En definitiva, este cdigo es independiente de la plataforma y del lenguaje que lo haya originado y es un lenguaje intermedio comn a todos los sistemas operativos que soporten .NET Framework. 3.2. BIBLIOTECA DE CLASES .NET FRAMEWORK Las bibliotecas de clases proporcionan la base constitutiva y fundamental para cualquier aplicacin que se desarrolle. Es un componente de .NET Framework que incluye clases, interfaces y tipos de valores que proporcionan acceso a variadas funciones del sistema como: Representar tipos de datos base y excepciones. Encapsular estructuras de datos. Realizar E/S. Obtener acceso a informacin sobre tipos cargados. Control y comprobacin de seguridad de .NET Framework. Proporcionar: acceso a datos, interfaz grfica para el usuario (GUI).

Los tipos en .NET Framework son la base para crear aplicaciones, componentes y controles de .NET. Dichos tipos utilizan un esquema sintctico de punto lo que revela la presencia de una jerarqua (por ejemplo, en System.IO donde System es un espacio de nombres superior en la jerarqua a System.IO). Este esquema agrupa tipos relacionados en espacios de nombres o namespaces que evita ambigedades y hace ms fcil buscar y hacer referencia a cada uno de ellos. Los espacios de nombres ms usados son: (ver pgina siguiente).

8

Introduccin a .NET

ESPACIO DE NOMBRES

UTILIDAD DE LOS TIPOS DE DATOS QUE CONTIENE

Tipos de uso muy frecuente como: los tipos bsicos, tablas, System excepciones, fechas, nmeros aleatorios, recolector de basura, entrada/salida en consola, etc. Colecciones de datos de uso comn como: pilas, colas, listas, diccionarios, etc.

System.Collections

System.Data

Manipulacin

de

bases

de

datos.

Forman

la

denominada

arquitectura ADO.NET.

System.IO

Manipulacin de ficheros y otros flujos de datos.

System.Net

Realizacin de comunicaciones en red.

System.Reflection

Acceso a los metadatos que acompaan a los mdulos de cdigo.

System.Runtime.Remoting

Acceso a objetos remotos.

System.Security

Acceso a la poltica de seguridad en que se basa el CLR.

System.Threading

Manipulacin de hilos.

System.Web.UI.WebControls

Creacin de interfaces de usuario basadas en ventanas para aplicaciones web.

System.XML

Acceso a datos en formato XML.

System.Linq

Consultar archivos XML, bases de datos relacionales, objetos .NET y/u otro tipo de estructura de datos.

9

Introduccin a .NETEn resumen, se trata de una coleccin orientada a objetos de tipos reutilizables que se emplean para desarrollar aplicaciones nuevas y de distinta naturaleza: aplicaciones clsicas de interfaz de usuario, de lnea de comandos, aplicaciones basadas en Web Forms, servicios web, servicios Windows, aplicaciones de Windows Presentation Foundation, etc. 3.3. LO NUEVO DE .NET FRAMEWORK 3.0 Y 3.5 En los primeros aos de desarrollo de aplicaciones Windows, todas las aplicaciones estaban escritas sobre la Interfaz de Programacin de Aplicaciones (API) de Windows en C o C++. Cuando apareci Visual Basic y posteriormente Internet, los programadores deban especializarse en el desarrollo de aplicaciones C, C++ (MFC/ATL), aplicaciones Visual Basic o aplicaciones Active Server Page (ASP). Con .NET Framework se puede desarrollar cualquier tipo de aplicacin. An as, qu ganamos? La respuesta es un modelo de programacin ms unificado, la mejora de la seguridad y una nueva forma de escribir potentes aplicaciones web completas.

POO Potencia Expresividad

API consistente independiente del lenguaje y el modelo de programacin

MFC/ATLBasado en estndares

Windows APIRAD Composicin Delegacin

Visual Basic Forms

ASPWeb Estndar en HTML

Extensible

En los siguientes apartados, haremos un repaso por alguna de las nuevas funcionalidades y caractersticas que fueron incluidas en las versiones posteriores a la 2.0 del Framework y que se utilizan actualmente.

10

Introduccin a .NET3.3.1. WPF o Windows Presentation Foundation Windows Presentation Foundation representa a la nueva generacin de aplicaciones cliente de Windows. Se caracteriza por un estilo de presentacin de ventanas muy llamativo y novedoso para el usuario desde el punto de vista visual. Algunos ejemplos de ellos son: Yahoo Messenger (http://messenger.yahoo.com/platform/win) o la aplicacin de ejemplo para atencin sanitaria: Contoso Healthcare Sample Application (http://windowsclient.net/downloads/folders/wpfsamples/entry3754.aspx) que se muestra en la ilustracin siguiente:

3.3.2. WCF o Windows Communication Foundation Es un conjunto de tecnologas orientadas al desarrollo de sistemas interconectados o distribuidos y al desarrollo de aplicaciones basadas en arquitecturas orientadas a servicios. WCF engloba una gran variedad de funcionalidades de sistemas distribuidos que abarca transportes, mensajera, codificacin, etc. Adems, puede ejecutarse en una mquina local, una LAN o sobre Internet. De forma predeterminada se incluye en Windows Vista.

11

Introduccin a .NET3.3.3. WWF o Windows Workflow Foundation Se trata del nuevo componente del Framework destinado a desarrollos empresariales relacionados con procesos de negocios. Es una tecnologa que nos permite definir e implementar flujos de trabajo que controlen el buen comportamiento y operacin de nuestras aplicaciones de una manera ms sencilla. Las empresas evolucionan y necesitan continuamente adaptar sus sistemas a las nuevas necesidades. Con WWF se evita que los cambios y mejoras en las aplicaciones desemboquen en procesos demasiado complejos. 3.3.4. CardSpace Se trata de un cliente de un servicio de identificacin digital para servicios on-line muy seguro y simple. De hecho, nos brinda la posibilidad de iniciar sesin en los sitios web compatibles sin tener que dar nuestro nombre de usuario y contrasea. CardSpace nos posibilita crear tarjetas de identificacin basadas en XML con las que podemos identificarnos en aquellos servicios que admitan esta tecnologa. En suma, Microsoft proporciona a los usuarios la capacidad de crear y administrar sus tarjetas de informacin y de tener acceso a ellas. 3.3.5. LINQ o Lenguaje-Integrated Query Es una nueva caracterstica de .NET Framework 3.5 y Visual Studio 2008 que incorpora capacidades de consulta a la sintaxis de C# y Visual Basic. .NET Framework 3.5 incluye ensamblados de proveedor de LINQ que habilitan su uso para realizar consultas sobre bases de datos de SQL Server, conjuntos de datos de ADO.NET, ficheros XML y tambin sobre colecciones de .NET Framework. 3.3.6. ASP.NET AJAX AJAX o Asynchronous JavaScript And Xml (JavaScript asncrono y XML) es una tecnologa de desarrollo web para crear aplicaciones interactivas o RIA (Rich Internet Applications). Estas aplicaciones se ejecutan en el cliente mientras se mantiene una comunicacin asncrona con el servidor en segundo plano.

12

Introduccin a .NETAJAX est basado en estndares abiertos lo que hace que sea una tcnica admitida por mltiples plataformas utilizable en muchos navegadores. As pues, .NET Framework 3.5 incorpora mejoras en las caractersticas de ASP.NET y Visual Web Developer, siendo el avance ms significativo la compatibilidad con el desarrollo de sitios web habilitados para AJAX. 3.3.7. ADO.NET Entity Framework Entity Framework es un conjunto de tecnologas de ADO.NET que ha sido diseado para aplicaciones centradas en datos y que proporciona una plataforma para la programacin con datos que eleva el nivel de abstraccin del nivel lgico relacional al nivel conceptual. Entity Framework admite cdigo que es independiente de cualquier motor de

almacenamiento de datos. Asimismo, permite trabajar con datos en forma de objetos, por ejemplo, con empleados y ventas, sin tener que pensar en las tablas ni en las columnas que almacenan los datos.

13

Introduccin a .NET Para desarrollar aplicaciones ASP.NET necesitamos como mnimo: un sistema operativo de la familia Windows compatible con dichas aplicaciones, MDAC, Windows Installer version 3.0 y el paquete Microsoft .NET Framework SDK (Software Development Kit). Tambin se pueden desarrollar aplicaciones ASP.NET en otros sistemas operativos con .NET. Es recomendable disponer de la aplicacin Visual Studio .NET, que es un entorno de desarrollo para la plataforma .NET. Aunque no es imprescindible, nuestras pginas ASP.NET podemos escribirlas en cualquier editor de textos. ASP.NET es un subconjunto de la tecnologa .NET de Microsoft, en concreto, la parte relativa a la programacin web. El paquete .NET tambin incluye las clases necesarias para soportar las aplicaciones tradicionales de Windows, las denominadas aplicaciones Windows Forms. La plataforma .NET tiene soporte multi-lenguaje. Algunos de los lenguajes soportados actualmente son: C#, Visual Basic .NET, Delphi (Object Pascal), C++, C, J#, Perl, Python, Fortran, Ruby, Cobol y PowerBuilder. Las mejoras incluidas en el Framework tienen como objetivo una mayor abstraccin desde el punto de vista del programador as como de los datos relacionales, independencia del origen de los datos, interfaces de usuario ms vistosas, etc. Basar la comunicacin en estndares para asegurar que el cdigo de .NET Framework se pueda integrar con otros tipos de cdigo y ofrecer al programador rutinas entre tipos de aplicaciones muy diferentes, como las basadas en Windows o en el Web, es el objetivo de Microsoft con la integracin de nuevos componentes y mejora de sus caractersticas. El CLR es la base del sistema Microsoft .NET. Este motor hace que sea posible el desarrollo basado en mltiples lenguajes (tienen que cumplir una especificacin comn, CLS), y la integracin y ejecucin de todos ellos en el entorno .NET -esta integracin es posible gracias al sistema comn de tipos, CTS-. gracias al proyecto Mono (http://www.monoproject.com/Main_Page) que es un grupo de herramientas libres compatible

recuerde_

14

Conceptos de la programacin orientada a objetos

ndice_ formacin digital

1. INTRODUCCIN A LA PROGRAMACIN ORIENTADA A OBJETOS (POO) ..............................................................................................3 2. OBJETOS Y CLASES...........................................................................3 3. CARACTERSTICAS DE LOS SISTEMAS ORIENTACIN A OBJETOS (OO) ................................................................................................4 3.1. ENCAPSULACIN .....................................................................4 3.2. ABSTRACCIN .........................................................................5 3.3. HERENCIA................................................................................6 3.4. POLIMORFISMO .......................................................................8 4. MENSAJES Y MTODOS. SOBRECARGA ..............................................8 4.1. MENSAJES................................................................................8 4.2. MTODOS.................................................................................9 4.3. SOBRECARGA ...........................................................................9 5. MODELO DE OBJETOS Y RELACIONES ENTRE CLASES ......................10 6. VENTAJAS E INCONVENIENTES DE LA POO .....................................11

1

Conceptos de la programacin orientada a objetos1. INTRODUCCIN A LA PROGRAMACIN ORIENTADA A OBJETOS (POO) La orientacin a objetos es una nueva forma de programar que augura mejoras en la forma de diseo, desarrollo y mantenimiento del software ofreciendo una solucin a largo plazo a los problemas que han existido desde los inicios del desarrollo de software: la falta de portabilidad del cdigo, reusabilidad, cdigo que es difcil de modificar, ciclos de desarrollo largos y tcnicas de codificacin no intuitivas. En este tema vamos a tratar aspectos genricos de la Programacin Orientada a Objetos (POO), necesarios para poder utilizar correctamente el lenguaje en el que vamos a programar nuestras pginas ASP.NET, es decir, el lenguaje C#.

2. OBJETOS Y CLASES El objeto es el concepto principal sobre el cual se fundamenta la tecnologa orientada a objetos. Un objeto puede ser visto como: Una entidad que posee un conjunto de atributos y que es capaz de realizar una serie de acciones. Esto es lo que define al objeto. Una representacin o modelizacin de un objeto real perteneciente a nuestro mundo.

Podemos tener un objeto bicicleta que represente a una bicicleta dentro de nuestra realidad, o bien un objeto factura, automvil o persona.

Estos objetos son casos particulares de entidades llamadas clases en donde se definen las caractersticas comunes a tales objetos.

Ejemplo: Del objeto automvil podemos mencionar como atributos: el modelo, la marca, el color, el nmero de matrcula, nmero de bastidor, entre otros. Algunas acciones que es capaz de realizar un automvil son: frenar, acelerar y cambiar la velocidad. Este objeto automvil es una instancia particular de la clase automvil.

3

Conceptos de la programacin orientada a objetosLos parmetros o variables que definen el estado de un objeto se denominan atributos o variables miembro, y las acciones que pueden realizar los objetos se denominan mtodos o funciones miembro. Si lo comparamos con la programacin estructurada, podramos hacer la siguiente aproximacin: los atributos, propiedades o variables miembro seran variables y los mtodos o funciones miembro seran procedimientos y funciones, con la diferencia de que las propiedades y mtodos se heredan de unos objetos a otros. De esta manera, las propiedades de un objeto pueden ser diferentes: Propiedades propias. Estn formadas dentro de la cpsula del objeto. Propiedades heredadas. Estn formadas en un objeto distinto, antepasado de ste (padre, abuelo, etc.). Por otra parte, una clase es una plantilla, molde o prototipo en el que se definen los atributos (variables) y las acciones (mtodos) comunes para todos los objetos de un tipo determinado. Mediante las clases podremos crear (instanciar) objetos de un mismo tipo, que se diferenciarn unos de otros a travs de su estado, es decir, el valor de sus atributos.

Siguiendo con el mismo ejemplo, nuestro automvil es una instancia de la clase de objetos denominada automviles. Esta clase tiene algunos estados (marcha actual, nmero de marchas, color, potencia...) y comportamiento (frenar, girar, encender luces...) en comn. Sin embargo, el estado de cada objeto automvil es independiente y puede ser diferente al del resto de objetos automvil.

Por ltimo, la especificacin comn para todos los objetos del mismo tipo es lo que denominamos clase. Dicho de otro modo, la clase la vamos a utilizar para definir la estructura de un objeto, es decir: estado (atributos) y comportamiento (mtodos). Una vez implementada una clase podremos instanciar (crear) objetos que pertenezcan a esa clase. Asimismo, utilizaremos la misma clase para crear distintos objetos.

3. CARACTERSTICAS DE LOS SISTEMAS ORIENTACIN A OBJETOS (OO) 3.1. ENCAPSULACIN Se trata de la tcnica de ocultar la implementacin interna de un objeto, es decir, cmo est construido y de qu se compone.

4

Conceptos de la programacin orientada a objetosLos atributos de un objeto deben encontrarse ocultos al resto de los objetos, esto es, no podemos acceder directamente a dichos atributos para modificar su estado o consultarlo. Para acceder a los atributos de un objeto debemos utilizar mtodos. Normalmente, un objeto ofrece una parte pblica que ser utilizada por otros objetos para interactuar entre s, pero tambin contiene una parte oculta para encapsular los detalles de implementacin del objeto. Por tanto, podemos ver un objeto como una caja negra que tiene un estado determinado que podemos conocer y cambiar mediante una serie de mtodos pblicos que representan la interfaz del objeto. Como los atributos y la implementacin de cada objeto queda oculta a los dems objetos que interaccionan en el programa, se favorece la proteccin de los datos y la localizacin de errores en los programas (ya que cada objeto est altamente especializado y slo se encarga de su tarea). Esto consigue una mayor modularidad y facilita el diseo en equipo de programas y la reutilizacin de clases (componentes), ya que podemos escribir cdigo de manera independiente a la construccin de los diferentes objetos que vamos a utilizar. Adicionalmente, ocultando los detalles de implementacin, podremos realizar cambios en el cdigo interno de los objetos sin que ello afecte a otros objetos que los utilicen o dependan de ellos. 3.2. ABSTRACCIN Es la capacidad de ignorar los aspectos de implementacin de los objetos en los pasos iniciales, con lo que slo necesitamos conocer qu es lo que hace un objeto, y no cmo lo hace, para definir un objeto y establecer las relaciones de ste con otros objetos.

Cuando necesitemos indicarle al objeto automvil que acelere, no nos interesa conocer cmo realiza el objeto este proceso internamente (a travs de un cambio de marcha, mayor consumo de combustible, etc.) sino nicamente el resultado de acelerar, es decir, el resultado de indicarle que realice dicho comportamiento.

En definitiva, un objeto lo podemos representar como dos circunferencias: una interna que contiene todos los detalles de implementacin (variables y mtodos privados) y que permanece oculta al resto de objetos, y otra circunferencia concntrica externa, que representa lo que el objeto muestra al mundo exterior, la interfaz pblica que permite interactuar con l.

5

Conceptos de la programacin orientada a objetos

Atributos y mtodos privados (encapsulados)

Mtodos pblicos (interfaz del objeto)

Como conclusin, podemos decir que no es necesario entender la implementacin interna de un objeto para poder utilizarlo. 3.3. HERENCIA Es el mecanismo mediante el cual podemos reutilizar clases ya definidas. As, una vez definida una clase, podemos usarla como base para generar clases ms complicadas o especializadas. Es decir, los mtodos y atributos de una clase pueden transmitirse a las clases que descienden de ella. Como la clase hija puede aadir atributos, mtodos y redefinir los mtodos de la clase padre, podemos ver la herencia como una sucesiva especializacin de las clases. La clase de la que se hereda se denomina clase padre o superclase, y la clase que hereda se denomina clase hija o subclase.

Un turismo y una limusina son distintos tipos de automviles. En una aplicacin orientada a objetos, el turismo y la limusina podran ser subclases de la clase automvil. El turismo y la limusina comparten los atributos velocidad actual, marcha actual, nmero de plazas, etc. definidos en la clase automvil. Igualmente, cada subclase tambin hereda el mismo comportamiento definido en la superclase, por lo que, un turismo y una limusina tambin pueden realizar las acciones (mtodos) definidos en la clase automvil: frenar, cambiar de marcha, girar, etc.

Para verificar que la herencia entre dos clases es correcta, debemos hacernos la pregunta es un tipo de...?.

En nuestro ejemplo tenemos una clase limusina que hereda de la clase automvil. Esta herencia contesta claramente a esta pregunta: una limusina es tambin un automvil?: cierto.

Por otra parte, cada subclase puede definir atributos y mtodos propios para ella que permiten diferenciar a la subclase de su superclase.

Una limusina puede incluir un telfono incorporado, una nevera o una televisin, caractersticas que no tiene un automvil normal.

Adems, las subclases tambin pueden sobrescribir mtodos de la superclase para proporcionar un comportamiento especial.

6

Conceptos de la programacin orientada a objetos

La clase automvil puede contener un mtodo ObtenerNmeroDeMarchas() que siempre devuelva 5, mientras que un frmula 1 puede tener hasta 7 marchas, por lo que sobrescribira este mtodo para devolver 7 en lugar de 5.

No hay lmite en cuanto al nivel de herencia. Esto da lugar a una jerarqua de clases.

Podramos seguir definiendo nuevas clases que hereden de la clase Turismo, por ejemplo, las clases Monovolumen o Familiar.

La herencia puede ser simple, si la clase hija hereda de una nica clase padre, o mltiple, si hereda de varias clases1. Por ltimo, tambin podemos definir clases abstractas, que son clases que definen comportamientos genricos y en las que algunos mtodos no han sido implementados (son mtodos abstractos). El comportamiento de estos mtodos es totalmente libre para las subclases que hereden de sta y que debern implementar dichos mtodos abstractos para poder ser instanciadas.

Ejemplo de jerarqua de clases (herencia simple): Automvil

Turismo

Limusina

Familiar

Monovolumen

1

El lenguaje que usaremos en la programacin de las pginas ASP.NET de este manual, C#, soporta

herencia simple.

7

Conceptos de la programacin orientada a objetos3.4. POLIMORFISMO Es otra ms de las caractersticas propias de la POO. Expresa la posibilidad de que el mismo mensaje, enviado a objetos diferentes, ejecute mtodos distintos. Por lo tanto, es posible definir operaciones con el mismo nombre dentro de clases distintas, donde cada operacin tendr la implementacin necesaria y propia para cada clase. Esto nos permite crear un interfaz comn para una serie de clases.

Por ejemplo, supongamos que tenemos en nuestra aplicacin, una clase Enteros para modelar un nmero entero, y una clase Matrices, para modelar una matriz matemtica. Ambas clases necesitarn saber cmo se suman (cmo se suman dos objetos enteros y cmo lo hacen dos objetos matrices). Podemos definir un mtodo suma() para la clase Enteros y otro mtodo suma() para la clase Matrices (ambas clases comparten el mismo nombre para esa operacin pero la implementacin de estos mtodos ser distinta en cada clase, ya que no es lo mismo sumar enteros que matrices).

4. MENSAJES Y MTODOS. SOBRECARGA 4.1. MENSAJES Los mensajes son el mecanismo mediante el cual dos objetos pueden interactuar, comunicarse entre s. Un objeto solitario generalmente no es muy til. Casi siempre aparece como un componente de un programa mayor o una aplicacin que contiene muchos otros objetos. A travs de la interaccin de esos objetos, conseguimos una funcionalidad mayor. Los objetos interactan y se comunican mediante el envo de mensajes. As, cuando un objeto A quiere que otro objeto B realice una accin (denominado mtodo de la interfaz de B), el objeto A enva un mensaje al objeto B. Por tanto, un mensaje enviado a un objeto representa la invocacin de un determinado mtodo sobre dicho objeto, es decir, la ejecucin de una operacin sobre el objeto. De esta forma, los dos objetos implicados se comunican, ya que la ejecucin de ese mtodo devolver el estado del objeto invocado o lo modificar (cambiar su estado).

8

Conceptos de la programacin orientada a objetos4.2. MTODOS Las acciones a los mensajes a los que un objeto puede responder representan el comportamiento, es decir, son los mtodos que dicho objeto puede realizar.

En nuestro ejemplo, el objeto automvil es capaz de realizar la accin de cambiar de marcha, pero necesita de otro objeto (por ejemplo, un objeto persona) que interacte con l, que le indique la accin a realizar (tambin podr frenar, acelerar, etc.), y adems necesitar recibir la marcha a la que deseamos cambiar.

Por tanto, para interactuar dos objetos se necesita enviar un mensaje que debe especificar: El objeto al que vamos a enviar el mensaje. El nombre del mtodo (accin o comportamiento que queremos que realice). Los parmetros necesarios para el mtodo en cuestin.

Objeto Nombre del mtodo Parmetros

El objeto automvil. Cambiar de marcha en nuestro automvil, etc. La marcha a la que deseamos cambiar.

Como ya hemos comentado anteriormente, los mtodos son las acciones que se pueden realizar con los objetos. No obstante, tambin podemos considerar un mtodo como la implementacin de un mensaje. Dentro de un objeto existen mtodos de uso interno (ocultos o privados), y mtodos pblicos, que constituyen la interfaz del objeto con el resto de objetos con quienes puede interaccionar. Cuando un objeto le enva un mensaje a otro, se produce la llamada o invocacin de un mtodo de dicho objeto. Por otra parte, los mtodos consultan o modifican el estado de un objeto. Son funciones dentro de un objeto y, como tales, pueden retornar un valor (informacin sobre el estado del objeto), o realizar una accin sobre el estado del mismo. 4.3. SOBRECARGA Se trata de otra de las tcnicas usadas en la POO que hace referencia a la posibilidad de tener en una misma clase mtodos con el mismo nombre pero que difieren en el tipo de los parmetros que reciben, en el nmero de ellos o bien en el tipo y nmero de parmetros.

9

Conceptos de la programacin orientada a objetos

Por ejemplo, podemos tener en la clase Matriz dos mtodos sumar(), uno de ellos recibira un entero para sumar a la matriz y el otro mtodo sumar(), podra recibir otro objeto matriz. El primer mtodo implementa la suma matemtica entre un entero y una matriz, y el segundo, la suma de matrices.

5. MODELO DE OBJETOS Y RELACIONES ENTRE CLASES Una vez definido e identificado el problema que deseamos solucionar en nuestra aplicacin, debemos realizar una representacin lgica de los objetos que forman parte del problema en el mundo real y utilizar en nuestro programa estos objetos computacionales (objetos dentro de nuestro cdigo), y las relaciones existentes entre dichos objetos, todo ello para que nuestra aplicacin funcione adecuadamente. Por tanto, debemos aplicar los principios de la POO que hemos introducido en los apartados anteriores: abstraccin, encapsulacin, herencia y polimorfismo. Cada clase en nuestra aplicacin estar especializada en una funcin o tarea especfica. No obstante, para ofrecer una mayor funcionalidad y realizar tareas ms complejas es necesario que exista una relacin entre distintas clases, es decir, una forma de interaccin o comunicacin entre ellas. As, una clase puede relacionarse con otra a travs de: Una relacin de composicin: una clase est compuesta de otras clases. Esto ocurre cuando los atributos de una clase se implementan como objetos de otra clase.

La clase automvil tiene atributos como son la clase puerta, motor, rueda, chasis, etc.

Una relacin de uso: una clase se relaciona con otra a travs de los mensajes que le enva, pasndole una instancia de una clase como parmetro del mtodo invocado por el mensaje.

Al invocar al mtodo suma de una matriz, le pasamos un objeto entero para que lo sume a un objeto matriz.

Una relacin de herencia: como ya adelantamos, consiste en que una clase hereda de una clase padre o superclase, obteniendo as toda la funcionalidad ofrecida por la clase padre y pudiendo aadir nuevas funcionalidades. Con esta forma de relacin conseguimos una mayor reutilizacin del cdigo y una mayor especializacin a travs de la jerarqua de clases. Las clases iniciales en esta jerarqua son ms generales y, a medida que profundizamos en la jerarqua de la descendencia, las clases hijas estn ms especializadas, implementan tareas ms concretas.

10

Conceptos de la programacin orientada a objetos6. VENTAJAS E INCONVENIENTES DE LA POO Entre las ventajas que encontramos al utilizar POO tenemos que: Facilita la reutilizacin del software, como ya hemos comentado, a travs de la herencia. Adems, la encapsulacin nos facilita el uso de objetos que no hemos implementado todava, pero de los que conocemos qu hacen. Facilita el mantenimiento de los programas y la deteccin de errores. La encapsulacin nos garantiza que las modificaciones realizadas en el ncleo de un objeto tendrn un efecto limitado y localizado, y su interfaz de comunicacin con el resto de objetos se mantendr, por lo que podremos seguir comunicndonos con l de igual forma. Las tareas de anlisis, diseo e implementacin son ms intuitivas, ya que los objetos en nuestros diseos van a representar objetos presentes en el mundo real. Por otra parte, entre las desventajas que encontramos al utilizar POO tenemos que: La curva de aprendizaje suele ser ms larga que la necesaria en la programacin estructurada, debido principalmente a que implica un cambio de mentalidad adems de aprender un nuevo lenguaje orientado a objetos. Dificultad a la hora de determinar las caractersticas de un objeto ya que debemos tener en cuenta las relaciones con otros objetos. A veces, el establecimiento de nuevas relaciones puede implicar un cambio en la definicin del objeto. Jerarquas de herencia complejas, que pueden llegar a ser confusas en el caso de la herencia mltiple (una clase puede heredar de ms de una clase).

11

Conceptos de la programacin orientada a objetos Los lenguajes de programacin orientados a objetos permiten el

recuerde_

encapsulamiento, la abstraccin, la herencia y el polimorfismo. El encapsulamiento separa la interfaz de la implementacin ocultando los datos dentro del objeto y permitiendo el acceso a los datos de dicho objeto a travs de funciones miembro (mtodos). Las subclases heredan las funciones miembro y las variables de sus clases padre, haciendo sencilla la reutilizacin de las funcionalidades de las clases padre. El polimorfismo permite crear cdigo genrico y reutilizable que podr funcionar con una amplia gama de clases diferentes.

12

Fundamentos de programacin en C#

ndice_ formacin digital

1. INTRODUCCIN ...............................................................................3 2. MI PRIMERA PGINA EN ASP.NET ....................................................4 3. SINTAXIS DE C#. DECLARACIN DE VARIABLES Y COMENTARIOS ....9 3.1. TIPOS PREDEFINIDOS ...........................................................10 3.2. TIPOS DEFINIDOS POR EL USUARIO ......................................11 3.3. DECLARACIN DE VARIABLES ................................................12 3.4. COMENTARIOS .......................................................................12 4. SENTENCIAS CONDICIONALES, BUCLES Y OPERADORES.................13 4.1. SENTENCIAS CONDICIONALES ...............................................13 4.2. BUCLES ..................................................................................14 4.3. OPERADORES .........................................................................16 5. DEFINICIN E INSTANCIACIN DE CLASES....................................18 5.1. DEFINICIN DE UNA CLASE ...................................................18 5.2. INSTANCIACIN DE UNA CLASE .............................................19 6. MANEJADORES DE EVENTOS...........................................................21 7. TRATAMIENTO DE ERRORES ...........................................................22 8. MODIFICADORES ...........................................................................23 8.1. MODIFICADORES DE ACCESO .................................................24 8.2. OTROS MODIFICADORES........................................................24

1

Fundamentos de programacin en C#1. INTRODUCCIN En este captulo realizaremos un recorrido por los fundamentos de C#. Utilizaremos dicho lenguaje a lo largo del manual por ser un lenguaje de ltima generacin, pensado para los desarrolladores web y que se adapta mejor a los estndares de C++ y Java. Antes vamos a realizar una pgina ASP.NET que muestre el famoso mensaje Hola Mundo cuando pulsemos sobre el botn incluido en la pgina, ello nos servir para ir familiarizndonos con ASP.NET y el lenguaje. Convenciones tipogrficas para el cdigo fuente: A lo largo de este manual haremos uso de programas de ejemplo, escribiendo el cdigo fuente con una tipografa determinada por la naturaleza de cada palabra: En rojo oscuro y tipo de letra Courier:

Los nombres de los controles HTML y controles web (p.ej. < >=

8

Los ficheros GLOBAL.ASAX y WEB.CONFIG. Ejemplo de manejador HTTPEn el siguiente apartado veremos las secciones principales y ms comunes en la configuracin de una aplicacin ASP.NET. 2.2. CONFIGURACIN GENERAL Esta seccin se encuentra en la etiqueta . En ella podemos indicar una serie de parmetros de configuracin genricos para la aplicacin ASP.NET. Los atributos que contiene esta etiqueta son: executionTimeout: en este atributo indicaremos el tiempo de espera en segundos que se aplicar a la ejecucin de un recurso solicitado. Si se supera este tiempo de espera, la aplicacin ASP.NET finalizar la ejecucin del recurso. El valor por defecto que presenta este atributo es de 90 segundos. maxRequestLength: este atributo muestra el tamao mximo de una peticin. Se expresa en KB y, por defecto, presenta el valor de 4096 KB. userFullyAQualifiedRedirectUrl: indica cmo se le va a devolver una URL al cliente, completa o relativa. Puede tomar los valores true o false, aunque por defecto tiene el valor false, por lo se enviar una ruta relativa. El cdigo siguiente muestra los valores que presenta por defecto esta seccin en el fichero machine.config (y que sern aplicables a todas las aplicaciones ASP.NET del servidor, si no son sobrescritos en algn fichero web.config de la aplicacin correspondiente):

9

Los ficheros GLOBAL.ASAX y WEB.CONFIG. Ejemplo de manejador HTTP2.3. CONFIGURACIN DE PGINA En el presente apartado estudiaremos la etiqueta , donde podemos controlar algunos de los comportamientos de las pginas ASP.NET. Veamos sus principales atributos: autoEventWireup: indica si los eventos de la pgina (Load, Init, UnLoad, etc.) se van a lanzar de forma automtica. Puede tomar los valores true o false. Por defecto tiene el valor true, por lo que estos eventos de la clase Page (que representa una pgina ASP.NET), se lanzarn automticamente. buffer: se utiliza para activar o desactivar el bfer de las pginas ASP.NET de la aplicacin actual. Puede tomar los valores true o false. Por defecto tiene el valor true, con lo que ASP.NET ejecuta por completo las pginas antes de enviar algo del resultado al usuario (el contenido del bfer no es enviado al navegador hasta que no se haya terminado de ejecutar la pgina). enableSessionState: permite activar o desactivar el estado de sesin a travs del objeto Session (posibilita almacenar informacin comn a la sesin actual del usuario en la aplicacin web). Puede tomar los valores true, false o readOnly (con este valor, las pginas podrn leer variables de sesin pero no modificarlas ni crear nuevas variables). Por defecto tiene el valor true. enableViewState: con este atributo podemos activar o desactivar el mantenimiento automtico de los valores de los controles web dentro de los formularios web. Por defecto tiene el valor true, por lo que los controles web mantienen su estado entre distintas recargas del formulario web. Estos atributos se corresponden con los atributos del mismo nombre de la directiva @Page, por lo que podemos sobrescribir estos valores de configuracin de la aplicacin para una pgina ASP.NET en concreto, usando en ella esta directiva. Un ejemplo de uso de la etiqueta en un fichero de configuracin podra ser:

10

Los ficheros GLOBAL.ASAX y WEB.CONFIG. Ejemplo de manejador HTTPPor ltimo, si en el fichero web.config de una aplicacin concreta deseamos sobrescribir alguno de los valores anteriores, por ejemplo, el uso del buffer, slo tenemos que incluir la etiqueta con el atributo a sobrescribir:

2.4. CONFIGURACIN DE LA SESIN Podemos configurar el estado de sesin mediante la etiqueta . Sus atributos ms comunes son: cookieless: este atributo indica si el objeto Session utilizar el mecanismo de cookies para almacenar el identificador de sesin. Puede tomar los valores true o false. Por defecto tiene el valor false, por lo que ASP.NET se apoyar en las cookies para mantener la sesin. Cuando tiene el valor true, la sesin se mantiene a travs del mecanismo de URL (el identificador de la sesin se aade a la ruta de las pginas ASP.NET solicitadas). Timeout: este atributo indica el intervalo de tiempo en minutos de inactividad para el objeto Session. Esta inactividad significa que si el usuario no actualiza o solicita una pgina durante ese tiempo, la sesin termina. Por defecto presenta el valor de 20 minutos. Tambin podemos modificar este valor en la aplicacin a travs de la propiedad Timeout del objeto Session. Por ejemplo, para aumentar el timeout de la sesin hasta 30 minutos y evitar el uso de cookies para mantener la sesin, tendramos la siguiente configuracin:

11

Los ficheros GLOBAL.ASAX y WEB.CONFIG. Ejemplo de manejador HTTP3. EJEMPLO DE MANEJADOR HTTP Los mdulos HTTP son los responsables de filtrar cada solicitud/respuesta en una aplicacin ASP.NET. As, por ejemplo, son quienes determinarn si una solicitud determinada debera ser servida al cliente desde la cach, o bien ser dirigida al manejador HTTP correspondiente. Esta seccin se encuentra en la etiqueta de los ficheros de configuracin web.config. Los manejadores HTTP son los encargados de servir las peticiones de una extensin particular dentro de ASP.NET, como puede ser la extensin de las pginas .aspx. Se encuentran en la seccin de los ficheros de configuracin XML. Dentro de esta seccin podemos aadir manejadores personalizados o bien eliminar manejadores existentes. Esto es posible porque ASP.NET se basa en una arquitectura ampliable denominada entorno de ejecucin HTTP. En el fichero web.config se indica una serie de manejadores HTTP, los bsicos para ASP.NET, que tomarn todas las aplicaciones del servidor web. Los ms comunes que podemos encontrar son los manejadores para pginas ASP.NET (extensin .aspx), para controles de usuario (extensin .ascx) y ficheros de configuracin (extensin .config). Para indicar estos manejadores, usaremos la subetiqueta de la etiqueta

. Esta etiqueta tiene los siguientes atributos: verb: contiene el tipo de verbo HTTP correspondiente al manejador que va a procesar la peticin. Estos valores pueden ser: Get, Head, Post, etc. El carcter asterisco (*) para indicar que el manejador tratar todos los verbos o acciones del protocolo HTTP. path: en este atributo indicamos la ruta del recurso que se debe tratar. Tambin acepta el carcter especial de asterisco, que generalmente se utiliza seguido de la extensin de los ficheros a tratar. type: especifica la combinacin clase/ensamblado separados por comas que implementa el manejador HTTP. En nuestro caso no usaremos assembly ya que cuando aadamos la clase manejador a nuestro proyecto le indicaremos que nos la guarde en el directorio

12

Los ficheros GLOBAL.ASAX y WEB.CONFIG. Ejemplo de manejador HTTPApp_Code; esto har que baste con incluir el nombre de la clase sin necesidad de indicar assembly. Por otra parte, podemos aadir nuestros propios manejadores incluyendo una nueva etiqueta en la seccin de los manejadores http (httpHandlers del fichero Web.config), que haga referencia a la clase que implementa nuestro manejador. La nueva clase (p.ej. miManejador.cs) que realizar las funciones de un manejador HTTP, debe implementar el interfaz System.Web.IHttpHandler. Este interfaz contiene el mtodo ProcessRequest(), que ser el mtodo responsable de procesar la solicitud que se ha asociado con el manejador. Tambin es necesario implementar la propiedad IsReusable, de slo lectura, y que simplemente devuelve el valor true. En este ejemplo, el mtodo ProcessRequest() generar cdigo HTML sencillo, que presentar una cadena de texto con un saludo.

using System; using System.Web;

namespace Componentes.Pruebas

{ {

public class miManejador:IHttpHandler

public void ProcessRequest (HttpContext entorno) { HttpResponse respuesta=entorno.Response; respuesta.Write(""); respuesta.Write("Saludos); respuesta.Write(""); } public bool IsReusable { get { return true; } } } }

13

Los ficheros GLOBAL.ASAX y WEB.CONFIG. Ejemplo de manejador HTTPEl cdigo que debemos incluir en el fichero web.config sera:

En este ejemplo, la clase del manejador es miManejador (que incluimos aadiendo un nuevo elemento clase al proyecto) y se encuentra en el espacio de nombres Componentes.Pruebas. Adems, la pgina .aspx la llamaremos pruebaManejador.aspx. Por ltimo, si solicitamos la pgina pruebaManejador.aspx, sera la clase del manejador (miManejador) la que atendera la solicitud y mostrara una pgina con el mensaje Saludos.

14

Los ficheros GLOBAL.ASAX y WEB.CONFIG. Ejemplo de manejador HTTP En ASP.NET disponemos del fichero GLOBAL.ASAX, de propsito similar al GLOBAL.ASA de ASP. Se encuentra situado en el directorio raz de nuestro servidor web o de nuestro directorio virtual, y se ejecuta al iniciarse nuestra aplicacin web. En el fichero GLOBAL.ASAX se incluye el cdigo para el tratamiento de los eventos Application_OnStart, Application_OnEnd, Session_OnStart, Session_OnEnd y Application_OnDisposed y el cdigo de inicializacin de objetos con mbito de Session y Application. La configuracin de las aplicaciones ASP.NET se basa en los ficheros XML web.config y machine.config. Estos ficheros de configuracin contienen una jerarqua anidada de etiquetas y subetiquetas XML con atributos que especifican los valores de configuracin. Se distingue entre maysculas y minsculas. Los cambios en los ficheros de configuracin se toman de forma inmediata y automtica en el sistema sin necesidad de reiniciar el servidor web o para los servicios. Podemos configurar el tiempo de ejecucin de un recurso, el timeout de la sesin, el uso de cookies para mantener la sesin, activar el uso del buffer, el mantenimiento automtico del estado de los controles web, etc. Los mdulos HTTP son los responsables de filtrar cada solicitud/respuesta en una aplicacin ASP.NET. Se indican en la etiqueta del fichero de configuracin XML web.config. Los manejadores HTTP son los encargados de servir las peticiones de una extensin particular dentro de ASP.NET, como puede ser la extensin de las pginas .aspx. Se encuentran en la seccin del fichero de configuracin XML web.config. Podemos aadir nuestros propios manejadores incluyendo una nueva etiqueta en la seccin de los manejadores HTTP, que haga referencia a la clase que implementa nuestro manejador.

recuerde_

15

Los ficheros GLOBAL.ASAX y WEB.CONFIG. Ejemplo de manejador HTTP

recuerde_

La clase del manejador HTTP debe implementar la propiedad IsReusable y el mtodo ProcessRequest() del interfaz System.Web.IHttpHandler.

16

glosario_

A ASP (Active Server Pages). Pginas activas del servidor Internet Information Server. ASP es la versin anterior a la tecnologa ASP.NET de Microsoft. API (Application Programming Interface Interfaz de programacin de aplicaciones). Es el conjunto de funciones y procedimientos que ofrece una biblioteca especfica para la comunicacin entre componentes software. ATL. (Active Template Library). Es una librera basada en templates, que se cre para realizar controles y libreras ActiveX (COM) de bajo peso. El excesivo peso que MFC aada a los ActiveX perjudicaba su distribucin desde Internet. C CLR (Common Language Runtime). Motor de ejecucin comn incluido en el paquete Microsoft .NET. Cookie. Archivo creado por un sitio de Internet para almacenar informacin en el ordenador, como por ejemplo, las preferencias de visitas a un sitio determinado. As, cuando visitamos un sitio que utiliza cookies, el sitio puede pedirle a Firefox que guarde una o ms cookies en el disco duro. CSS (Cascading Style Sheets - Hojas de Estilo en Cascada). Se utilizan para dar formato a documentos HTML o XML, separando los datos del formato de presentacin. CTS (Common Type System). Especificacin de tipos bsicos para la integracin de distintos lenguajes de programacin en Microsoft .NET (como C#, Visual Basic .NET, JScript, .NET). C#. Lenguaje creado por Microsoft para su plataforma .NET. Es parecido a C++ y Java. D DHTML (Dinamic HTML - HTML dinmico). Se forma de una conjuncin de HTML, hojas de estilo en cascada (CSS) y lenguajes de Script como JavaScript o VBScript. DLL (Dynamic Link Library - Bibliotecas de Enlace Dinmico). Es un archivo que contiene funciones que se pueden llamar desde aplicaciones u otras DLL. Los desarrolladores utilizan las DLL para poder reciclar el cdigo y aislar las diferentes tareas. Las DLL no pueden ejecutarse directamente, es necesario llamarlas desde un cdigo externo. Las DLL de Windows permiten que las aplicaciones puedan operar en el entorno de Windows.

glosario_

F Framework (Marco de trabajo). Es un esquema o estructura que puede incluir soporte de programas, bibliotecas y un lenguaje interpretado para la organizacin, desarrollo y/o la implementacin de una aplicacin. H HTML (HiperText Markup Language). Lenguaje para la creacin de pginas web relacionadas entre s por hipertexto. HTTP (HiperText Transport Protocol). Protocolo de comunicaciones utilizado por los navegadores de Internet para el acceso a recursos web, como ficheros de imgenes, vdeo, pginas HTML, pginas ASP, pginas ASPX, etc. I IIS (Internet Information Server). Es el servidor web de Microsoft. ASP.NET funciona sobre IIS 5.0. J Java. Lenguaje de programacin orientado a objetos desarrollado por Sun Microsystems. JavaScript. Lenguaje de Script desarrollado por Netscape y utilizado en los navegadores de Internet. J2EE (Java 2, Enterprise Edition). Modelo de desarrollo y aplicacin propuesto por SUN y basado en el desarrollo de componentes Java. JSP (Java Server Pages). Solucin de SUN Microsystems para el desarrollo de aplicaciones web. Se basan en la especificacin de Servlets de SUN. M MDAC (Microsoft Data Access Components). Componentes Microsoft de acceso a datos. MFC (Microsoft Fundation Classes). Librera basada en jerarqua de clases. Bsicamente encapsula el API de Windows en una forma orientada a objetos. MSIL. Lenguaje intermedio para la ejecucin de aplicaciones en Microsoft .NET.

glosario_

O ODBC (Open Database Connectivity). Es un estndar de acceso a bases de datos que utilizan los sistemas Microsoft. A travs de ODBC, un sistema Windows se puede conectar con cualquier base de datos de la que exista un driver ODBC. OleDb (Object Linking and Embedding for Databases). Enlace e incrustacin de objetos para bases de datos. Permite el acceso a datos almacenados en cualquier formato (bases de datos, hojas de clculo, archivos de texto, etc.) para el que haya un proveedor OLE DB disponible. P PHP (Personal Home Page - Procesador de Hipertexto). Las pginas PHP presentan una tcnica similar a las pginas ASP de Microsoft, es decir, las pginas HTML incluyen el cdigo PHP embebido en ellas y al ejecutarlas, se genera cdigo HTML dinmicamente. Proceso de negocio. Es un conjunto de tareas relacionadas lgicamente, que toman uno o ms tipos de entradas (Inputs), llevadas a cabo para lograr un resultado de negocio definido (Outputs). Tambin puede verse como un conjunto de actividades que colectivamente consiguen alcanzar un objetivo de negocio. Es, por ejemplo, el proceso a travs del cual una organizacin ofrece sus servicios a sus clientes. R RAD (Rapid Application Development - Desarrollo rpido de aplicaciones). Es un proceso de desarrollo de software desarrollado inicialmente en 1980. Tiende a englobar la usabilidad, la utilidad y la rapidez de ejecucin. RIA (Rich Internet Applications - Aplicaciones de Internet Enriquecidas). Son un nuevo tipo de aplicaciones con ms ventajas que las tradicionales aplicaciones web. Esta surge como una combinacin de las ventajas que ofrecen las aplicaciones web y las aplicaciones tradicionales. S Script. Es un guin o conjunto de instrucciones. Permiten la automatizacin de tareas creando pequeas utilidades. SDK (Software Development Kit - Kit de desarrollo de software). Es un conjunto de herramientas de desarrollo que le permite a un programador crear software.

glosario_

SQL (Structured Query Language - Lenguaje de consulta estructurado). Es un lenguaje normalizado que nos permite trabajar con cualquier tipo de lenguaje (ASP.NET, PHP) en combinacin con cualquier tipo de base de datos (MS Access, SQL Server, MySQL...). V VBScript (Visual Basic Script). Lenguaje de Script desarrollado por Microsoft. X XML (eXtensible Markup Language - Lenguaje de marcado extensible). Se utiliza para la construccin de documentos de datos estructurados multi-propsito.

referencias web_

Informacin y recursos para crear pginas web ASP.NET Referencia completa de todas las directivas en ASP.NET. Blog sobre ASP.NET Pgina ASP.NET con recursos

http://msdn.microsoft.com/es-es/library/fddycb06.aspx

http://msdn.microsoft.com/es-es/library/xz702w3e.aspx http://www.asp.net/es/aprender/

formativos, ejemplo, etc. de

http://www.elguille.info/NET/ASPNET/Default.aspx

bibliografa_

Esposito, Liberty,

Dino. Jesse;

Programming Horovitz, Alex.

Microsoft

ASP.NET .NET

3.5. 3.5.

Microsoft OReilly

Press. Media.

Washington. 2008. Programming Gravenstein Highway North, Sebastopol. 2008. MacDonald, Matthew. Beginning ASP.NET 3.5 in C# 2008: From Novice to Professional. United States of America. 2007. MacDonald, Matthew Szpuszta, Mario. Pro ASP.NET 3.5 in C# 2008. Apress. United States of America. 2007. Mayo, Joe. C# 3.0 Unleashed With the .NET Framework 3.5. Pearson Education. United States of America. 2008. Solis, Daniel. Illustrated C# 2008. Apress. United States of America. 2008.