• With respect to how to handle database changes, some method of cache refresh has obviously got to be designed.  What this is might depend on the volatility of the data.  I would assume if the data is very volatile that no caching would be used but assuming that the data is somewhat static and caching is of benefit the method of refresh could range from a button on the screen where the user can refresh the data themselves to some method dependant on external events (such as time - refreshed every 20 minutes, or after a certain period of inactivity; or even refreshed based on some other event (for example, the contents of some file changing)  To express the cache's dependency on a file, use the System.Web.Caching.CacheDependency class.  

    eg.   Dim depends As New _

    System.Web.Caching.CacheDependency _

            (Server.MapPath("Header.txt"))

            Application["Employees"].Insert("News", ds, depends)

        Else

            dataset = CType(Application["Employees"], DataSet)

        End If

    I don't think that deciding how to refresh cache is trivial nor is the decision to even use caching trivial.  Like most things it depends.  Overall Dinesh put forward some good thoughts.  I look forward to the next article.

    Francis