Installer Microsoft Distributed Cache (Velocity)25 mars 2010

Logiciel

Velocity, le nom de code de ce projet de Microsoft, est un service de cache distribué. Il permet de mettre en place facilement un système de cache sur vos applications existantes. Velocity peut se brancher sur un serveur SQL Server, Express ou normal.

Il n’y a pas réellement de plus par rapport à d’autre solution de cache distribué disponibles sur le marché mais il s’agit d’une solution Microsoft, et pour les amoureux du tout MS, ce sera suffisant ^^

Téléchargements

J’ai récupéré les programmes d’installation des produits suivants afin de vous assurer que ces derniers seront toujours disponibles si les sources originales sont déplacées dans le futur. Si les liens officiels ne passent pas, utilisez les liens dotnetnews.fr correspondant.

Microsoft Distributed Cache (Velocity) CTP3

Lien officiel : http://www.microsoft.com/downloads/details.aspx?FamilyId=B24C3708-EEFF-4055-A867-19B5851E7CD2&displaylang=en

IDE d’administration du cache

Lien officiel : http://mdcadmintool.codeplex.com/SourceControl/list/changesets (Lien Download en haut à droite de la page)

Installation du Cache

Velocity Options d'installation

Les options par défaut nous suffiront.

Paramétrage Cache Velocity

A cette étape, vous devez avoir créer une base de données vide dont vous renseignerez la chaîne de connexion dans la zone de texte « Connection string (for database) ».

Ayant désinstaller et réinstaller à mainte reprises ce produit, certaines informations ne m’ont pas été demandées lors de cette installation. Comme le nom du cluster ainsi que sa taille. Lors de la première installation, j’avais donné comme nom de cluster : « vc_test » et en taille : « Small (1-4) ».

Vous pouvez laisser les valeurs par défaut pour « Service port number », « Cluster port number » et « Max Cached Data Size ».

Cliquez ensuite sur « Test Connection » pour valider la connexion à la base de données.

Velocity Service installé

Une fois l’installation terminée, le service « Microsoft project code named Velocity » sera présent dans la liste des services du gestionnaire de services Windows.

Si vous jetez un oeil à la base de données, vous pourrez voir les tables et procédures stockées que Velocity a créé :

Base de données Velocity

Configuration du cache

L’application AppFabric Caching Admin Tool ne s’installe pas, il suffit de copier le contenu du fichier zip dans le répertoire de votre choix, et de lancer « MDCAdminTool.exe ».

Vous devriez voir apparaître cette fenêtre :

AppFabric Caching Admin Tool

Pour démarrer le service, faites comme suit à moins que vous n’ayez démarrer le service via le gestionnaire de services Windows suite à l’installation de Velocity.

Démarrer le Cache Host

Il est possible de faire d’autres opérations de configuration ou d’ajout de cache nommés par exemple. Mais je vous laisse le découvrir par vous-même.

Ma première application C# utilisant Velocity

Tout d’abord, allez chercher les assemblies correspondant à l’API client du service de cache. Si vous avez installé Velocity dans le dossier par défaut, ce sera « C:\Program Files\Microsoft Distributed Cache\V1.0″. Les assemblies à récupérer sont ClientLibrary.dll et CacheBaseLibrary.dll.

Il faudra référencer les deux lors que vous voudrez concevoir une application utilisant le cache Velocity.

Je vous montre ici, la manière la plus simple de réaliser la connexion au service de cache et celle qui me semble la plus propre, c’est à dire le fichier de configuration de l’application : app.config.

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

  <configSections>

    <section name="dataCacheClient"
             type="Microsoft.Data.Caching.DataCacheClientSection, CacheBaseLibrary" />

  </configSections>

  <dataCacheClient deployment="routing">
    <hosts>
      <host
         name="localhost"
         cachePort="22233"
         cacheHostName="DistributedCacheService"/>
    </hosts>
  </dataCacheClient>

</configuration>

DistributedCacheService est le nom par défaut du service de cache.

Ensuite, dans votre code C#, il suffira d’écrire ces quelques lignes afin d’écrire, puis lire dans le cache:

DataCacheFactory factory = new DataCacheFactory();
DataCache cache = factory.GetDefaultCache();

cache.Add("toto", DateTime.Now);
DateTime totoDate = (DateTime)cache.Get("toto");

le fichier de configuration est lu au moment de l’appel du constructeur de DataCacheFactory. Si vous voulez utiliser un cache nommé, il suffit de remplacer la seconde ligne par :

DataCache cache = factory.GetCache("CacheName1");

Conclusion

Il s’agit d’une solution peut couteuse en ressource et en temps pour la mise en oeuvre.

Cependant, il s’agit encore d’une CTP (Community Technical Preview) donc encore en test; il est donc possible que vous soyez confrontés à des bugs du produit.

Un webcast des TechDays 2009 sur Velocity : http://www.microsoft.com/france/vision/mstechdays09/Webcast.aspx?EID=f5ab271b-5d8c-461e-b789-104edb4504f5