Использование статических переменных вместо состояния приложения в ASP.NET

Я планирую использовать статические переменные вместо состояния приложения в ASP.NET, и мне интересно, если это правильный подход:

[Global.asax.cs]

...

public class Global : System.Web.HttpApplication
{
    void Application_Start(object sender, EventArgs e)
    {
        // Code that runs on application startup

    }

    ...

    private static Dictionary<string, object> cacheItems = new Dictionary<string, object>();
    private static object locker = new object();

    public static Dictionary<string, object> CacheItems
    {
        get
        {
            lock (locker)
            {
                return cacheItems;
            }
        }

        set
        {
            lock (locker)
            {
                cacheItems = value;
            }
        }
    }

    public static void RemoveCacheItem(string key)
    {
        cacheItems.Remove(key);
    }

    ...
}

Как видите, я использую автоматически созданный файл Global.asax (и код позади). Я добавил несколько статических переменных и методов. Я могу использовать их после этого таким образом:

[some .cs file]
foreach(KeyValuePair<string, object> dictItem in Global.CacheItems)
{
    ...

Это правильный путь, или я должен создать новый класс вместо существующего Global? Если я должен создать новый класс, как я могу это сделать и где?

Ответы на вопрос(1)

Ваш ответ на вопрос