Say I have some 10 “categories” that I need to reference in a web app. Currently I’m storing these categories in the DB and am retrieving them (category name and id) during pageload in my basepage, storing them in a hashtable and then using the hashtable to reference the categories. I realized that the DB call is being made during each pageload. I only need to pull these categories once as they never change during a given session. What’s the best way to do this?
-
Do whatever I am doing, but store it as a Application variable?
-
Hard code the categories in the code, and do away with the database?
-
Store the categories in a session variable? And call the DB only if the session is empty?
-
Or something else?
I’m just curious to know what the best-practice is for doing such things.
If the categories are user dependent then I’d store them in the Session variable; otherwise I’d use the ASP.NET Caching functionality (or preferred distributed caching). This allows you to avoid hitting the database whilst being able to control how long the categories should be cached for.