Книга: C# для профессионалов. Том II

Конфигурация приложения

Конфигурация приложения

В этой главе без каких-либо подробностей упоминалось о существовании концептуального приложения, содержащего страницы и конфигурационные настройки. Это важная концепция для восприятия, особенно при конфигурировании web-сайтов множеством одновременных пользователей.

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

Приложение определяется как все файлы проекта, оно сконфигурировано с помощью файлов web.config. Объект Application создается, когда приложение запускается в первый раз, что происходит, когда поступает первый запрос HTTP. В это время также срабатывает событие Application_Start, обработчик событий для которого детально описывается в global.asax (вместе со всеми другими событиями, обсуждаемыми здесь), и создается пул экземпляров HttpApplication. Каждый входящий запрос получает один из этих экземпляров, который выполняет обработку запроса (это означает, что объекты HttpApplication не нуждаются в копировании при одновременном доступе, в отличие от глобального объекта Application). Когда все экземпляры HttpApplication заканчивают свою работу срабатывает событие Application_End, и приложение прекращается, разрушая объект Application.

Когда отдельный пользователь использует приложение Web, запускается сеанс. Как и в случае приложения, это включает создание специфического для пользователя объекта Session вместе с включением события Session_Start. В течение сеанса в отдельные запросы могут входить события Application_BeginRequest и Application_EndRequest. Это повторяется несколько раз за сеанс, когда в приложении происходит доступ к различным ресурсам. Отдельные сеансы могут прекращаться вручную или будут прерываться, если не получают больше никаких запросов. Прекращение сеанса включает событие Session_End и разрушение объекта Session.

Как этот процесс может нам помочь? Существует несколько вещей, которые можно сделать, чтобы рационализировать приложение. Вернемся к приложению, которое разрабатывалось в этой главе. Каждый раз при доступе к странице .aspx множество записей заполняется содержимым PCSWebApp3.mdb. Это множество записей всегда используется только для считывания данных, так как для добавления мероприятий в базу данных используется другой метод. В таких случаях можно заполнить множество записей в обработчике событий Application_Start и сделать его доступным для всех пользователей. Единственный раз, когда понадобиться обновить множество записей, возникнет, если будет добавлено событие. Это существенно повышает производительность, так как в большинстве запросов не будет требоваться доступ к базе данных.

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

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

Оглавление книги


Генерация: 4.589. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз