Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Software Engineering2010.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
539.8 Кб
Скачать

Управление состоянием в аsр.Nет

Одно из ключевых свойств страниц АSР.NЕТ состоит в том, что они в действительности не поддерживают концепцию состояния. По умолчанию никакая информация не сохраняется на сервере между пользовательскими запросами (хотя, как мы увидим позже, есть методы, чтобы сделать это). На первый взгляд это выглядит несколько странно, поскольку управление состоянием — нечто такое, что выглядит обязательным условием для дружественных к пользователю интерактивных сеансов. Однако АSР.NET предлагает способ обойти эту проблему, так что управление сеансом становится почти прозрачным. Короче говоря, информация о состоянии элементов управления WEB Forms (включая данные, введенные в текстовые поля, или выбор в выпадающих списках) сохраняются в скрытых полях viewstate (представления состояния), являющихся частью сгенерированной сервером и переданной пользователю страницы. Следующие друг за другом действия, такие как возбуждение событий, требующих обработки со стороны сервера вроде подтверждения данных формы, инициируют отправку этой информации обратно на сервер, что называется роstbасk (обратной отправкой). На сервере эта информация используется для повторного наполнения объектной модели страницы, что позволяет работать, как будто изменения были выполнены локально.

ASP.NET Web Forms

Как упоминалось ранее, большая часть функциональности АSР.NЕТ достигается с применением WEB Forms. Прежде чем погрузиться в детали, попробуем создать простую WEB - форму, чтобы получить некоторое начальное представление перед изучением этой технологии. Во-первых, в этом разделе мы представим обзор некоторых ключевых моментов, относящихся к проектированию ‚ WEB - форм. Следует отметить, что некоторые разработчики АSР.NЕТ просто используют текстовый редактор — вроде Notepad — для создания файлов.

Можно также создавать файлы АSР.NЕТ в среде Visual Studio, которая отлично подойдет, если вы уже знакомы со средой программирования С#. Однако настройка проекта по умолчанию для Web - приложений в этой среде представляет собой несколько более сложную структуру, чем единственный файл .aspx. Это не представит большой проблемы, просто сместит акцент в сторону логики (больше программирования и меньше разработки для Web).

Файлы .aspx также могут включать блоки кода, заключенные в дескрипторы <% и %>. Однако определения функций и объявления переменных в них появляться не могут. Вместо этого сюда вставляется код, который выполняется немедленно при достижении такого блока, что удобно для вывода простого НГМL - содержимого. Такое поведение подобно АSР - страницам старого стиля, но с одним важным отличием: код компилируется, а не интерпретируется. Это дает гораздо более высокую производительность.

Модель кода АSР.NЕТ

В АSР.NЕТ комбинация кода разметки (HТМL), элементов управления АSР.NЕТ и кода С# используется для генерации НТМL, представляемого пользователю. Разметка и код ASP.NET размещаются в файле - aspx — вроде того, что мы видели в предыдущем разделе. Код С# добавляемый для настройки поведения формы, находится либо в файле .аsрх, либо, как в предыдущем примере, в отдельном файле .aspx.сs. Когда обрабатывается Web - форма АSР.NЕТ, то обычно, когда пользователь запрашивает страницу, несмотря на то, что сайты могут быть предварительно компилированы, происходят следующие вещи: Процесс АSР.NЕТ просматривает страницу и определяет, какие объекты должны быть созданы чтобы сконструировать экземпляр модели страницы.

Базовый класс создается динамически, включал члены для элементов управления страницы вместе с их обработчиками событий (такими как события щелчков на кнопках).

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

Полный код компилируется и помещается в кэш, готовый к обработке последующих запросов.

Генерируется НТМL и возвращается пользователю.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]