A flexible caching framework for .NET