<October 2005>
SuMoTuWeThFrSa
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345

Post Categories

Navigation

Subscriptions

SuperCache - Extending and Wrapping System.Web.Caching.Cache

I'm nearly finished with my cache wrapper object, which I've named SuperCache for lack of a better name (Cache being taken, naturally).  I'll be releasing it with source and a small article describing how to use it, most likely on ASPAlliance.com, but before I call it done I want to solicit some feedback and see if there are any features people are interested in that I could add in.

Currently it wraps pretty much all of the interesting methods of the existing System.Web.Caching.Cache object, as well as adding the following:

  • Clear() - removes all entries from the cache
  • RemoveByPattern() - removes all entries whose keys match a given regular expression
  • InsertRenewable() - inserts an item and specifies a callback method to use to update the item periodically using a background thread.  The user always gets a cached value (fast access), but that value is never stale (at least, no more stale than the interval specified).
  • Insert() and Add() - I support the use of both sliding and absolute expirations concurrently.  This allows for scenarios like "keep cached as long as the item has been requested in the last minute, but not any longer than one hour" which are not supported (easily) using the standard Cache object.

The main reason why you would use this object is to abstract your dependency on a framework object so that if/when you need to extend it or swap it out, you can easily do so.  That is why this will be released with source, and you will be encouraged to add it to your own class library as something like MyCompany.Framework.Caching.SuperCache.  Additionally, I hope the extra functionality I'm exposing will be useful in some situations.

posted on Monday, October 03, 2005 7:36 PM by admin

Powered by Community Server, by Telligent Systems