Introducción a ASP.NET Índice Introducción a ASP.NET...1 1 La plataforma.net...2 1.1 Tecnologías de la Plataforma.NET...2 2 Microsoft Web Platform...4 3.NET Framework...6 3.1 Ventajas de utilizar.net...6 4 Visual Studio.NET...8 5 Qué es ASP.NET?...9 5.1 Diferencias entre páginas web estáticas y dinámicas...10 5.2 Aplicación Web ASP.NET...11 5.3 Modelo de ejecución de ASP.NET...12 6 Enlaces de consulta...14 1
2º DAM.NET IES AL-Ándalus El Microsoft.NET Framework representa un cambio importante en el modo de generar y ejecutar las aplicaciones Web. Microsoft ASP.NET es una de las múltiples tecnologías que forman parte del.net Framework. 1 La plataforma.net.net es el modelo de desarrollo de Microsoft que hace que el software sea independiente de la plataforma y de los dispositivos, y hace que los datos estén disponibles a través de Internet. El.NET Framework es la infraestructura básica subyacente de.net..net ha sido implementado desde el principio pensando en una arquitectura abierta..net es una plataforma que puede utilizarse para generar y ejecutar la siguiente generación de aplicaciones Windows y aplicaciones Web. El objetivo de la plataforma.net de Microsoft es simplificar el desarrollo Web. Está formada por las siguientes tecnologías principales:.net Framework Windows Server System Servicios building block fundamentales H e r ra m ie n ta s d e l d e s a rro lla d o r B a se s d e d a to s Visual Studio.NET C lie n te s A p lica c io n e s W e b A SP.N E T Se rv icio s La plataforma.net proporciona: W eb XM L.N E T F r a m e w o rk Un modelo de programación coherente e independiente del lenguaje para todas las capas o niveles de una aplicación. Una interoperabilidad transparente entre tecnologías. Una fácil migración desde tecnologías existentes. Un completo soporte de tecnologías de Internet independientes de la plataforma y basadas en estándares, incluyendo Hypertext Transfer Protocol (HTTP), Extensible Markup Language (XML) y Simple Object Access Protocol (SOAP). 1.1 Tecnologías de la Plataforma.NET.NET Framework se basa en un nuevo entorno de ejecución de lenguaje común (CLR - Common Language Runtime). Este motor de ejecución proporciona un 2
conjunto de servicios comunes para los proyectos generados en Visual Studio.NET, con independencia del lenguaje. Servicios.NET Building Block. Los servicios de base son un conjunto de servicios Web XML que traspasan de las aplicaciones a los usuarios el control sobre los datos de los usuarios. Estos servicios permiten la personalización y garantizan la coherencia en aplicaciones, servicios y dispositivos. Microsoft ha desarrollado en torno a la identidad, la notificación y el almacenamiento servicios privados y seguros que pueden servir de base para otros servicios Web XML y experiencias.net. Microsoft Passport es la iniciativa de Microsoft.NET para facilitar la integración de distintas aplicaciones. Permite a las empresas desarrollar y ofrecer servicios Web XML distribuidos en una amplia gama de aplicaciones, dispositivos y servicios complementarios, todos ellos basados en una experiencia de Internet común. El servicio de inicio de sesión único (Single Sign-In, SSI) de Microsoft Passport permite a las empresas ofrecer a sus clientes un sistema rápido y práctico de iniciar una sesión y realizar transacciones de forma segura, ya que pueden emplear un solo nombre y contraseña en todos los sitios Web a los que accedan. Además, los nombres de inicio de sesión de Passport se asignan a personas y no a sistemas, lo que significa que los miembros pueden acceder a sitios Passport en cualquier momento y desde muchos tipos de dispositivos. El uso de Passport en su sitio Web le permitirá: Aumentar el tráfico al simplificar el proceso de inicio de sesión y registro. Aumentar el nivel de retención de clientes al ofrecer contenidos personalizados a partir de datos de perfiles en Passport. Aumentar las ventas al simplificar el proceso de compra. Ofrecer a millones de miembros de Passport un sistema más fácil y seguro de inicio de sesión y compra. Visual Studio.NET ofrece un entorno de desarrollo de alto nivel para desarrollar aplicaciones que se ejecutan sobre el.net Framework. Proporciona las tecnologías fundamentales para simplificar la creación, implantación y evolución constante de aplicaciones y Servicios Web seguros, escalables y de alta disponibilidad. Servidores.NET Enterprise Servers proporcionan escalabilidad, fiabilidad, gestión e integración dentro de la empresa y entre organizaciones. Algunos de estos servidores son: Microsoft SQL Server, Microsoft Exchange Server, Microsoft Application Center, Microsoft BizTalk Server, Microsoft Commerce Server, 3
Microsoft Internet Security and Acceleration Server (ISA Server). 2 Microsoft Web Platform Microsoft Web Platform (http://www.microsoft.com/web/), reúne el conjunto de herramientas, servidores y tecnologías; para crear y alojar sitios web, servicios y aplicaciones. Desde esa url podemos descargar Microsoft Web Platform Installer, que consiste en un instalador sencillo que nos permite (una vez descargado y cada vez que lo ejecutemos) disponer de la última versión de Microsoft Web Platform. Lo que hace es conectarse a internet y revisar qué herramientas tenemos instaladas, qué actualizaciones hay para ellas; y cuáles hay disponibles (incluidas las herramientas, el servidor, la base de datos, etc.) En esta captura puedes ver la pantalla de bienvenida del Installer mostrándonos lo nuevo... En esta otra, podéis ver como muestra las distintas herramientas de la plataforma web de Microsoft: 4
Y, por último, algunas aplicaciones web desarrolladas con la plataforma, que nos permiten descargar para revisar y aprender de su implementación: También podemos descargar estas aplicaciones sin ayuda del instalador desde http://www.microsoft.com/web/gallery/ Consulta esta url para obtener una información más detallada de esta plataforma: http://www.microsoft.com/web/platform/framework.aspx/es-es 5
3.NET Framework El.NET Framework proporciona la base sobre la que se desarrollan y ejecutan las aplicaciones y los servicios Web XML. La naturaleza unificada del.net Framework significa que todas las aplicaciones, tanto si son aplicaciones Windows, aplicaciones Web o servicios Web XML, se desarrollan utilizando un conjunto de herramientas y código comunes, y se integran fácilmente entre sí. El.NET Framework está formado por: El Common Language Runtime (de ahora en adelante, CLR). El CLR gestiona los servicios en tiempo de ejecución, incluyendo la integración de lenguajes, la seguridad y la gestión de memoria. Durante el desarrollo, el CLR proporciona funcionalidades necesarias para simplificar el desarrollo. Biblioteca de clases. Las bibliotecas de clases proporcionan código reutilizable para las tareas más habituales, incluyendo el acceso a datos, el desarrollo de servicios Web XML, Web Forms y Windows Forms. 3.1 Ventajas de utilizar.net El.NET Framework fue desarrollado para superar varias limitaciones con las que los desarrolladores se encontraban al generar aplicaciones Web, y utiliza la Internet como medio para solventar estas limitaciones. Incluso con la llegada de una red global y fácilmente accesible para compartir información (Internet), algunas aplicaciones funcionan en más de un tipo de cliente o tienen la capacidad de interactuar transparentemente con otras aplicaciones. Esta limitación lleva a dos importantes problemas con los que los desarrolladores deben enfrentarse: Generalmente, los desarrolladores deben limitar su ámbito. Los desarrolladores emplean la mayor parte de su tiempo en escribir de nuevo las aplicaciones para que funcionen en cada tipo de plataforma y cliente, en lugar de emplear su tiempo en diseñar nuevas aplicaciones. El.NET Framework soluciona los dos problemas anteriores mediante el CLR, que es independiente del lenguaje y de la plataforma, y con el uso del estándar de mercado XML. La independencia del lenguaje de.net permite a los desarrolladores generar una aplicación en cualquier lenguaje basado en.net y saber que la aplicación Web 6
funcionará en cualquier cliente que soporte.net. El CLR también controla gran parte de la infraestructura de la aplicación, de modo que los desarrolladores pueden concentrarse en la lógica específica de la aplicación. Los Servicios Web XML utilizan XML para enviar datos, garantizando así que cualquier cliente con capacidad XML puede recibir esos datos. Como XML es un estándar abierto, la mayoría de clientes modernos, como los sistemas operativos de PCs, teléfonos móviles, asistentes digitales personales (PDAs) y consolas de juegos, pueden aceptar datos XML. Con esta captura, podemos recordar la composición del frameword.net y determinar dónde se encuentra ASP.NET dentro de él. V is u a l B a s i c B i b liol t e c a C ++ C # S e r v ici c io s W e b X M L P e r l P y t h o n A S P. N E T A D O. N E T y X M L I n t e r f a z d e u s u a r i o d e c la s e s d e. N E T F r a m e w o r k C o m m o n L a n g u a g e R u n t imm e M e s s a g e Q u e u in g C O M + ( T r a n s a c c i o n e s, P a r t ic i o n e s, A g r u p a c ió i n d e o b j e t o s ) I IS I S W M I W i n 3 2 Ventajas de utilizar.net Framework: Basado en estándares y prácticas Web..NET Framework soporta completamente las tecnologías existentes de Internet, incluyendo HTML (Hypertext Markup Language), HTTP, XML, SOAP (Simple Object Access Protocol), XSLT (Extensible Stylesheet Language Transformation), XPath (XML Path Language) y otros estándares Web. Extensible. La jerarquía del.net Framework no queda oculta al desarrollador. Podemos acceder y extender las clases.net (a menos que estén protegidas) mediante la herencia. También podemos implementar la herencia entre múltiples lenguajes. 7
Fácil de utilizar por los desarrolladores. En el.net Framework, el código está organizado en espacios de nombres jerárquicos y en clases. El.NET Framework proporciona un sistema de tipos comunes, conocido también como sistema de tipos unificados, que puede ser utilizado por cualquier lenguaje compatible con.net. En el sistema de tipos unificados, todos los elementos del lenguaje son objetos. Estos objetos pueden ser utilizados por cualquier aplicación.net escrita en cualquier lenguaje basado en.net. Diseñado utilizando modelos de aplicaciones unificados. La funcionalidad de una clase.net está disponible desde cualquier lenguaje compatible con.net o modelo de programación. Por tanto, la misma pieza de código puede ser utilizada por aplicaciones Windows, aplicaciones Web y Servicios Web XML. 4 Visual Studio.NET Visual Studio.NET constituye el núcleo del desarrollo.net. Es un completo entorno de desarrollo en el que podemos diseñar, desarrollar, depurar e implementar nuestras aplicaciones.net y nuestros Servicios Web XML. H e r r a m i e n t a s W e b F o r m s H e r r a m i e n t a s W i n d o w s F o r m s M ú lt i p l e s L e n g u a j e s V is u a l S t u d i o. N E T P r o c e s o d e e r r o r e s H e r r a m i e n t a s S e r v i c i o s W e b A c c e s o a d a t o s D is e ñ a r D e s a r r o l l a r D e p u r a r I m p l a n t a r Podemos obtener Visual Web Developer en su versión Express (gratuita) y específica para el desarrollo de aplicaciones web desde esta url: http://msdn.microsoft.com/es-es/express/aa974185.aspx 8
5 Qué es ASP.NET? ASP.NET es un marco de programación basado en el.net Framework que se utiliza para generar aplicaciones Web. Los formularios Web Forms ASP.NET, que forman parte de una aplicación Web ASP.NET, proporcionan un modo fácil de generar sitios Web dinámicos. ASP.NET también incluye la tecnología necesaria para generar servicios Web XML, que proporcionan los bloques básicos para construir aplicaciones distribuidas basadas en la Web. Utilizaremos la tecnología ASP.NET para generar páginas Web dinámicas. ASP.NET se ejecuta en el servidor Web y proporciona una forma de desarrollar sitios Web dinámicos, personalizados y de rico contenido. Desarrollar aplicaciones Web ASP.NET sobre el.net Framework es similar a desarrollar aplicaciones Windows. El componente fundamental de ASP.NET es el formulario Web Form. Un formulario Web Form es la página Web que los usuarios visualizan en un navegador. Una aplicación Web ASP.NET consta de uno o más formularios Web Form. Un Web Form es una página dinámica que puede acceder a recursos del servidor. Por ejemplo, una página Web tradicional puede ejecutar scripts en el cliente para realizar tareas básicas. En cambio, un formulario Web Form ASP.NET también puede ejecutar código en el lado servidor para acceder a una base de datos, generar formularios Web Forms adicionales, o aprovechar la seguridad incorporada en el servidor. Además, como un formulario Web Form ASP.NET no depende de utilizar scripts en el cliente, no depende del tipo de navegador del cliente o del sistema operativo. Esta independencia permite desarrollar un único formulario Web Form que puede ser visualizado prácticamente en todos los dispositivos que dispongan de acceso a Internet y de un navegador Web. Debido a que ASP.NET forma parte del.net Framework, podemos desarrollar aplicaciones Web ASP.NET en cualquier lenguaje basado en.net. La tecnología ASP.NET también permite la creación de servicios Web XML. Los servicios Web XML son aplicaciones distribuidas que utilizan XML para transferir información entre clientes, aplicaciones y otros servicios Web XML. 9
5.1 Diferencias entre páginas web estáticas y dinámicas. En los siguientes gráficos, intentamos resumir las peticiones que se realizan a un servidor Web, dependiendo del tipo de página web del que se trate. Las páginas web más sencillas, son las estáticas (.htm o.html): Siguiendo con los esquemas, he aquí el correspondiente a una petición de página en la que hay incrustados scripts escritos en lenguaje del lado del cliente: Como puedes observar no requiere nada distinto a lo del supuesto anterior. La diferencia sería que en este caso se harían llamadas al intérprete de JavaScript 10
incluido en los navegadores, y/o a eventuales plugins necesarios para interpretar otros tipos de script. Y por último, el esquema más complejo: un ejemplo de convivencia en un mismo documento de varios scripts y varios tipos de lenguajes. 5.2 Aplicación Web ASP.NET Una aplicación Web ASP.NET contiene distintas partes y componentes. Crear aplicaciones Web ASP.NET implica utilizar y trabajar con todos ellos. Las partes de una aplicación Web ASP.NET incluyen: Formularios Web Forms o páginas.aspx. Los formularios Web Forms y las páginas.aspx proporcionan la interfaz de usuario para la aplicación Web. Páginas con código trasero. Las páginas con código trasero están asociadas a los formularios Web Forms y contienen el código del servidor para el formulario Web Form. El código de estas páginas puede ser C#, Visual Basic.NET, etc. Archivos de configuración. Los archivos de configuración son archivos XML que definen la configuración predeterminada para la aplicación Web y para el servidor Web. Cada aplicación Web tiene un archivo de configuración Web.config. Además, cada servidor Web tiene un archivo machine.config. 11
Archivo Global.asax. Los archivos Global.asax contienen el código necesario para responder a los eventos a nivel de aplicación provocados por ASP.NET. Enlaces a servicios Web XML. Los enlaces a servicios Web XML permiten a la aplicación Web enviar y recibir datos de un servicio Web XML. Conectividad a bases de datos. La conectividad a bases de datos permite a la aplicación Web transferir datos desde y hacia fuentes de base de datos. Caché. El uso de caché permite a la aplicación Web devolver más rápidamente formularios Web Forms y datos tras la primera petición. C lie n t e s I ni nt te er rn ne et t C a c h é d e S a l i d a S e r v i d o r W e b A S P. N E T P a g e 1. a s p x P a g e 2. a s p x W e b F o r m s P á g i n a s c ó d i g o t r a s e r o g l o b a l. a s a x W e b. c o n f i g m a c h i n e. c o n f i g S e r v i c i o s W e b D a t o s X M L B a s e d e d a t o s C o m p o n e n t e s 5.3 Modelo de ejecución de ASP.NET Es interesante conocer cómo se comporta ASP.NET ante dos peticiones consecutivas de la misma página: Cuando el cliente solicita una página Web por primera vez, se genera el siguiente conjunto de eventos: 1. El navegador cliente envía una solicitud GET HTTP al servidor. 2. El intérprete (o parseador) ASP.NET interpreta el código fuente. 3. Si el código no se ha compilado todavía en una biblioteca de enlace dinámico (DLL), ASP.NET invoca el compilador. 4. El CLR carga y ejecuta el código Microsoft intermediate language (MSIL). 12
Cuando el usuario invoca la misma página Web por segunda vez, se genera el siguiente conjunto de eventos: 1. El navegador cliente envía una solicitud GET HTTP al servidor. 2. El CLR carga y ejecuta inmediatamente el código MSIL que ya se ha compilado durante el primer intento de acceso del usuario. 13
6 Enlaces de consulta Sitio oficial de Microsoft ASP.NET. http://www.asp.net/ Sitio web de ASP.NET en español. http://www.es-asp.net/ Microsoft Web Platform. http://www.microsoft.com/web/ 14