Оглавление:
Определение - что означает состояние приложения?
Состояние приложения в контексте .NET - это программная конструкция, доступ к которой обычно осуществляется через свойство приложения объекта HttpContext.
Состояния приложения обычно хранят данные в форме существительных, таких как человек, место или предмет, и представляют словарь значения ключа, используемый для хранения этих объектов и переменных. Класс состояния приложения создается при первом запросе ресурса URL любым клиентом и часто используется программистами как глобальные переменные, видимые всеми клиентами в их сеансах после этого.
Состояние приложения также можно назвать состоянием HttpApplication.
Техопедия объясняет состояние приложения
Работа браузера в форме HTTP-запросов и ответов по сути не имеет состояния - это означает, что каждая страница, отправленная браузеру пользователя, не знает о других пользователях, которые могут просматривать ту же страницу или даже другие страницы, к которым обращался тот же пользователь.
Это может вызвать некоторые трудности, когда дело доходит до предоставления пользователям Интернета полезного опыта. Например, если пользователь запрашивает первую страницу из 10 страниц данных с веб-сайта, скорее всего, будет задержка, когда веб-сервер выходит в базу данных для получения информации. Веб-приложение должно быть достаточно умным, чтобы распознать, что страница 2, скорее всего, будет запрошена пользователем, и предпринять шаги для быстрого предоставления этой информации, сохраняя ее в кэш-памяти веб-сервера. Это было бы трудно сделать без каких-либо средств создания и хранения глобальных переменных - в данном случае кэшированных данных.
Состояние приложения обеспечивает это средство создания глобальных переменных, которые могут видеть все пользователи.
Одним из недостатков классов состояния приложений является то, что они могут вызвать взаимоблокировку, при которой активность одного пользователя может неосознанно пытаться обновить переменную одновременно с тем, как это делает другой пользователь, или может вызывать условия гонки и нарушения доступа.
Несмотря на это, использование классов состояния приложения имеет смысл и может быть использовано для обеспечения гораздо большего удобства пользователей для тех, кто просматривает Интернет.
