In this chapter, you've seen several ways to maintain state information for single users or the entire application. You've also seen ways to cache data on the client browser and on the server. The caching mechanisms available to you range from single values to complete tables.
You can easily overuse these methods. My advice is, don't store any more information than you have to. Although caching all the data is tempting, with practice you'll find a good balance between caching data in memory and storing/retrieving data from a database. Often, it's useful to cache data during specific page sequences. There may be several such sequences, each of which comprises only a part of your application, and each may require that you cache different information. You should use the Session and Application Contents methods to find and remove data that you no longer need.