Состояние сеанса пользователя относится к веб-миру, в то время как более новая MemoryCache
- это новая реализация, которая теперь обобщает доступность кэширования для других типов приложений, а также для консольных приложений, приложений winform и т. Д. MemoryCache
хранится вдомен приложения, в котором был создан его экземпляр, и является приложением для всех пользователей, обращающихся к приложению.Цитируя эту ссылку MSDN:
Основные различия между классами Cache и MemoryCache заключаются в том, что класс MemoryCache был изменен, чтобы его можно было использовать в приложениях .NET Framework, которые не являютсяASP.NET приложения.Например, класс MemoryCache не имеет зависимостей от сборки System.Web.Другое отличие состоит в том, что вы можете создать несколько экземпляров класса MemoryCache для использования в одном приложении и в одном и том же экземпляре AppDomain.
MemoryCache
класс присутствует в отдельной сборке System.Runtime.Caching.dll
в целом, чтона него можно сослаться
Примечание : класс MemoryCache
и класс System.Web.Caching.Cache
представляют собой разные реализации, лежащие в разных библиотеках без взаимозависимости.Просто концептуально их поведение выглядит очень похоже, так как в любом случае они кешируются в конце дня.
Я бы предложил прочитать this , this и эта ветка для еще лучшего понимания и некоторых замечательных мыслей по этой теме.
Чтобы ответить на ваш вопрос:
- Для хранения чего-либо, что приложение широко, но легко-weight - Использовать Состояние приложения .
- Для хранения всего, что всего приложения, но ресурсоемкое - Использовать Web Cache
- Для хранения чего-либо, что зависит от пользователя (обычно легкие вещи, так как тяжелые вещи не масштабируются с ростом пользователей вашего сайта) - Используйте Состояние сеанса
Пока вы занимаетесь разработкой веб-сайтов, старый веб-кеш должен выполнять все ваши сценарии использования.Могут быть очень специализированные случаи использования на дочернем сайте, где вам потребуется более новый MemoryCache
, но я не могу придумать ни одного в данный момент.