Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Информационные технологии для разработчиков Разработка веб-приложений с Microsoft .NET


Разработка веб-приложений с Microsoft .NET Framework 4 — Путевые заметки — Часть 3

net_frameworkОбработка событий и управление состоянием.

ASP.NET уничтожает любой объект созданный на странице после отображения страницы.
Эти объекты не будут доступны в течение следующего запроса пользователя.

Для сохранения данных между запросами можно использовать:

  • ViewState: data stored in controls of page.
  • Hidden Fields: data stored as field on page.
  • Session State: data stored for use in any page in user’s visit.
  • Cookies: data stored on user’s computer in a file.
  • Query String: data stored in URL.
  • Application State: data stored on server and accessible by any page within application. Can be accessed from different user’s sessions. Lost if application is restarted.

Урок 1 — Жизненный цикл и события ASP.NET

Класс HttpApplication предоставляет несколько событий на уровне приложения.
Вы можете использовать эти события в файле Global.asax.

  • Application_Start: raised when application is started by IIS. To initialize application level variables.
  • Application_End: raised when application stops or shuts down. To free application resources, or logging.
  • Application_Error: raised when unhandled error in application. To perform worst-case, catch-all error logging.

Урок 2 — Управление состоянием на стороне клиента.

Используется чтобы освободить ресурсы, позволяющие обрабатывать больше пользовательских запросов.
Состоит из следующих элементов:

  • ViewState
  • ControlState: if ViewState is disabled, ControlState will still function.
  • HiddenFields
  • Cookies
  • QueryString

Вы можете управлять шифрованием ViewState, если вы обрабатываете конфиденциальные данные:

  • В web.config, для сайта целиком: <system.web><pages ViewStateEncryptionMode=»Always» /></system.web>
  • На индивидуальной странице, в директиве @Page.

Вы можете отключить ViewState  всей страницы, установив
EnableViewState = «false».
Вы можете отключить ViewState для всех элементов управления на странице, установив ViewStateMode = «Disabled».
Для повторного включения ViewState определенных элементов управления, установите свойство ViewStateMode = «Enabled».
Вы можете хранить пользовательские данные в ViewState страницы, это может быть любой сериализуемый объект.

Урок 3 — Управление состоянием на стороне сервера.

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

  • Application State: для данных, которые должны быть доступны для всех страниц веб-приложения.
    Данные теряются при перезапуске приложения.
    Предоставляется посредством свойства Page.Application.
    Представляет собой словарь ключ-значение.
  • Session State: для хранения пользовательских данных между конкретным индивидуальным запросам.
    Потеряно, если пользователь завершает свою сессию, время сеанса истекает.
    Данные хранятся в объекте Session, представляющий словарь ключ-значение .
    Для повышения производительности можно отключить состояния сеанса для всего приложения в файле web.config
    <system.web><sessionState mode = «off» /></system.web>
    Или для определенной страницы — EnableSessionState = «False» в директиве @Page.
    По умолчанию состояние сеанса использует куки. Вы можете включить состояние сеанса без куки, путем встраивания SessionID в URL
    <system.web><sessionState cookieless = «true» regenerateExpressionId = «true» /><system.web>

Session Events: можно перехватить события сессии в файле Global.asax.

  • Session_Start: to initialize session variables.
  • Session_End: to log information. Raised only when state mode is set to InProc.

Session State Mode: настраивается в файле web.config

  • InProc: Режим по умолчанию. Хранит состояние сеанса в памяти веб-сервера.
    Предлагает лучшую производительность. Хороший выбор для простых приложений.
  • StateServer: Хранит состояния сеанса в службе ASP.NET  State Service.
    Следит за тем, чтобы состояние сеанса сохранялось при перезапуске веб-приложения. Делает состояние сеанса доступным для нескольких веб-серверов в веб-ферме.
  • SQLServer: Хранит состояния сеанса в базе данных.
    Состояние сеанса сохраняется при перезапуске веб-приложения. Состояние сеанса доступно для нескольких веб-серверов в веб-ферме. Предлагает надежную целостность данных и создания отчетов.
  • Custom: Пользовательский поставщик хранения который нужно кодировать.
  • Off: Чтобы отключить состояние сеанса, если последний не используется, для увеличения производительности.
 

В избранное