0

Are there any clever layers out there to sit on top of the System.Web.Caching.Cache class to handle simple scenarios to fetch items using generics.

I'd like to maybe provide a delegate function to retrieve an item, and be able to fetch an item with a strongly typed GetItem and a delegate function to retrieve an item if it isnt found.

For instance

 CleverCache<K, T> 
 T GetItem(K)

 RegisterDelegate(FetchItemDelegate<K,T>)

I'd also like a nice way to handle a cache that only ever handles a single object.

The ASP.NET Cache object just seems really primitive. It just seems like a hashtable with a timeout. They may as well just call it HashtableWithTimeout for all I care. I want some better astraction. Is this the kind of thing that the caching application block will do for me?

Yes I know this is fairly simple code, i just dont have time for any wheel reinventing right now.

o.k.w
  • 25,490
  • 6
  • 66
  • 63
Simon_Weaver
  • 140,023
  • 84
  • 646
  • 689

2 Answers2

1

You may want to look into some more sophisticated cache providers that can wrap the ASP.NET cache, such as the Enterprise Library's caching block. It provides a much more robust and rich caching story for object lifecycle, invalidation, retrieval, etc.

The ASP.NET cache deserves more credit than you give it - it's actually a very powerful base. Alone, it doesn't do anything complex as you have pointed out, but it is well-designed and robust enough to support some pretty cool stuff.

Rex M
  • 142,167
  • 33
  • 283
  • 313
  • I wasn't aware that the EL caching block had any support for type safe caching or generics. – LBushkin Oct 14 '09 at 02:28
  • @Lbushkin it doesn't, but it does provide a framework that more easily allows item fetch delegation, which is at the core of what OP is describing. Adding generics is as simple as a cast. – Rex M Oct 14 '09 at 02:55
0

You may want to look into SharedCache and Microsoft Velocity as improvements to the basic caching available in ASP.NET. I don't know how extensively strong typing is designed into either - but from the samples and documentation I've seen it's better than the ASP.NET Cache.

LBushkin
  • 129,300
  • 32
  • 216
  • 265
  • Velocity and SharedCache are great products, but they solve a very specific class of problems, of which this question is not a part. – Rex M Oct 14 '09 at 01:11
  • A better way to put it might be that you're recommending OP goes from a bicycle to a city bus system when he really just needs a small car. – Rex M Oct 14 '09 at 01:18