2013-06-28 15 views
6

Nell'applicazione ASP.NET MVC su cui sto lavorando, c'è una grande quantità di dati statici (non ci sono aggiornamenti/inserimenti in questa tabella durante il runtime) che ho bisogno di recuperare da entrambi i gruppi da diverse colonne o riassunti e aggettivi, le operazioni matematiche sono piuttosto semplici.Framework di caching per .NET

Ora ci sono molte chiamate inviate al repository che rallenta la risposta del controller. Potete per favore suggerire un buon quadro di caching che mi permette di memorizzare nella cache le chiamate repository (con gli stessi parametri di input) senza scrivere codice personalizzato

risposta

5

Memorycache adatta semplicemente il vostro caso con la sola aggiunta nel repository

Ma ricordate:

La classe MemoryCache è simile alla classe ASP.NET Cache. La classe MemoryCache ha molte proprietà e metodi per accedere alla cache che risulterà familiare se si è utilizzata la classe Cache ASP.NET. Le principali differenze tra le classi Cache e MemoryCache sono che la classe MemoryCache è stata modificata per renderla utilizzabile dalle applicazioni .NET Framework che non sono applicazioni ASP.NET. Ad esempio, la classe MemoryCache non ha dipendenze dall'assembly System.Web. Un'altra differenza è che è possibile creare più istanze della classe MemoryCache per l'utilizzo nella stessa applicazione e nella stessa istanza di AppDomain.

1

CacheManager

CacheManager è un framework fonte caching aperto per NET scritto in C# ed è disponibile tramite NuGet. Supporta vari provider di cache e implementa molte funzionalità avanzate.

semplice per iniziare con ..

var cache = CacheFactory.Build<string>(
    p => p.WithSystemRuntimeCacheHandle()); 

facile da usare ...

cache.AddOrUpdate("key", "region", "value", _ => "update value"); 
cache.Expire("key", "region", TimeSpan.FromMinutes(1)); 
var val = cache.Get("key", "region"); 
var item = cache.GetCacheItem("key", "region"); 
cache.Put("key", "put value");