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.

Publicado por

Juan Carlos González

Juan Carlos es Ingeniero de Telecomunicaciones por la Universidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC). Cuenta con más de 12 años de experiencia en tecnologías y plataformas de Microsoft diversas (SQL Server, Visual Studio, .NET Framework, etc.), aunque su trabajo diario gira en torno a SharePoint & Office 365. Juan Carlos es MVP de Office Servers & Services desde 2015 (anteriormente fue reconocido por Microsoft como MVP de Office 365 y MVP de SharePoint Server desde 2008 hasta 2015), coordinador del grupo de usuarios .NET de Cantabria (Nuberos.Net, www.nuberos.es), co-fundador y coordinador del Grupo de Usuarios de SharePoint de España (SUGES, www.suges.es), así como co-director de la revista gratuita en castellano sobre SharePoint CompartiMOSS (www.compartimoss.com). Hasta la fecha, ha publicado 8 libros sobre SharePoint & Office 365 y varios artículos en castellano y en inglés sobre ambas plataformas.

Un comentario en “Jugando con Velocity (II)!”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *