Приложение против сеанса против кеша

Что такое подходящий вариант использования для всего вышеперечисленного? Кажется, сеанс и кеш очень похожи, и я не могу придумать много пользы для приложения.

Приложение и состояние сеанса имеют очень важное значение:

Состояние приложения – это хранилище данных, доступное для всех classов в приложении ASP.NET. Состояние приложения хранится в памяти на сервере и выполняется быстрее, чем хранение и получение информации в базе данных. В отличие от состояния сеанса, специфичного для сеанса с одним пользователем, состояние приложения применяется ко всем пользователям и сеансам . Следовательно, состояние приложения является полезным местом для хранения небольших количеств часто используемых данных, которые не меняются от одного пользователя к другому

Обзор состояния приложения
Обзор состояния сеанса

С другой стороны, кэширование позволяет хранить объекты в памяти, требующие обширных ресурсов сервера для создания – он предлагает мощные функции, которые позволяют настраивать, как элементы кэшируются и как долго они кэшируются, – вы можете установить обширные свойства, такие как приоритет и истечения срока действия.

Обзор данных кэширования приложений

Хотя они могут казаться похожими, они отчетливо отличаются друг от друга и имеют разные роли в приложении ASP.NET в самом широком смысле.

Сессия для каждого пользователя. Он не используется пользователями.

Область приложения и кэш-памяти – это широкая область применения. Срок действия кеша может быть истек. Если у вас есть данные, которые можно изменить, скажем, 5 минут, вы можете поместить это в кеш, тогда как если у вас есть данные, которые не обновляются регулярно, это является кандидатом на размещение в переменной приложения.

> Применение

 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. 

Подробнее здесь

Сессия используется для пользовательской информации. Как правило, вы должны сохранять имя пользователя, пользовательские настройки, такие как имя экрана, идентификатор корзины (если вы что-то продаете), электронную почту и т. Д.

Кэш обычно используется, когда у вас есть информация, которая доступна для всех людей. Обычно это сокращение длинных процессов или обращений к БД. IE вы хотите отображать верхние n статей. Вы можете установить для этого ограничение по времени, чтобы обновить дату после некоторого времени

Переменная приложения хороша для статической информации, которую вы хотите сохранить на сервере. Это может быть местоположение, где находятся медиа-файлы.

Существует очень важное ограничение встроенного объекта сеанса inproc, о котором никто из других ответов не указал, что ограничивает его использование на сайтах с высоким уровнем параллелизма. В частности, если вы измените какой-либо элемент сеанса в своем коде, запрос остановится и дождитесь завершения всех запросов на чтение для объекта сеанса. В этом случае кеш – намного лучший выбор:

Я просто обнаружил, почему все сайты ASP.Net медленны, и я пытаюсь выяснить, что с этим делать

Ни один из этих ответов не дает достаточно четкого важного свойства Cache – он имеет область применения и разделяется всеми пользователями! Все данные, хранящиеся в кеше, доступны всем пользователям. Вы по-прежнему можете хранить данные в кеше, которые должны быть доступны только конкретному пользователю, но вы должны использовать значение ключа кеша, уникальное для этого пользователя, например Cache.Add("UserData" + userID, data...

Переменные состояния сеанса доступны на всех страницах, но только для одного сеанса. Переменные сеанса похожи на однопользовательские глобальные данные. Только текущая сессия имеет доступ к своему состоянию сеанса.

Переменные состояния приложения доступны на всех страницах и во всех сеансах. Переменные состояния приложения – это как многопользовательские глобальные данные . Все сеансы могут считывать и записывать переменные состояния приложения.

Переменные состояния сеанса доступны на всех страницах, но только для одного сеанса. Переменные сеанса похожи на однопользовательские глобальные данные. Только текущая сессия имеет доступ к своему состоянию сеанса.

  • Изменение цвета ячейки на разные значения - Gridview
  • Каков наилучший способ блокировки кеша в asp.net?
  • Могу ли я скрыть / показать asp: пункты меню на основе роли?
  • WebAPI для возврата XML
  • Использование двоеточия (:) в URL-адресе с ASP.NET/IIS
  • Log4net не записывает файл журнала
  • передать jquery json в asp.net httphandler
  • Могу ли я получить часовой пояс браузера в ASP.NET или мне нужно полагаться на операции JS для извлечения информации?
  • Насколько серьезной является эта новая уязвимость безопасности ASP.NET и как ее можно обойти?
  • Совместное использование куки-файлов ASP.NET в поддоменах
  • 'WebForm_DoPostBackWithOptions' не определен в IE11 Preview
  • Interesting Posts

    Пользовательский интерфейс

    Можно ли «украсть» обработчик событий из одного элемента управления и передать его другому?

    Как удалить несколько значений из вектора?

    raw vs. html_safe против h для unescape html

    Выбор между HttpClient и WebClient

    Как настроить несколько сайтов на сервере с одним статическим IP-адресом?

    Вызывается: java.lang.NullPointerException в org.apache.spark.sql.Dataset

    Почему тайные старые шаги для загрузки с USB с GPT и UEFI?

    Как настроить параметр «ручное окно» VPN для сервера и клиента, чтобы разрешить спутниковое VPN-соединение?

    Каково решение проблемы с синим экраном (BSOD)?

    Почему Spark быстрее, чем Hadoop Map Reduce

    Как я могу избежать включения файлов реализации classа?

    Несколько значений для одного свойства с переменными списками аргументов в Sass

    Ошибка: выполнение выполнено для задачи «: app: packageRelease». > Невозможно вычислить hash из /../AndroidStudioProjects/../classes.jar

    Перечислите последнюю базовую линию компонента в streamе UCM один за другим

    Давайте будем гением компьютера.