Что такое подходящий вариант использования для всего вышеперечисленного? Кажется, сеанс и кеш очень похожи, и я не могу придумать много пользы для приложения.
Приложение против сеанса против кеша
Ответ 1
Приложение и состояние сеанса имеют очень важное значение:
Состояние приложения - это репозиторий данных, доступный для всех классов в приложении ASP.NET. Состояние приложения хранится в памяти на сервере и выполняется быстрее, чем хранение и получение информации в базе данных. В отличие от состояния сеанса, специфичного для сеанса с одним пользователем, состояние приложения применяется ко всем пользователям и сеансам. Следовательно, состояние приложения является полезным местом для хранения небольших объемов часто используемых данных, которые не меняются от одного пользователя к другому.
Обзор состояния приложения
Обзор состояния сеанса
С другой стороны, кэширование позволяет хранить объекты в памяти, которые требуют обширных ресурсов сервера для создания - он предлагает мощные функции, которые позволяют настраивать, как элементы кэшируются и как долго они cached - вы можете установить обширные свойства, такие как приоритет и срок действия.
Кэширование данных данных приложений
Хотя они могут казаться похожими, они отчетливо отличаются друг от друга и имеют разные роли в приложении ASP.NET в самом широком смысле.
Ответ 2
Сессия для каждого пользователя. Он не используется пользователями.
Область приложения и кэш-приложения являются широкими. Срок действия кеша может быть истек. Если у вас есть данные, которые можно изменить, скажите 5 минут, вы можете поместить их в кеш, а если у вас есть данные, которые не обновляются регулярно, это будет кандидат размещения в переменной приложения.
Ответ 3
Приложение
1)Application object always stores data on the server side RAM
example: Application["hits"]=1;
(key-value pair).
2)Application object maintains its data till the web application is shut down or we release the data manually by assigning null or Clear() method is called.
3)Application object has no Timeouts or File Dependencies.
4)Its data can be assigned using Global.asax file
5)Application object is not used for performance optimization.
USED in maintaining hit counters, data from readonly files/tables which can then
be displayed on varrious web pages.
Сессия
A session is defined as a period of time that is shared between the web application
and the user. Each user that is using the web application has their own session.
Items/Objects can be placed into the Session which would only define these object
for that user. Session contains key variables which help to identify the related values.
This can be thought of as a hash table. Each user would represent a different key node
in the hash identifying unique values. The Session variables will be clear by the
application which can clear it, as well as through the timeout property in the
web config file. Usually the timeout is 20 minutes by default.
Кэш
The Cache can be thought of as the memory. It is simply, the memory of the machine/server
from which the source code is running from. This is an extremely important feature which
can allow you to store difficult and complex constructed data which can be reused.
Imaging you had to query a large set of different databases, which may consist records
from databases ranging from MySQL, MSSQL, to ORACLE which were joined using some VB.NET
or C# code. Now if the records where changing insignificantly every couple of hours,
why would we need to do a live fetch/lookup every time the user wanted to get some
information? It would first be slow, and resource intensive as we would have to
reconstruct all the data before displaying it to the user. By using Cache, we can store
it in memory, and directly bind the data. This would be a more elegant and efficient way
to retrieve data, while maintaining optimal performance.
Подробнее Здесь
Ответ 4
Сессия используется для пользовательской информации. Как правило, вы должны сохранять имя пользователя, пользовательские настройки, такие как имя экрана, идентификатор корзины (если вы что-то продаете), электронную почту и т.д.
Кэш обычно используется, когда у вас есть информация, которая доступна для всех людей. Обычно это сокращение длинных процессов или обращений к БД. IE вы хотите отображать верхние n статей. Вы можете установить для этого ограничение по времени, так что он обновит дату через время, минуя
Прикладная переменная хороша для статической информации, которую вы хотите сохранить на сервере. Это может быть местоположение, где находятся медиа файлы.
Ответ 5
Существует очень важное ограничение встроенного объекта сеанса inproc, о котором ни один из других ответов не указал, что ограничивает его использование на веб-сайтах concurrency. В частности, если вы измените какой-либо элемент сеанса в своем коде, запрос остановится и дождитесь завершения всех запросов на чтение для объекта сеанса. В этом случае кеш - намного лучший выбор:
Я только что узнал, почему все сайты ASP.Net медленны, и я пытаюсь решить, что с этим делать
Ответ 6
Ни один из этих ответов не дает достаточно четкого важного свойства Cache - он имеет область применения и общий для всех пользователей! Все данные, хранящиеся в кеше, доступны всем пользователям. Вы по-прежнему можете хранить данные в кеше, которые должны быть доступны только для специфического пользователя, но вы должны использовать значение ключа кеша, которое является уникальным для этого пользователя, например. Cache.Add("UserData" + userID, data...
Ответ 7
Переменные состояния сеанса доступны на всех страницах, но только для одного сеанса. Переменные сеанса похожи на однопользовательские глобальные данные. Только текущий сеанс имеет доступ к своему состоянию сеанса.
Переменные состояния приложения доступны на всех страницах и во всех сеансах. Переменные состояния приложения похожи на многопользовательские глобальные данные. Все сеансы могут считывать и записывать переменные состояния приложения.
Ответ 8
Переменные состояния сеанса доступны на всех страницах, но только для одного сеанса. Переменные сеанса похожи на однопользовательские глобальные данные. Только текущий сеанс имеет доступ к своему состоянию сеанса.