Good article...It's nice to see some C# code for a change. this works well for small amounts of data (like lookup lists), as storing to much data in memory can seriously degrade performance.
When dealing with larger recordsets it's a good idea to cache to disk instead of memory. The easiest way to do this in C# is using disconnected recordsets. Basically, the data is serialized to disk as a XML recordset.
Of course, dealing with updates to data is an added layer of complexity, but this is a problem with any caching technique. There are tons of solutions to this problem, though...they just take time to develop.
Signature is NULL