Universidad Tecnológica Americana “UNITA” Carla Terán Informática ASP ACTIVE SERVER PAGES La tecnología ASP está estrechamente relacionada con el modelo tecnológico de su fabricante. Intenta ser solución para un modelo de programación rápida ya que "programar en ASP es como programar en Visual Basic y C#", por supuesto con muchas limitaciones y algunas ventajas específicas en entornos web. Lo interesante de este modelo tecnológico es poder utilizar diversos componentes ya desarrollados como algunos controles ActiveX así como componentes del lado del servidor, tales como CDONTS, por ejemplo, que permite la interacción de los scripts con el servidor SMTP que integra IIS. Se facilita la programación de sitios web mediante varios objetos integrados, como por ejemplo un objeto de sesión basada en cookies, que mantiene las variables mientras se pasa de página a página. ASP.NET es un framework para aplicaciones web desarrollado y comercializado por Microsoft. Es usado por programadores para construir sitios web dinámicos, aplicaciones web y servicios web XML. Apareció en enero de 2002 con la versión 1.0 del .NET Framework, y es la tecnología sucesora de la tecnología Active Server Pages (ASP). ASP.NET esta construido sobre el Common Language Runtime, permitiendo a los programadores escribir código ASP.NET usando cualquier lenguaje admitido por el .NET Framework. CARACTERISTICAS Las páginas de ASP.NET, conocidas oficialmente como "web forms" (formularios web), son el principal medio de construcción para el desarrollo de aplicaciones web.8 Los formularios web están contenidos en archivos con una extensión ASPX; en jerga de programación, estos archivos típicamente contienen etiquetas HTML o XHTML estático, y también etiquetas definiendo Controles Web que se procesan del lado del servidor y Controles de Usuario donde los desarrolladores colocan todo el código estático y dinámico requerido por la página web. Adicionalmente, el código dinámico que se ejecuta en el servidor puede ser colocado en una página dentro de un bloque <% -- código dinámico -- %> que es muy similar a otras tecnologías de desarrollo como PHP, JSP y ASP, pero esta práctica es, generalmente, desaconsejada excepto para propósitos de enlace de datos pues requiere más llamadas cuando se genera la página. UTILIDAD En la actualidad una aplicación ASP.NET puede ejecutarse de dos formas distintas: Aplicaciones cliente/servidor: Estas aplicaciones están típicamente en formato de ejecutables compilados. Estos pueden integrar toda la riqueza de una interfaz de usuario, tal es el caso de las aplicaciones de desempeño y productividad, pero no se reúne la lógica de negocio como un recurso que se pueda reutilizar. Además acostumbran ser menos gestionables y escalables que las demás aplicaciones. Aplicaciones que utilizan el navegador: Dichas aplicaciones están caracterizadas por contar con una interfaz de web rica y muy útil. La interfaz gráfica integra varias tecnologías, las cuales son el HTML, XHTML, scripting, etc; siempre y cuando el navegador que se esté utilizando soporte estas tecnologías. EVENTOS Dentro de los delimitadores de ASP puede incluir cualquier instrucción, expresión, procedimiento u operador que sea válido en el lenguaje principal para secuencia de comandos. Una instrucción, en VBScript y en otros lenguajes, es una unidad sintácticamente completa que expresa un tipo de acción, declaración o definición. La instrucción condicional If...Then...Else que aparece a continuación es una instrucción de VBScript muy común: <% Dim dtmHour dtmHour = Hour(Now()) If dtmHour < 12 Then Saludos = "Buenos días" Else strGreeting = "Hola" End If %> <%= strGreeting %> Según la hora, la secuencia de comandos asigna el valor "Buenos días" o el valor "Hola" a la variable de cadena strGreeting. La instrucción <%= strGreeting %> envía al explorador el valor actual de la variable. De esta forma, los usuarios que vean esta secuencia de comandos antes de las 12:00 de la mañana (según la zona horaria del servidor Web) verían la siguiente línea de texto: Buenos días Los usuarios que vean esta secuencia de comandos después de las 12:00 de la mañana verían la siguiente línea de texto: Hola Puede incluir texto HTML entre las secciones de una instrucción. Por ejemplo, la secuencia de comandos siguiente, que combina HTML dentro de una instrucción If...Then...Else, produce el mismo resultado que la del ejemplo anterior: <% Dim dtmHour dtmHour = Hour(Now()) If dtmHour < 12 Then %> Buenos días <% Else %> Hola <%End If %> Si la condición es verdadera, es decir, si es antes del mediodía, el servidor Web envía al explorador el código HTML que sigue a la condición ("Buenos días"); de lo contrario, envía el código HTML que sigue a Else ("Hola"). Esta forma de combinar HTML y comandos de secuencia de comandos es cómoda para continuar la instrucción If...Then...Else en varias líneas de texto HTML. El ejemplo anterior es más útil si desea presentar un saludo en varias partes de una página Web. Puede asignar el valor de la variable una única vez y después presentarla varias veces. En lugar de mezclar texto HTML con comandos de secuencia de comandos, puede devolver texto HTML al explorador desde dentro de los comandos de secuencia de comandos. Para devolver texto al explorador, utilice el objeto integrado Response de ASP. El ejemplo siguiente produce el mismo resultado que las secuencias de comandos anteriores: <% Dim dtmHour dtmHour = Hour(Now()) If dtmHour < 12 Then Response.Write "Buenos días" Else Response.Write "Hola" End If %> Response.Write envía al explorador el texto que le sigue. Utilice Response.Write desde una instrucción cuando desee generar de forma dinámica el texto devuelto al explorador. Por ejemplo, puede generar una cadena de texto que contenga los valores de varias variables. Aprenderá más acerca del objeto Response, y de los objetos en general, en Utilizar componentes y objetos y Enviar contenido al explorador. Por ahora, observe simplemente que dispone de varias maneras de insertar comandos de secuencias de comandos en las páginas HTML. Puede incluir procedimientos escritos en su lenguaje predeterminado de secuencias de comandos dentro de delimitadores ASP. Para obtener más información, consulte Trabajar con lenguajes de secuencias de comandos. Si va a trabajar con comandos JScript, puede insertar las llaves que indican un bloque de instrucciones directamente en sus comandos ASP, incluso aunque estén entremezclados con etiquetas y texto HTML. Por ejemplo: <% if (screenresolution == "low") { %> Ésta es la versión de texto de la página. <% } else { %> Ésta es la versión multimedia de la página. <% } %> -O bien<% if (screenresolution == "low") { Response.Write("Ésta es la versión de texto de la página.") } else { Response.Write("Ésta es la versión multimedia de la página.") } %> MANEJO DE ERRRORES Las aplicaciones ASP.NET son alojadas en un servidor web y se tiene acceso a ellas mediante el protocolo sin estado HTTP, que no guarda ninguna información sobre conexiones anteriores. Por lo tanto, si la aplicación requiere interacción entre conexiones, tiene que implementar su propia administración del estado. ASP.NET proporciona varias maneras de administrar el estado de las aplicaciones ASP.NET. Los eventos para solución de errores en la programación mas utilizado son el evento try and cach. ARQUITECTURA DE ASP En esta sección se proporciona una descripción general sobre las relaciones entre los subsistemas y la infraestructura de ASP.NET, con respecto a la seguridad. En la siguiente ilustración se muestran las relaciones entre los sistemas de seguridad de ASP.NET. Como se muestra en la ilustración, todos los clientes Web se comunican con las aplicaciones ASP.NET a través de los Servicios de Internet Information Server (IIS). IIS descifra y, opcionalmente, realiza la autenticación de la petición. Si la opción Permitir anónimos está establecida en true, no se efectuará ninguna autenticación. IIS también busca el recurso solicitado (como una aplicación ASP.NET) y, si se autoriza al cliente, devuelve el recurso correspondiente. Además de las características integradas de ASP.NET, una aplicación ASP.NET puede utilizar características de seguridad de bajo nivel de .NET Framework. Para obtener más información, vea el tema "Conceptos clave de seguridad" en la Ayuda de .NET Framework. Integración con IIS Si se considera la posibilidad de utilizar la autenticación de ASP.NET, es importante comprender cómo interactúa con los servicios de autenticación de IIS. IIS supone siempre que se asigna un conjunto de credenciales a una cuenta de Microsoft Windows NT y utiliza las credenciales para autenticar los usuarios. Existen tres tipos distintos de autenticación disponibles tanto en IIS 5.0 como en IIS 6.0: básica, implícita y Autenticación de Windows integrada (NTLM o Kerberos). Se puede seleccionar el tipo de autenticación que se desea utilizar en los servicios de administración de IIS. Para obtener más información acerca de la autenticación de IIS, vea Autenticación en IIS 6.0. Si se solicita una dirección URL que contiene una aplicación ASP.NET, la información sobre la autenticación y la petición se entrega a la aplicación. ASP.NET proporciona dos tipos adicionales de autenticación, que se describen en la tabla siguiente. Proveedor de autenticación de ASP.NET Descripción Autenticación Sistema que redirige las peticiones no autenticadas a un formulario mediante HTML mediante el redireccionamiento del cliente HTTP. El usuario formularios proporciona las credenciales y envía el formulario. Si la aplicación autentica la petición, el sistema emite un vale de autenticación en una cookie que contiene las credenciales, o una clave, para readquirir la identidad. Las peticiones posteriores se emiten con la cookie en los encabezados de la petición; se autentican y autorizan en un controlador ASP.NET mediante el método de validación que especifique el programador de la aplicación. Autenticación Servicio de autenticación centralizado proporcionado por Microsoft mediante que ofrece a los sitios Web suscritos servicios de perfil básico y un pasaporte inicio de sesión único.