Se puede compartir información en toda la aplicación mediante la clase HttpApplicationState, a la que normalmente se tiene acceso a través de la propiedad Application del objeto HttpContext. Esta clase expone un diccionario de objetos con valores y claves que se pueden utilizar para almacenar objetos de .NET Framework y valores escalares relacionados con varias solicitudes Web de varios clientes.
En este tema se proporciona información general acerca del estado de aplicación, se describe cómo utilizar el estado de aplicación, se presentan las colecciones de estados de aplicación y se trata la sincronización de estados de aplicación.
Una aplicación ASP.NET es la suma de todos los archivos, páginas, controladores, módulos y código que residen en un directorio virtual dado y sus subdirectorios, y que los usuarios pueden solicitar a través de la jerarquía de directorios virtuales.
Por ejemplo, si desarrolla una aplicación que calcula los beneficios de una inversión en la intranet de su compañía, podría publicarla en un directorio virtual denominado /Inversión en un servidor Web. La estructura del directorio de tal aplicación podría tener una apariencia similar a la siguiente:
\Inversión
\bin
\image
\xml
La primera vez que un cliente solicita un recurso URL desde el interior del espacio de nombres del directorio virtual de una determinada aplicación ASP.NET, se crea una instancia de la clase HttpApplicationState. Esto ocurre con cada aplicación Web almacenada en el equipo. El acceso a una de estas instancias creadas para cada aplicación es posible a través de una propiedad HttpContext denominada Application. Todos los HttpModules y HttpHandlers, por ejemplo una página ASP.NET, tienen acceso a una instancia del contexto y, por lo tanto, a la propiedad Application durante una determinada solicitud Web.
ASP.NET proporciona los siguientes elementos compatibles con el estado de aplicación:
Un servicio de estado fácil de utilizar que es compatible con versiones anteriores de ASP, funciona con todos los lenguajes admitidos por .NET y es coherente con otras API de .NET Framework.
Un diccionario de estados de aplicación a disposición de todos los controladores de solicitudes a los que se llame desde una aplicación. A diferencia de los Servicios de Internet Information Server (IIS) y de las versiones anteriores de ASP, en las que sólo las páginas pueden tener acceso a los estados de la aplicación, todas las instancias de IHttpHandler y IHttpModule pueden almacenar y recuperar variables globales dentro del diccionario.
Un mecanismo de sincronización sencillo e intuitivo que permite a los programadores coordinar fácilmente accesos simultáneos a variables almacenadas en el estado de aplicación.
Valores de estado de aplicación a los que se puede tener acceso sólo desde el código que se ejecuta en el contexto de la aplicación de origen. Otras aplicaciones que se ejecuten en el sistema no pueden tener acceso a los valores o modificarlos.
No hay comentarios:
Publicar un comentario