Windows Azure AppFabric Caching es un sistema de caché distribuida, en memoria, que se ofrece como un servicio en la nube.
Un servicio similar ya existía para soluciones on-premise, integrado dentro de Windows Server AppFabric. Ahora tenemos las mismas capacidades y características para aplicaciones que estén en la nube. Se ofrece como un servicio en la nube, por lo que como veremos nos vamos a tener que hacer nada relacionado con las tareas de instalación, configuración o administración…simplemente hacer uso del servicio.
Esta característica la tenemos disponible en los LABS de AppFabric, a los cuáles podemos acceder desde aquí: https://portal.appfabriclabs.com
Una vez que accedamos al portal, tendremos que crear un nuevo namespace, que como seguro que ya sabéis, debe ser único.
El namespace de AppFabric nos da acceso a las características de Service Bus, Access Control y Caché, que en este post es el que nos interesa.
Si accedemos al servicio de Caché veremos una pantalla como la siguiente, dónde se encuentra toda la información que necesitamos para poder hacer uso de este servicio desde nuestras aplicaciones; URL de la caché, puerto, token de seguridad (podemos integrar la seguridad con Access Control) y la información que necesitamos tener para poder integrar la aplicación.
En la sección de integración no da información muy interesante para poder hacer que nuestras aplicaciones hagan uso de este caché, para que prácticamente sea copiar ciertos valores en el fichero de configuración de la aplicación.
<configSections> <!-- Append below entry to configSections. Do not overwrite the full section. --> <section name="dataCacheClient" type="Microsoft.ApplicationServer.Caching.DataCacheClientSection, Microsoft.ApplicationServer.Caching.Core" allowLocation="true" allowDefinition="Everywhere"/> </configSections> <dataCacheClient deployment="Simple"> <hosts> <host name="ibongeeks.cache.appfabriclabs.com" cachePort="22233" /> </hosts> <securityProperties mode="Message"> <messageSecurity authorizationInfo="XXX”
</messageSecurity> </securityProperties> </dataCacheClient> <!-- If session state needs to be saved in AppFabric Caching service add the following to web.config
inside system.web --> <sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider"> <providers> <add name="AppFabricCacheSessionStoreProvider" type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache" cacheName="default" useBlobMode="false" /> </providers> </sessionState> <!-- If output cache content needs to be saved in AppFabric Caching service add the following to
web.config inside system.web --> <caching> <outputCache defaultProvider="DistributedCache"> <providers> <add name="DistributedCache" type="Microsoft.Web.DistributedCache.DistributedCacheOutputCacheProvider, Microsoft.Web.DistributedCache" cacheName="default" /> </providers> </outputCache> </caching>
Por ejemplo, hacer que una aplicación haga uso de este sistema para que la información de Sesión de la aplicación se haga uso de esta caché será tan sencillo como hacer caso a la información de integración y hacer un “copy-paste” de la información que te dice que tienes que copiar en tu aplicación.
Bueno y un paso más…que es añadir las referencias Microsoft.ApplicationServer.Caching.Client, Microsoft.ApplicationServer.Caching.Core y Microsoft.Web.DistributedCache al proyecto y establecer la propiedad “Copy Local” a True, ya que por defecto estos ensamblados todavía no se encuentran en las máquinas virtuales de Windows Azure.
Estas referencias están en %ProgramFiles%Windows Azure AppFabric SDKV2.0AssembliesCache
Y para próximos post, dejamos ver en detalle cómo puede hacerse uso de esta caché desde nuestra aplicación para guardar la información que consideremos.
Hola Ibon,
Sigo habitualmente tu blog y me he puesto a investigar más sobre la caché de Azure. Estoy haciendo un ejemplo de consola en el que meto en el App.config el texto que me pone en el portal de Azure tal y como indicas. Creo un constructor vacio:
«DataCacheFactory cacheFactory = new DataCacheFactory();»
Para que tenga que leer del archivo de configuración los parámetros, pero a la hora de compilar dice que no reconoce los tags de deployment=»Simple»
¿Sabes que puede ser? Gracias.
Hola de nuevo,
Me respondo yo mismo, lo único que había que hacer era desinstalar AppFabric Server del ordenador ya que no es compatible con la versión azure CTP.