J'ai commencé à utiliser Azure AppFabric Caching Service avec succès, mais je ne suis pas certain de la meilleure façon de créer l'objet DataCacheFactory. Maintenant, je le crée pour chaque appel dans le cache, mais apparemment ce n'est pas la façon idéale de le faire ...Meilleure pratique lors de l'utilisation d'Azure AppFabric Caching Service?
Certains conseillent d'appeler un singleton. Mais je ne suis pas sûr de comprendre comment cela serait mis en œuvre (pas la classe Singleton, mais comment lier tout cela ensemble).
Aujourd'hui, j'ai une classe CacheProvider qui est créée pour moi en utilisant Ninject où je peux faire des opérations Get/Put/Remove. Pour chacune de ces méthodes, je crée l'objet DataCacheFactory, puis appelle .GetDefaultCache() pour obtenir l'objet DataCache, où j'appelle respectivement Put/Get/Remove. Je le fais dans une seule méthode qui ressemble à ceci:
private T Cache<T>(Func<DataCache, T> cacheAction)
{
using (DataCacheFactory dataCacheFactory = new DataCacheFactory())
{
DataCache dataCache = dataCacheFactory.GetDefaultCache();
return cacheAction(dataCache);
}
}
Je suis maintenant assez sûr que ce soit pas si-idée intelligente, je place obtiendrais l'objet DataCache par un Singleton où le DataCacheFactory l'objet est juste créé une fois. MAIS comment cet objet survivra-t-il entre les demandes? Et comment cela fonctionne-t-il avec> 1 instance sur Azure?
J'espère que tout cela a du sens et que quelqu'un avec plus d'expérience que moi (3 heures) peut m'aider.
Voir méthode CacheUtil.GetCache de http://www.hanselman.com/blog/InstallingConfiguringAndUsingWindowsServerAppFabricAndTheVelocityMemoryCacheIn10Minutes.aspx –