Vous êtes sur la page 1sur 23

PROGRAMACIN WEB: INTRODUCCIN A ASP.

NET

ngel Oreja Martn Ana de la Viuda Lpez

Departamento de Informtica y Automtica Universidad de Salamanca

Resumen
El presente documento contiene una breve introduccin a ASP.NET, lenguaje de programacin de pginas web dinmicas, as como una descripcin de algunas caractersticas de dicho lenguaje.

Abstract
The present document contains a short introduction to ASP.NET, a programming language of dynamic web sites, as well as a description of certain features of this language.

ii

Error! No se encuentra el origen de la referencia.

Tabla de Contenidos
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. INTRODUCCIN ....................................................................................................... 1 EVOLUCIN DE ASP.NET....................................................................................... 1 ASP FRENTE ASP.NET............................................................................................. 2 ARQUITECTURA ASP.NET .................................................................................... 3 CARACTERSTICAS PRINCIPALES DE ASP.NET ............................................... 3 CONFIGURACIN DE ASP.NET ............................................................................. 4 APLICACIONES EN ASP.NET ................................................................................ 5 FORMULARIOS WEB FORMS Y SERVICIOS WEB XML ................................... 5 COMPATIBILIDAD DE LENGUAJES ..................................................................... 6 BLOQUES DE CDIGO EN ASP.NET..................................................................... 7 IMPLEMENTAR UNA APLICACIN WEB ASP.NET........................................... 8 ELEMENTOS DE LAS APLICACIONES WEB ASP.NET ..................................... 8 SEGURIDAD PARA APLICACIONES WEB ASP.NET .......................................... 9 SEGURIDAD DE LAS APLICACIONES WEB EN IIS Y ASP.NET..................... 10 CONTROL DE ERRORES EN ASP.NET................................................................ 11 PERSONALIZAR PGINAS DE ERROR...................................................... 12 UN PRIMER EJEMPLO CON WEB MATRIX Y ASP.NET.......................... 15 ENTORNOS DE DESARROLLO: ASP.NET WEB MATRIX PROJECT.............. 12 CONCLUSIONES ..................................................................................................... 17 GLOSARIO ............................................................................................................... 18 BIBLIOGRAFA ....................................................................................................... 19

15.1. 16.1.

iii

1.

INTRODUCCIN

Con la aparicin de la plataforma Microsoft .NET se ha iniciado una nueva era en el campo de la programacin de aplicaciones que conducir la Internet de nueva generacin. La estrategia .NET representa un conjunto de servicios y bibliotecas unificado y orientado a objetos, tendiente a crear aplicaciones web distribuidas, que englobe el nuevo papel de los programas basados y dirigidos a la red. Dentro de esta tecnologa .NET, Microsoft incluye ASP.NET, sustituto de las Active Server Pages (ASP), definido como un marco de trabajo de programacin generado en Common Language Runtime, capaz de lograr el desarrollo de aplicaciones web ms dinmicas, con un cdigo ms claro y limpio (por ende reusable), multiplataforma y en definitiva, ms simple ya que permite la creacin automtica de alguna de las tareas mas comunes para un creador web. Se trata de un entorno compilado que permite crear aplicaciones en cualquier lenguaje compatible con .NET, como Visual Basic .NET, C# y JScript .NET. Adems, .NET Framework est disponible en su totalidad para cualquier aplicacin ASP.NET. Esto conlleva que los programadores pueden aprovechar fcilmente las ventajas de estas tecnologas, que incluyen el entorno administrado, seguridad de tipos, herencia, etc. ASP.NET se ha diseado para funcionar sin problemas con editores HTML WYSIWYG y otras herramientas de programacin como Microsoft Visual Studio .NET. Todo esto, adems de hacer ms fcil la programacin Web, ofrece todas las ventajas de estas herramientas, con una GUI que los programadores puede utilizar para ubicar controles de servidor en una pgina Web e integrar completamente la compatibilidad con la depuracin. A la hora de crear una aplicacin ASP.NET, los programadores pueden utilizar formularios Web Forms o servicios Web XML o combinarlas de la manera que ms les convenga. Las dos caractersticas son compatibles con la misma infraestructura, que permite utilizar esquemas de autenticacin, almacenar en cach datos que se utilizan con frecuencia y personalizar la configuracin de la aplicacin, entre otras muchas cosas. 2. EVOLUCIN DE ASP.NET

Durante los ltimos aos, ASP ha evolucionado desde su primera versin. La versin 1.5 constituyo la primera de dichas evoluciones a la que sigui la versin 2.0 y posteriormente, la 3.0, la ms completa de ASP y la que menos tiempo dur, ya que la evolucin a ASP.NET fue muy rpida. ASP.NET comenz a nacer en el ltimo cuarto del ao 2000, y sali finalmente al mercado en el ao 2001 como nueva versin. La evolucin y necesidades del mercado llevaron a ASP a evolucionar y crear un concepto nuevo dentro de ASP, por lo que su nueva versin no se denomin ASP 4, sino ASP.NET, ya que los cambios fueron notables en cuanto a la filosofa y aplicaciones en las que se basa. La primera preversin de lo que hoy es ASP.NET se denomin ASP+, nombre que adquiri la versin preBeta de ASP. Una vez que apareci la primera versin Beta de ASP+, esta se denomino ASP.NET.

-1-

PROGRAMACIN WEB: INTRODUCCIN A ASP.NET

3.

ASP FRENTE ASP.NET

ASP.NET es ms que una simple versin de ASP debido a sus numerosas ventajas y diferencias. Mientras que con ASP no se podan declarar variables, en ASP.NET se deben declarar las variables a usar con los lenguajes de programacin soportados bajo .NET. ASP.NET intenta a su vez solucionar los principales problemas de las pginas ASP: Las aplicaciones Cliente/Servidor en ASP son difciles de mantener. El cdigo ASP mezclado con la interfaz de usuario hace que muchas veces se pierda demasiado tiempo actualizando toda la aplicacin, no pudiendo trabajar simplemente con el ncleo del cdigo. ASP+ viene a solucionar este dficit, al permitir separar interfaz de cdigo. La mayora de todo lo que funciona en una pgina web debe ser creado por el desarrollador. Cada formulario que ingresa datos a una base de datos conlleva varias lneas de cdigo, obligando al desarrollador a generar desde cero cada aplicacin. El rico entorno de .NET Framework, brinda una extensa cantidad de controles predefinidos, que permiten crear aplicaciones potentes, simplemente escribiendo unas pocas lneas de cdigo. ASP.NET incorpora soporte nativo para C#, Visual Basic y JScript, logrando as dejar atrs las limitaciones ASP que slo permita cdigo en VBScript y JScript.

Un cambio radical lo constituye el hecho de que ASP.NET es un lenguaje totalmente orientado a objetos. Otra de las diferencias ms notables entre ASP y ASP.NET, reside en que ASP es un lenguaje interpretado por el servidor, mientras que ASP.NET es un lenguaje que se compila en el servidor antes de devolver la informacin al cliente. Adems, al contrario que el motor de ejecucin a ASP, ASP.NET utiliza el entorno comn de ejecucin (CLR) que ofrece la estructura .NET y que se encarga de la ejecucin del cdigo. Dicho modulo CLR permite que los objetos creados en distintos lenguajes puedan interactuar entre si, por lo que elimina la barrera del lenguaje y aumenta la eficacia del desarrollo de la aplicacin web. Hay algunas diferencias estructurales entre ASP y ASP.NET en lo que concierne al diseo de las pginas y el estilo de la escritura de cdigo. ASP.NET no es totalmente compatible con las versiones anteriores; casi todas las pginas ASP existentes debern modificarse en alguna medida para que puedan ejecutarse bajo ASP.NET. Pero estos cambios en la mayora de los casos, slo implicar algunas lneas de cdigo. A pesar de todo esto, ASP y ASP.NET pueden ejecutarse simultneamente en un servidor web de servicios de Internet Information Server (IIS) sin que interfieran entre s. Slo los archivos con la extensin .aspx son procesados por ASP.NET; los que tengan la extensin .asp seguirn siendo procesados por el motor ASP. Sin embargo, lo que no se puede hacer es introducir dentro de una misma pgina web, cdigo escrito en ASP y en ASP.NET indistintamente.

Oreja y de la Viuda

4.

ARQUITECTURA ASP.NET

Como se muestra en la ilustracin, todos los clientes Web se comunican con las aplicaciones ASP.NET a travs de Servicios de Microsoft Internet Information Server (IIS). IIS descifra y, opcionalmente, realiza la autenticacin de la solicitud. Si la opcin Permitir annimos est activada, no se efecta ninguna autenticacin. IIS tambin busca el recurso solicitado (como una aplicacin ASP.NET) y, si se autoriza al cliente, devuelve el recurso correspondiente.
(Figura 1: Arquitectura ASP.NET)

Adems de las caractersticas de seguridad integradas de ASP.NET, una aplicacin ASP.NET puede utilizar caractersticas de seguridad de bajo nivel de .NET Framework. 5. CARACTERSTICAS PRINCIPALES DE ASP.NET

ASP.NET ofrece ventajas importantes acerca de los modelos de programacin anteriores:

Mejor rendimiento. ASP.NET es un cdigo de Common Language Runtime compilado que se ejecuta en el servidor. A diferencia de sus predecesores, ASP.NET puede aprovechar las ventajas del enlace anticipado, la compilacin just-in-time, la optimizacin nativa y los servicios de cach desde el primer momento. Esto supone un incremento espectacular del rendimiento antes de siquiera escribir una lnea de cdigo. Compatibilidad con herramientas de primer nivel. El marco de trabajo de ASP.NET se complementa con un diseador y una caja de herramientas muy completos en el entorno integrado de programacin (Integrated Development Environment, IDE) de Visual Studio. La edicin WYSIWYG, los controles de servidor de arrastrar y colocar y la implementacin automtica son slo algunas de las caractersticas que proporciona esta eficaz herramienta. Eficacia y flexibilidad. Debido a que ASP.NET se basa en Common Language Runtime, la eficacia y la flexibilidad de toda esa plataforma se encuentra disponible para los programadores de aplicaciones Web. La biblioteca de clases de .NET Framework, la Mensajera y las soluciones de Acceso a datos se encuentran accesibles desde el Web de manera uniforme. ASP.NET es tambin independiente del lenguaje, por lo que puede elegir el lenguaje que mejor se adapte a la aplicacin o dividir la aplicacin en varios lenguajes. Adems, la interoperabilidad de Common Language Runtime garantiza que la inversin existente en programacin basada en COM se conserva al migrar a ASP.NET. Simplicidad. ASP.NET facilita la realizacin de tareas comunes, desde el sencillo envo de formularios y la autenticacin del cliente hasta la implementacin y la configuracin de sitios. Por ejemplo, el marco de trabajo de pgina de ASP.NET permite generar interfaces de usuario, que separan claramente la lgica de aplicacin del cdigo de presentacin, y controlar eventos en un sencillo modelo de

PROGRAMACIN WEB: INTRODUCCIN A ASP.NET

procesamiento de formularios de tipo Visual Basic. Adems, Common Language Runtime simplifica la programacin, con servicios de cdigo administrado como el recuento de referencia automtico y el recolector de elementos no utilizados. Facilidad de uso. ASP.NET emplea un sistema de configuracin jerrquico, basado en texto, que simplifica la aplicacin de la configuracin al entorno de servidor y las aplicaciones Web. Debido a que la informacin de configuracin se almacena como texto sin formato, se puede aplicar la nueva configuracin sin la ayuda de herramientas de administracin local. Esta filosofa de "administracin local cero" se extiende asimismo a la implementacin de las aplicaciones ASP.NET Framework. Una aplicacin ASP.NET Framework se implementa en un servidor sencillamente mediante la copia de los archivos necesarios al servidor. No se requiere el reinicio del servidor, ni siquiera para implementar o reemplazar el cdigo compilado en ejecucin. Muestra una independencia de la herramienta de desarrollo. Puede utilizarse para su desarrollo desde un simple editor de texto (Notepad por ejemplo), hasta las herramientas ms sofisticadas y potentes (Visual Studio .NET, Web Matrix). Escalabilidad y disponibilidad. ASP.NET se ha diseado teniendo en cuenta la escalabilidad, con caractersticas diseadas especficamente a medida, con el fin de mejorar el rendimiento en entornos agrupados y de mltiples procesadores. Adems, el motor de tiempo de ejecucin de ASP.NET controla y administra los procesos de cerca, por lo que si uno no se comporta adecuadamente (filtraciones, bloqueos), se puede crear un proceso nuevo en su lugar, lo que ayuda a mantener la aplicacin disponible constantemente para controlar solicitudes. Posibilidad de personalizacin y extensibilidad. ASP.NET presenta una arquitectura bien diseada que permite a los programadores insertar su cdigo en el nivel adecuado. De hecho, es posible extender o reemplazar cualquier subcomponente del motor de tiempo de ejecucin de ASP.NET con su propio componente escrito personalizado. La implementacin de la autenticacin personalizada o de los servicios de estado nunca ha sido ms fcil. Seguridad. Con la autenticacin de Windows integrada y la configuracin por aplicacin, se puede tener la completa seguridad de que las aplicaciones estn a salvo.

6.

CONFIGURACIN DE ASP.NET

El sistema de configuracin de ASP.NET proporciona una infraestructura extensible que permite definir opciones de configuracin en el momento de implementar las aplicaciones ASP.NET por primera vez de forma que se puedan agregar o revisar las opciones en cualquier momento con un impacto mnimo en las aplicaciones y servidores Web en funcionamiento. El sistema de configuracin de ASP.NET ofrece las siguientes ventajas: La informacin de configuracin se almacena en archivos de texto XML. Puede utilizarse cualquier editor de texto o analizador XML estndar para crear y editar los archivos de configuracin de ASP.NET. Mltiples archivos de configuracin, todos ellos denominados Web.config, pueden encontrarse en mltiples directorios de un servidor de aplicaciones Web ASP.NET. Cada archivo Web.config aplica opciones de configuracin a su propio directorio y a todos los directorios secundarios que haya por debajo de l. Los archivos de configuracin de los directorios secundarios pueden proporcionar informacin de configuracin adicional a la heredada de los directorios principales, as como anular o

Oreja y de la Viuda

modificar las opciones de configuracin definidas en los directorios principales. El archivo de configuracin raz, denominado razdelsistema\Microsoft.NET\Framework\nmerodeversin\CONFIG\Machine.config contiene las opciones de configuracin de ASP.NET para todo el servidor Web. En tiempo de ejecucin, ASP.NET utiliza la informacin de configuracin que proporcionan los archivos Web.config en una estructura de directorios jerrquica virtual para calcular un conjunto de opciones de configuracin para cada recurso URL nico. Las opciones de configuracin resultantes se almacenan en cach para todas las solicitudes de un recurso que se reciban a continuacin. Observe que la herencia viene definida por la ruta de acceso de la solicitud entrante (direccin URL), no por las rutas de acceso que los recursos tienen en el sistema de archivos del disco (rutas de acceso fsicas). ASP.NET detecta los cambios en los archivos de configuracin y aplica automticamente las nuevas opciones de configuracin a los recursos Web que corresponda. No es necesario reiniciar el servidor para que los cambios surtan efecto. Las opciones de configuracin jerrquicas se vuelven a calcular automticamente y vuelven a almacenarse en la cach cada vez que se modifica un archivo de la jerarqua de configuracin. La seccin <processModel> es una excepcin. El sistema de configuracin de ASP.NET es extensible. Es posible definir nuevos parmetros de configuracin y escribir controladores de secciones de configuracin para procesarlos. ASP.NET protege los archivos de configuracin del acceso externo al configurar Servicios de Internet Information Server (IIS) de modo que impida el acceso directo del explorador a dichos archivos. Cualquier intento por parte de un explorador de solicitar directamente un archivo de configuracin recibir el mensaje de error de acceso HTTP 403 (prohibido).

7.

APLICACIONES EN ASP.NET

Una aplicacin ASP.NET se define como todos los archivos, pginas, controladores, mdulos y cdigo ejecutable a los que se puede llamar desde un directorio virtual y sus subdirectorios en un nico servidor de aplicaciones Web. Puede utilizar cualquiera de los modelos de programacin de ASP.NET dentro de las aplicaciones que defina basndose en formularios Web Forms o en servicios Web XML. Simplemente deben coexistir en una nica estructura de directorios virtuales. 8. FORMULARIOS WEB FORMS Y SERVICIOS WEB XML

Los formularios Web Forms permiten crear pginas Web basadas en formularios muy eficaces. Al crear estas pginas, se pueden usar controles de servidor ASP.NET para crear elementos comunes de la interfaz de usuario y programarlos para que realicen las tareas comunes. Estos controles permiten crear con rapidez un formulario Web Forms a partir de componentes integrados reutilizables o personalizados, con un cdigo de pgina simplificado. Un servicio Web XML proporciona los medios para obtener acceso a la funcionalidad del servidor de manera remota. Con los servicios Web XML, las empresas pueden exponer interfaces de programacin a sus datos o lgica empresarial, que, a su vez, pueden obtener y

PROGRAMACIN WEB: INTRODUCCIN A ASP.NET

manipular las aplicaciones de cliente y servidor. Los servicios Web XML permiten el intercambio de datos en escenarios cliente-servidor o servidor-servidor, utilizando estndares como los servicios de mensajera HTTP y XML para que los datos pasen los servidores de seguridad. Los servicios Web XML no estn ligados a ninguna tecnologa de componentes ni a ninguna convencin de llamada a objetos concretas. En consecuencia, pueden tener acceso a los servicios Web XML los programas escritos en cualquier lenguaje, utilizando cualquier modelo de componentes y que se ejecuten en cualquier sistema operativo.

9.

COMPATIBILIDAD DE LENGUAJES

ASP.NET admite Visual Basic, C# y JScript. Pero en una pgina ASP.NET slo se puede usar cdigo escrito en un nico lenguaje de programacin. El lenguaje predeterminado es Visual Basic, pero se puede declarar cualquier otro lenguaje como predeterminado para la pgina si se coloca una directiva al principio de la misma, como la que se muestra a continuacin: <%@Language=C# %> Tambin se puede declarar un lenguaje en un bloque <script language= ...>, como en el siguiente ejemplo: <script language=VB runat=server> Si se declaran lenguajes diferentes en bloques de cdigo independientes de la misma pgina, se generar un error. Aunque en una pgina slo se puede utilizar un lenguaje, los controles de usuario usados en ella se pueden escribir en lenguajes diferentes. Esto permite que las aplicaciones saquen provecho de las bibliotecas de funciones de diversos lenguajes. Ejemplos del Hola Mundo en ASP.NET con diferentes lenguajes:

Visual Basic: <html> <script language="VB" runat=server> Sub Page_Load(Sender As Object, E As EventArgs) Message.InnerHtml = "Hola, Mundo!" End Sub </script> <body> <span id="Message" style="font-size:24" runat=server/> </body> </html>

Oreja y de la Viuda

C#: <html> <script language="C#" runat=server> void Page_Load(Object sender, EventArgs e) { Message.InnerHtml = "Hola, Mundo!"; } </script> <body> <span id="Message" style="font-size:24" runat=server/> </body> </html>

Jscript: <html> <script language="JScript" runat=server> function Page_Load(sender:Object, e:EventArgs) : void { Message.InnerHtml = "Hola, Mundo!"; } </script> <body> <span id="Message" style="font-size:24" runat=server/> </body> </html>

10. BLOQUES DE CDIGO EN ASP.NET Todos los procedimientos y variables globales de ASP.NET deben declararse dentro de bloques <script runat=server>, aunque tambin se pueden declarar variables entre delimitadores del tipo <%...%>, usados por ASP, pero slo bloques de proceso de la pgina podrn tener acceso a ellas y no podrn ser utilizadas de forma global por otras funciones o procedimientos. Por ejemplo, para declarar variables y procedimientos, los bloques de secuencias de comandos de proceso, en C#, seran similares a los siguientes: <script language=C# runat=server> // Las siguientes variables son visibles para todos los // procesos con el bloque <scrip> String str; int i;

PROGRAMACIN WEB: INTRODUCCIN A ASP.NET

int i2; int DoubleIt(int inpt){ // La siguiente variable slo es visible para el // procedimiento DoubleIt int factor=2; return inpt * factor; } </script> <% // La siguiente variable local es visible slo para este // y otros bloques en la pgina object miVar; miVar=Request.QueryString; Response.Write(The querystrin is + Server.HtmlEncode(miVar.ToStrint())); %>

11. IMPLEMENTAR UNA APLICACIN WEB ASP.NET La implementacin de aplicaciones ASP.NET es un proceso muy sencillo. Simplemente se deben copiar los archivos de la aplicacin creados del PC de desarrollo al servidor Web que albergar la aplicacin. Para copiar de una ubicacin a otra, se puede utilizar la herramienta de la lnea de comandos XCOPY o cualquier otra aplicacin FTP. Para implementar los ensamblados que se deseen compartir entre las aplicaciones Web, como los ensamblados que contienen los controles de servidor ASP.NET, hay que implementarlos en la cach de ensamblados global. xcopy <ruta de origen> <ruta de destino>

12. ELEMENTOS DE LAS APLICACIONES WEB ASP.NET La creacin de aplicaciones Web ASP.NET implica trabajar con muchos de los elementos que se utilizan en cualquier aplicacin de escritorio o cliente-servidor. stos incluyen: Funciones de administracin de proyectos. Al crear una aplicacin Web ASP.NET, necesitar hacer un seguimiento de los archivos necesarios, cules se debe compilar y cules necesitan implementarse. Interfaz de usuario. Una aplicacin suele presentar informacin a los usuarios; en una aplicacin Web ASP.NET, la interfaz de usuario se presenta en pginas de formularios Windows Forms, que envan los resultados a un explorador. Opcionalmente, puede crear resultado adaptado para dispositivos mviles u otros aparatos Web.

Oreja y de la Viuda

Componentes. Muchas aplicaciones incluyen elementos reutilizables que contienen cdigo para ejecutar tareas especficas. En las aplicaciones Web, puede crear estos componentes como servicios Web XML, lo que les permite aceptar llamadas de todo el Web desde una aplicacin Web, otro servicio Web XML o un formulario Windows Forms, por ejemplo. Datos. La mayora de las aplicaciones necesitan algn mecanismo de acceso a datos. En las aplicaciones Web ASP.NET, puede utilizar ADO.NET, los servicios de datos que forman parte de .NET Framework. Seguridad, rendimiento y otras caractersticas de infraestructura. Como en cualquier aplicacin, deber implementar seguridad para evitar el uso no autorizado, probar y depurar la aplicacin, ajustar su rendimiento y ejecutar otras tareas no relacionadas con la funcin principal de la aplicacin.

El diagrama siguiente proporciona informacin general sobre el modo en que encajan entre s las diferentes piezas de las aplicaciones Web ASP.NET y sobre cmo encajan en el contexto ms amplio de .NET Framework.

(Figura 2: componentes de una aplicacin Web ASP.NET)

13. SEGURIDAD PARA APLICACIONES WEB ASP.NET La seguridad es un aspecto crtico de las aplicaciones Web. El primer paso para crear una aplicacin segura es conocer los tipos de problemas de seguridad que pueden surgir en aplicaciones basadas en Web. Tambin debe comprender las estrategias bsicas que se utilizan para proteger la aplicacin y el sistema. Las aplicaciones Web, por definicin, permiten el acceso de usuarios a recursos centrales, el servidor Web y, a travs de ste, a otros como los servidores de base de datos.

PROGRAMACIN WEB: INTRODUCCIN A ASP.NET

El trabajo en seguridad requiere la compresin de los siguientes conceptos fundamentales sobre seguridad: Autenticacin confirma que los usuarios son quienes dicen que son. Por ejemplo, un usuario debe proporcionar un nombre de usuario y una contrasea que se comprueban en una autoridad (por ejemplo, una base de datos o un servidor de dominios de Windows). Autorizacin es el proceso de conceder o denegar el acceso a los recursos a usuarios especficos.

Estos conceptos pueden resultar familiares debido a su uso en Windows. En cualquier tipo de red, se debe iniciar la sesin (es decir, autenticarse). Una vez iniciada la sesin de forma satisfactoria, se puede tener acceso a archivos, carpetas, impresoras y otros recursos especficos (es decir, se dispone de autorizacin para obtener acceso a los recursos en funcin de las credenciales de inicio de sesin). Windows ofrece un sofisticado sistema de seguridad que permite a los administradores crear cuentas de usuario y autorizar a dichos usuarios a obtener acceso a carpetas, archivos, etc. Tambin hay requisitos de seguridad en las aplicaciones Web. Sin embargo, la naturaleza pblica de una aplicacin Web introduce ciertas variaciones en el modelo mencionado. Por ejemplo, en un sitio Web pblico, no se espera que cada usuario tenga que iniciar la sesin en el equipo o red en la que se ejecuta el servidor Web. Para resolver esta cuestin, las aplicaciones Web pueden representar a los usuarios. En lugar de exigir a los usuarios que proporcionen credenciales de autenticacin, una aplicacin Web puede solicitar un recurso con determinadas credenciales preestablecidas.

14. SEGURIDAD DE LAS APLICACIONES WEB EN IIS Y ASP.NET La seguridad de las pginas Web empieza por el servidor Web (IIS). Puesto que se trata de un servicio basado en Windows, IIS est totalmente integrado en la seguridad de Windows. Como en el caso de cualquier otro proceso, para obtener acceso a un archivo IIS necesita la autenticacin apropiada. Cuando los usuarios envan una solicitud desde su explorador a IIS, ste debe leer el archivo de una carpeta Windows y, sea cual sea la autenticacin definida por Windows que se aplica a dicho archivo, se deber tambin aplicar a IIS. Es decir, para obtener acceso a un recurso, IIS debe proporcionar las credenciales adecuadas, como cualquier otro proceso. Cuando se ejecuten las aplicaciones Web, lo harn en ASP.NET, que tiene sus propios medios de seguridad. stos entran en juego cuando la aplicacin requiere acceso a los recursos. Por ejemplo, si se deseara leer o escribir un archivo en la aplicacin Web, ser el contexto de seguridad de ASP.NET lo que determina si la solicitud proceder con xito o no. Sin embargo, no todos los usuarios dispondrn de la autenticacin apropiada para leer archivos en un servidor Windows; especficamente, en las aplicaciones disponibles de forma pblica en Internet. Por tanto, IIS y ASP.NET proporcionan varios mecanismos para establecer la autenticacin. Los mtodos mencionados anteriormente son: Acceso annimo Para las aplicaciones que recibirn solicitudes de usuarios annimos (generalmente, aplicaciones Web pblicas), IIS admite un usuario "annimo", es decir, un usuario sin credenciales de autenticacin. En esta situacin, el servidor en el que se ejecuta IIS dispone de un usuario de Windows adicional, con el nombre IUSR_<nombre de equipo>. Esta cuenta de usuario suele definirse con derechos de acceso muy restringidos.

10

Oreja y de la Viuda

Cuando IIS recibe una solicitud de un usuario desconocido, IIS pasa la solicitud a Windows utilizando el nombre de usuario <nombre de equipo>_anonymous como credenciales. Es decir, IIS representa a los usuarios annimos con la finalidad de obtener acceso al recurso. Autenticacin bsica e implcita IIS admite asimismo el modelo de autenticacin bsico estndar de Web. En esta situacin, se solicita a los usuarios sin credenciales que proporcionen un nombre de usuario y una contrasea. Dichos nombre de usuario y contrasea se devuelven a IIS, y pasan a estar disponibles para la aplicacin. La autenticacin bsica proporciona un mtodo til para ofrecer acceso restringido a una aplicacin Web pblica. Sin embargo, no es totalmente segura, ya que el usuario pasa un nombre de usuario y una contrasea a IIS en forma de texto normal. La autenticacin implcita es similar a la bsica, pero utiliza cifrado para enviar la informacin del usuario al servidor. Sin embargo, este estilo de autenticacin requiere un controlador de dominio de Windows. Seguridad integrada de Windows Si el usuario que efecta la solicitud ya se ha autenticado en una red basada en Windows, IIS puede pasar las credenciales del usuario cuando solicita el acceso a un recurso. Las credenciales no incluyen el nombre de usuario y la contrasea, nicamente un smbolo cifrado que indica el estado de seguridad del usuario. Se trata de una situacin tpica en una intranet corporativa, en la que los usuarios inician la sesin en la red antes de utilizar la aplicacin. No obstante, la seguridad integrada no es prctica en el caso de aplicaciones que deben pasar a travs de servidores de seguridad corporativos. Incluso dentro de la misma red, la seguridad integrada tiene limitaciones para obtener acceso a recursos que estn en equipos remotos. Autenticacin por certificado Finalmente, IIS admite el uso de certificados digitales y la capa de sockets seguros (SSL). En esta situacin, el servidor o el cliente tienen un certificado (una identificacin digital) obtenido de un tercero. El certificado se pasa a la aplicacin junto con las solicitudes. Se puede asignar a una cuenta de usuario de Windows y concederle los permisos apropiados. Esta autenticacin tiene la ventaja de que, puesto que es la autoridad del certificado quien valida cada solucin o respuesta, se utiliza en aplicaciones que precisan de una relacin de confianza.

15. CONTROL DE ERRORES EN ASP.NET Cuando se produce un error en una pgina, ASP.NET enva informacin sobre el error al cliente. Dichos errores se dividen en cuatro categoras: Errores de configuracin: se producen cuando la sintaxis o la estructura de un archivo Web.config de la jerarqua de configuracin es incorrecta. Errores del analizador: se producen cuando la sintaxis ASP.NET de una pgina no est bien formada. Errores de compilacin: se producen cuando las instrucciones del lenguaje de destino de una pgina son incorrectas. Errores de tiempo de ejecucin: se producen durante la ejecucin de una pgina, incluso aunque los errores no se detectaran en tiempo de compilacin.

De forma predeterminada, la informacin mostrada para un error de tiempo de ejecucin consiste en la pila de llamadas (la cadena de llamadas a procedimientos que condujo hasta la excepcin). Si el modo de depuracin se encuentra habilitado, ASP.NET muestra el nmero de

11

PROGRAMACIN WEB: INTRODUCCIN A ASP.NET

lnea del cdigo fuente donde se origin el error en tiempo de ejecucin. El modo de depuracin es una herramienta muy valiosa para depurar la aplicacin. Es posible habilitar el modo de depuracin a nivel de pgina, mediante la siguiente directiva: <%@ Page Debug=trae %> Tambin se puede habilitar el modo de depuracin en el mbito de la aplicacin, mediante el archivo Web.config del directorio raz de la aplicacin. Se debe tener en consideracin que al activar el modo de depuracin implica una penalizacin del rendimiento, por lo cual es recomendable desactivarlo antes de implementar la aplicacin final.

15.1.

PERSONALIZAR PGINAS DE ERROR

Segn las circunstancias, los errores de una aplicacin se pueden tratar de distintos modos. Por ejemplo, durante el desarrollo probablemente desee ver las pginas de error detalladas suministradas por ASP.NET para ayudar a identificar y resolver problemas. Sin embargo, una vez que la aplicacin se est utilizando en un entorno de produccin, no es aconsejable mostrar errores detallados a los usuarios. ASP.NET permite especificar si los errores se van a mostrar a clientes locales, remotos o a ambos. De forma predeterminada, los errores slo se muestran a clientes locales (los que se encuentran en el mismo equipo que el servidor). Tambin se puede especificar una pgina de errores personalizada a la que enviar a los clientes si se produce un error mediante el uso de las etiquetas <customerrors>. Adems de desviar a una pgina comn cuando se produce cualquier error, tambin se pueden asignar pginas de error especficas a cdigos de estado de error especficos. La seccin de configuracin <customerrors> admite una etiqueta <error> interna que asocia cdigos de estado HTTP con pginas de errores personalizadas. Los errores tambin se pueden controlar en el cdigo, ya sea en el mbito de la pgina o de la aplicacin. La clase base Page expone un mtodo HandleError que se puede reemplazar en las pginas. Se invocar al mtodo siempre que una excepcin no capturada se lance en tiempo de ejecucin. El espacio de nombres System.Web.Mail expone clases para enviar correo electrnico mediante programa. Esto resulta til para avisar a un administrador cuando se produce un error. Adems de controlar errores en el mbito de la pgina, se puede utilizar el evento Application_Error de Global.asax para controlarlos en el mbito de la aplicacin. Este evento tiene lugar para cualquier excepcin sin tratamiento que se produce dentro de la aplicacin. El espacio de nombres System.Diagnostics proporciona clases para escribir en el Registro de eventos de Windows. 16. ENTORNOS DE DESARROLLO: ASP.NET WEB MATRIX PROJECT Con la llegada de .NET, el soporte para el desarrollo ASP.NET se integr completamente en Visual Studio .NET. Proporciona un ambiente muy poderoso y utilizable para el desarrollo de ASP.NET en forma de Web Forms, as como en otros tipos de aplicaciones ms tradicionales (Windows Forms).

12

Oreja y de la Viuda

Pero Microsoft ofrece otro entorno para el desarrollo de pginas web con ASP.NET ms sencillo y gratuito: Microsoft ASP.NET Web Matrix. Este producto, de apenas 1.3 Mb, permite desarrollar pginas ASP.NET de manera similar a Microsoft Visual Studio .NET. No es un entorno tan completo como el Visual, pero tampoco es una versin simplificada del mismo. Se podra decir que se complementan ya que existen diferencias muy claras entre ellos. Visual Studio .NET es un completo ambiente de desarrollo para todas las tecnologas .NET, integrado con un sistema de control de cdigo fuente, como es Visual SourceSafe, mientras que Web Matrix est especialmente diseado para la programacin ASP.NET y, en general, las tecnologas orientadas a Internet. Una gran diferencia en cuanto a la estructura de la pgina ASP.NET es que Visual Studio .NET crea proyectos ASP.NET usando separacin de cdigo, mientras que en Web Matrix se usa la tcnica de cdigo en lnea, que consiste en incluir el contenido de la presentacin (HTML, texto, etc) en el mismo archivo, a medida que el cdigo ASP crea y maneja el contenido de la interfaz dinmica. Otras diferencias entre Web Matrix y Visual Studio .NET son las siguientes: Soluciones basadas en proyectos. Visual Studio .NET tiene el concepto de un proyecto, al cual se pueden agregar varios tipos de archivos y recursos. Web Matrix no utiliza un enfoque basado en proyectos; en cambio, trata cada archivo como un elemento separado. Interfaz. Web Matrix es ligera (el archivo de instalacin tiene un tamao aproximado de 1MB), delgada y rpida. Sin embargo, no proporciona todo el conjunto de aspectos positivos de la interfaz que se incluyen en Visual Studio .NET. Por ejemplo, Web Matrix no ofrece terminacin de declaraciones, listas de miembros de objetos, o sugerencias instantneas en la ventana de editar. Compilacin de archivos de clase. A diferencia de Visual Studio .NET, Web Matrix no compila automticamente los archivos de clase en ensambles. Esto se debe hacer desde la lnea de comando. Archivos de ayuda de .NET Framework. Web Matrix no incluye documentacin de referencia para.NET Framework. En cambio, proporciona una lista til y plegable, basada en carpetas, de las clases comnmente utilizadas y de sus miembros, junto con una lista completa de todos los dems espacios de nombre y clases dentro de la Biblioteca de clases de .NET Framework. Web Matrix tambin contiene un explorador de clases, que muestra los miembros individuales de cualquier clase y ofrece un vnculo hacia el SDK de .NET local (si est instalado) y las pginas de referencia de .NET de MSDN en lnea. Comunidad. Web Matrix est diseada para ser una herramienta de la comunidad y contiene diversos tipos de vnculos al sitio de la comunidad en lnea en http://www.asp.net/webmatrix, as como vnculos a los grupos de noticias, servidores de listas y otros sitios que proporcionan soporte a la comunidad para Web Matrix. Costo. Web Matrix, ya mencionado anteriormente, es gratuita.

Esto ltimo implica que su soporte directo sea nulo, es decir, Web Matrix no tiene soporte, excepto el que podemos encontrar en Internet gracias a personas que realizan esas funciones de forma desinteresada.

13

PROGRAMACIN WEB: INTRODUCCIN A ASP.NET

El entorno de desarrollo de Web Matrix, desarrollado con C# y Microsoft .NET Framework, tiene un aspecto que recuerda a Microsoft FrontPage y a Microsoft Visual Studio .NET.

(Figura 3: ventana principal del entorno de desarrollo Web Matrix)

Web Matrix permite conectar con servidores por medio de FTP. De esta manera, podemos desarrollar pginas en ASP.NET y subirlas al servidor directamente. Adems, Web Matrix no necesita ningn Servidor Web para ejecutar las pginas creadas, ya que contiene un Servidor Web virtual que permite ejecutar pginas ASP.NET sin problemas, que se conecta generalmente al puerto 8080. Una caracterstica aadida a Web Matrix que permite desarrollar pginas ASP.NET de forma rpida es la caracterstica WYSIWYG, es decir, se trata de un entorno de desarrollo en el que podemos desarrollar nuestras pginas ASP.NET dando el aspecto deseado al mismo tiempo que diseamos nuestras pginas (las aplicaciones web se pueden construir arrastrando y soltando controles desde la caja de herramientas de Web Matrix). La instalacin de Web Matrix posee una aplicacin con la cual podremos ver las clases de .NET Framework, sus mtodos, propiedades, eventos, etc. Esta aplicacin se denomina ClassBrowser, y posee vnculos que abren la documentacin local del SDK de .NET Framework (si est instalada) o la Biblioteca MSDN en lnea.

14

Oreja y de la Viuda

(Figura 4: ClassBrowser de Web Matrix)

Otra caracterstica destacable de Web Matrix es la alta capacidad de desarrollar pginas ASP.NET de acceso a fuentes de datos. Para ello, se puede utilizar un Servidor SQL Server o una base de datos Access. Sin embargo, Microsoft ofrece MSDE (Microsoft DataBase Engine), un paquete gratuito y reducido de un servidor SQL Server. Otra funcionalidad aadida es la capacidad de desarrollar pginas ASP.NET para dispositivos mviles mediante la descarga del entorno Microsoft Mobile Internet Toolkit, tambin paquete gratuito. Todas estas cosas hacen que Microsoft ASP.NET Web Matrix sea un entorno de desarrollo ASP.NET interesante y completo.

16.1.

UN PRIMER EJEMPLO CON WEB MATRIX Y ASP.NET

El siguiente ejemplo est realizado con Visual Basic, y simplemente consiste en una pgina de prueba; se ha escrito un texto en el formulario web, "Pgina ASP.NET con Microsoft ASP.NET Web Matrix", y se han arrastrado dos controles e insertado en el formulario: una etiqueta (Label Web Control) y un botn (Button Web Control). Tras esto, se ha introducido el cdigo correspondiente al botn, bastando con hacer doble clic sobre dicho control para insertarlo: Sub Button 1_Click(sender AS Object, e As EventArgs) Label1.Text=Hola Matrix End Sub Mundo, este es mi primer ejemplo con Web

15

PROGRAMACIN WEB: INTRODUCCIN A ASP.NET

Tras seleccionar servidor, en este caso el de Web Matrix, se compila, y el resultado obtenido se muestra en la siguiente figura:

(Figura 5: Pgina Web resultante de un ejemplo del Hola Mundo en ASP.NET)

Tras haber desarrollado una pgina ASP.NET, Web Matrix ha creado un fichero con la extensin .aspx (correspondiente a la extensin de pginas ASP.NET), dentro del cul se encuentra todo el cdigo de la pgina junto al cdigo HTML. En este ejemplo, el contenido del fichero .aspx sera el siguiente: <%@Page Language=VB%> <script runat=server> Insert page code here Sub Button1_Click(sender As Object, e As EventArgs) Label1.Text=Hola Mundo, este es mi primer ejemplo con Web Matrix End Sub <script> <html> <head> </head> <body>

16

Oreja y de la Viuda

<form runat=server> <p> <strong><font face=Verdana color=#000040 size=4> Pgina ASP.NET con Microsoft ASP.NET Web Matrix </font></strong> </p> <p> <asp:Label id=Label1 runat=server Font-Names=Verdana Font-Size=11pt Font-Bold=True ForeColor=#C00000> </asp:Label> </p> <p> <asp:Button id="Button1" onclick="Button1_Click" runat="server" Text="Aceptar" Font-Names="Verdana" ForeColor="White" BackColor="#000040" BorderColor="Orange" BorderWidth="2px BorderStyle="Solid"> </asp:Button> </p> <! Insertar contenido aqui --> </form> </body> </html>

17. CONCLUSIONES ASP.NET representa una gran apuesta Web de Microsoft para la construccin de pginas y aplicaciones web dinmicas. Su compatibilidad con diversos lenguajes de programacin de la plataforma .NET (C#, VB.NET, JSCRIPT) permite adaptar el lenguaje usado a las necesidades de cada aplicacin, de ah gran parte de la flexibilidad que ASP.NET proporciona. Est completamente Orientado a Objetos, por lo que tambin incorpora todas las ventajas que este paradigma supone. La alta velocidad de respuesta y compilacin, la robustez, el alto rendimiento, la fiabilidad y la seguridad son algunas de sus caractersticas principales. Todo esto, unido a las posibilidades que ofrece en el diseo de las pginas dinmicas, como el uso de formularios, las tcnicas WYSIWYG, etc, ofrecen muchas ventajas al desarrollador, facilitndole su trabajo.

17

PROGRAMACIN WEB: INTRODUCCIN A ASP.NET

18. GLOSARIO ADO .NET: conjunto de tecnologas de acceso a datos incluidas en las bibliotecas de clases de .NET Framework que proporcionan acceso a datos relacionales y a XML. ADO.NET se compone de clases que forman el DataSet (como tablas, filas, columnas, relaciones, etc), de proveedores de datos de .NET Framework y de definiciones de tipos personalizados (como SqlTypes para SQL Server). CLR: Common Language Runtime. Aplicacin similar a una mquina virtual que constituye el corazn de la plataforma .NET y que se encarga de gestionar la ejecucin de las aplicaciones escritas para ella. A estas aplicaciones les ofrece numerosos servicios que facilitan su desarrollo y mantenimiento, y favorecen su fiabilidad y seguridad. Entre ellos, los principales son: Modelo de programacin consistente y sencillo, completamente orientado a objetos. Ejecucin multiplataforma y multilenguaje. Eliminacin de problemas de compatibilidad entre DLLs. Recoleccin de basura. Soporte multihilo. Aislamiento de memoria entre procesos. Gestin del acceso a objetos remotos que permite el desarrollo de aplicaciones distribuidas de manera transparente a la ubicacin real de cada uno de los objetos utilizados en las mismas. Etc.

Excepcin: evento que ocurre por un error del programa en tiempo de ejecucin, y que es generado para indicarle al programador que un error impide la normal ejecucin del programa. Global.asax: Archivo ubicado en la raz del rbol de directorios virtuales de una aplicacin Web. Se encarga de procesar eventos de las aplicaciones de nivel superior. ASP.NET analiza y compila dinmicamente este archivo para producir una clase de .NET Framework la primera vez que se activa o se solicita cualquier recurso o URL dentro del espacio de nombres de la aplicacin. IIS: Internet Information Server. Programa servidor de pginas Web, creado por Microsoft, que soporta ficheros ASP. Permite publicar informacin en Internet, transmitindola mediante el Protocolo de Transferencia de Hipertexto HTTP. Puede configurarse tambin para proporcionar servicios de Protocolo de Transferencia de Archivos (FTP). Web Forms: pginas de formularios que se basan en la tecnologa Microsoft ASP.NET. Pueden usarse para crear pginas Web programables que sirvan como interfaz de usuario de las aplicaciones Web. Este tipo de pginas acepta cualquier lenguaje compatible con CLR de .NET y divide la programacin de la interfaz de usuario en dos partes independientes: el componente visual y el lgico. Presenta la informacin al usuario en cualquier explorador o dispositivo

18

Oreja y de la Viuda

cliente e implementa la lgica de aplicacin mediante el cdigo de la parte servidor. La salida de las pginas de formularios Web Forms puede contener casi cualquier lenguaje compatible con HTTP, incluidos HTML, XML, WML, etc. Windows Forms: Biblioteca de clientes de Windows. WYSIWYG: Acrnimo de What you see is what you get (Lo que ves es lo que obtienes). Se aplica a los procesadores de texto y otros editores de texto con formato (como el caso de Web Matrix para desarrollar pginas ASP.NET) que permiten escribir un documento viendo directamente el resultado final. En el caso de Web Matrix, se puede crear la pgina arrastrando controles a un formulario, lo que proporciona una vista preliminar, ocupndose Web Matrix de generar el cdigo correspondiente a la interfaz.

19. BIBLIOGRAFA [1] Serrano Prez, Jorge. Programacin con ASP.NET. Ed. Anaya Multimedia. [2] Parihar, Mridula. La Biblia de ASP.NET. Ed. Anaya Multimedia. [3] Homer, Alex y Sussman, Dave. Incide ASP.NET Web Matrix. Ed. Wrox [4] Serrano, Prez, Jorge. Primer contacto con Microsoft ASP.NET Web Matrix. http://www.microsoft.com/spanish/msdn/articulos/archivo/280602/voices/art_matrix.asp [5] Garca Chao, Ass y Lagos Torres, Manuel. Microsoft ASP.NET Web Matrix Project. http://www.microsoft.com/spain/technet/estudiantes/articulos/matrix_project.mspx [6] Gassmann, Alejandro. Introduccin a ASP.NET.http://www.gamarod.com.ar/articulos/134.asp [7] http://msdn.microsoft.com/library/spa/default.asp?url=/library/SPA/cpguide/html/cpconintroductiontoasp.asp [8] http://es.gotdotnet.com/quickstart/aspplus/

19