Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции OOP c#.doc
Скачиваний:
44
Добавлен:
22.09.2019
Размер:
3.38 Mб
Скачать

5.1. Архитектура и общие концепции asp.Net

В данном параграфе рассматриваются базовые принципы функционирования и архитектуры технологии ASP.NET. Вначале рассмотрим схему работы в сети Internet, которую можно назвать «классической», так как эта схема является исторически первой. Основными элементами классической схемы являются браузер и веб-сервер. При взаимодействии браузер и веб-сервер проходят следующие этапы:

  1. Браузер формирует запрос к серверу, используя протокол HTTP. Как правило, браузер запрашивает HTML-страницу, то есть текстовый файл, содержащий HTML-код.

  2. Сервер анализирует запрос браузера и извлекает из локального хранилища требуемый файл.

  3. Сервер формирует HTTP-ответ, включающий требуемую информацию, и отсылает его браузеру по протоколу HTTP.

  4. Браузер выполняет отображение страницы.

Классическая схема проста, но обладает существенным недостатком – страницы статичны, и их содержимое не может меняться динамически в зависимости от запросов клиента. В настоящее время подобный подход не соответствует большинству информационных услуг, предоставляемых с помощью сети Internet1. Все большее распространение получают технологии, при использовании которых страницы (целиком или частично) генерируются на сервере непосредственно перед отправкой клиенту. Эти технологии обычно содержат в своем названии словосочетание Server Pages – «серверные страницы» (ASP, ASP.NET). Работают технологии «серверных страниц» по схожим принципам:

  • Для представления информации на сайте используются не страницы с HTML-кодом, а серверные страницы специального синтаксиса (который часто является HTML-подобным).

  • При запросе серверной страницы веб-сервер запускает отдельный служебный процесс, которому перенаправляется запрос.

  • В служебном процессе страница анализируется, по ней генерируется некий объект, соответствующий странице.

  • Служебный процесс выполняет методы сгенерированного объекта. Как правило, объект имеет специальный метод, генерирующий выходной поток страницы в виде HTML-кода.

  • Сервер перехватывает выходной поток страницы, формирует HTTP-ответ и отсылает его браузеру.

  • Браузер выполняет отображение страницы.

Рассмотрим особенности технологии серверных страниц, применительно к ASP.NET. Служебный процесс ASP.NET основан на управляемом коде и выполняется в Common Language Runtime. Серверной странице в ASP.NET соответствует некий .NET-класс. Это обеспечивает возможности межъязыкового взаимодействия, использования готовых библиотек кода и т. п. Серверная страница может содержать «вкрапления» серверного кода, написанные на нескольких языках – C#, VB.NET, J#.

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

Технология ASP.NET также пытается перенести принципы, используемые при написании приложений Windows Forms, на web-программирование. Речь идет о программировании, основанном на обработке событий. Отдельный компонент страницы ASP.NET, как правило, обладает набором некоторых событий. Хорошим примером является кнопка, у которой есть событие On_Click. Для того чтобы закодировать логику страницы, программист пишет обработчики соответствующий событий. Когда событие происходит, информация о нем пересылается от клиента на сервер, где срабатывает обработчик события. Затем страница (вся или только ее часть) вновь пересылается клиенту.

Чтобы страница сохраняла свое состояние между отдельными циклами приема-передачи, это состояние фиксируется в специальном скрытом поле перед отправкой на сервер, а сервер восстанавливает состояние страницы перед отправкой клиенту. Данный технологический прием называется в ASP.NET поддержкой View State (отображаемого состояния).