Blog del CIIN

Blog del Centro de Innovación en Integración de Cantabria
Jugando con Velocity (II)!

Siguiendo con la serie de posts sobre Velocity que comencé con la parte relativa a la descripción de Velocity y la sencillez de instalación, en esta ocasión voy a dar unas pequeñas pinceladas de lo fácil que es usar la API de Velocity para trabajar con los datos que tengamos en caché. Para estas pruebas he utilizado Visual Studio 2008 SP1 y la CTP de abril de Velocity:

  • Como siempre, el primer paso es crear nuestro proyecto (en mi caso, se trata de una simple aplicación de consola.
  • Una vez creado el proyecto, tenemos que añadir las referencias a los ensamblados de Velocity necesarios para trabajar con el sistema de caché: CacheBaseLibrary.dll y ClientLibrary.dll
image image
  • Una vez añadidas las referencias, tenemos que crear un archivo de configuración XML en el que especificamos los parámetros de la estructura de caché de Veolcity: el host, el puerto utilizado, el TTL, etc.

<?xml version="1.0" encoding="utf-8" ?>  

<configuration>  

  <!--configSections must be the FIRST element -->  

  <configSections> 

    <!-- required to read the <dataCacheClient> element -->  

    <section name="dataCacheClient"  

       type="Microsoft.Data.Caching.DataCacheClientSection,  

       CacheBaseLibrary"  

       allowLocation="true"  

       allowDefinition="Everywhere"/>  

  </configSections>  

  <!-- routing client--> 

  <dataCacheClient deployment="routing"> 

    <!-- (optional) specify local cache --> 

    <localCache 

      isEnabled="true" 

      sync="TTLBased" 

      objectCount="100000" 

      ttlValue="300" /> 

    <!--(optional) specify cache notifications poll interval 

    <clientNotification pollInterval="300" /> 

    --> 

    <!-- cache host(s) --> 

    <hosts> 

       <host 

         name="localhost" 

         cachePort="22233"  

         cacheHostName="DistributedCacheService"/> 

    </hosts>  

  </dataCacheClient>  

</configuration>  

  • Para trabajar con la caché de Velocity el código necesario es el siguiente:

using System;  

using System.Collections.Generic;

using System.Linq;

using System.Text; 

 //Namespace needed for caching

using Microsoft.Data.Caching; 

 namespace Velocity_Sample

    class Program 

   

        static void Main(string[] args) 

       

            //Cache factory object -> Different algorithms for working with the cache 

            DataCacheFactory dcfFactory = 

                new DataCacheFactory(); 

            //Cache object for putting and retrieving data 

           DataCache dcCache = 

                dcfFactory.GetDefaultCache(); 

            //Putting data into the cache 

             dcCache.Put("CHI1", "JcGonzalez"); 

            //Getting data from the cache 

            Console.WriteLine("Valor en caché {0}",dcCache.Get("CHI1"));  

           Console.WriteLine(); 

            try

            

                dcCache = dcfFactory.GetCache("Inventario"); 

           

            catch (Exception ex) 

            {               

             (ex.Message); 

           

            Console.ReadLine();           

         

    }

 

  • Cómo veis, para poder trabajar con la caché de Velocity:
    • Definimos en primer lugar una instancia de DataCacheFactory que es la que nos marca como obtener acceso a los datos de la caché.
    • Definimos una instancia de DataCache que es la que nos permite leer / escribir en la caché. Esta instancia la inicializamos a partir del método GetDefaultCache que nos permite acceder a la caché por defecto de Velocity (default).
    • A partir de aquí, escribir datos en la caché y leerlos es tan sencillo como llamar a los métodos Put() y Get() del objeto DataCache definido.
  • Sin más, probamos que efectivamente hemos escrito un dato en la caché.
  • Si tratamos de acceder a una caché no creada, tendremos el correspondiente error.
  • Finalmente comentaros que podemos monitorizar el contenido de la caché desde la herramienta PowerShell de administración. Podemos ver cual es el contenido de la caché con el comando Get-CacheStatistics.
image image image

Y hasta aquí llega este segundo post sobre Velocity. Espero que os haya resultado interesante.

Published 16/7/2009 23:17 por Juan Carlos González Martín

Comentarios

# Jugando con Velocity (III)!@ Saturday, November 14, 2009 11:40 PM

Después del último post sobre Velocity , en esta ocasión os quería llamar

Blog del CIIN

Deja tu comentario

(requerido) 
(requerido) 
(opcional)
(requerido)