Слайд 2План лекции
Веб-сервер IIS
Архитектура ASP.NET 2.0
Объектная модель страницы
![План лекции Веб-сервер IIS Архитектура ASP.NET 2.0 Объектная модель страницы](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/382198/slide-1.jpg)
Слайд 3Где и что посмотреть:
http://www.MSDN.com/
http://www.aspnetmania.com/
Сообщество разработчиков .NET:
http://www.gotdotnet.ru/
http://www.sql.ru/
http://dotsite.ru/
Сообщество программистов:
http://www.rsdn.ru/
Вы можете завести пробный хостинг на
![Где и что посмотреть: http://www.MSDN.com/ http://www.aspnetmania.com/ Сообщество разработчиков .NET: http://www.gotdotnet.ru/ http://www.sql.ru/ http://dotsite.ru/](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/382198/slide-2.jpg)
http://europe.webmatrixhosting.net/russia/default.aspx.
Слайд 4Веб сервер IIS
Версии:
Windows Server 2008 - IIS 7.0
Windows Server 2003 - IIS 6.0
Windows XP
![Веб сервер IIS Версии: Windows Server 2008 - IIS 7.0 Windows Server](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/382198/slide-3.jpg)
Professional - IIS 5.1
Windows 2000 - IIS 5.0
IIS 7.0 разбивает веб-сервер на небольшое ядро сервера и более чем 40 модулей компонентов, подключаемых к этому ядру.
StaticFileModule, который позволяет загружать статическое веб-содержимое,
WindowsAuthModule, поддерживающий встроенную проверку подлинности NTLM,
И т.п.
Слайд 6Настройка и конфигурирование IIS
Централизованное хранилище конфигураций (метабаза) в IIS < 7
Для IIS
![Настройка и конфигурирование IIS Централизованное хранилище конфигураций (метабаза) в IIS Для IIS](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/382198/slide-5.jpg)
7.0 характерна новая система делегированной настройки, основанная на иерархии распределенных файлов настройки в формате XML.
Данная иерархия обобщена в глобальном файле applicationHost.config, в котором содержатся значения по умолчанию для настройки уровня сервера, и распределенных файлах web.config, находящихся в структуре каталогов приложения.
Слайд 7Обработка ASP.NET запросов в IIS 5.0
IIS получает запрос, определяет тип ресурса и,
![Обработка ASP.NET запросов в IIS 5.0 IIS получает запрос, определяет тип ресурса](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/382198/slide-6.jpg)
если данный тип связан с ASP.NET, передает его на обработку расширению aspnet_isapi.dll. ISAPI расширение передает запрос на дальнейшую обработку рабочему процессу ASP.NET.
После получения запроса, рабочий процесс передает сообщение ISAPI расширению, сообщая о том, что запрос будет обработан.
Запрос выполняется в контексте рабочего процесса ASP.NET.
После окончания выполнения, рабочий процесс передает данные ISAPI расширению, которое отвечает за освобождение ресурсов, занятых рабочим процессом.
Слайд 8Обработка ASP.NET запросов в IIS 6.0
Используется модель пула приложений – отдельного рабочего
![Обработка ASP.NET запросов в IIS 6.0 Используется модель пула приложений – отдельного](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/382198/slide-7.jpg)
процесса, который обслуживает одно или несколько веб-приложений.
Каждый пул приложений обслуживается отдельным экземпляром рабочего процесса w3wp.exe.
Рабочий процесс, обслуживающий пул приложений, загружает необходимые ISAPI расширения.
В случае ASP.NET это рашсирение aspnet_isapi.dll, которое в свою очередь загружает CLR и начинает обработку HTTP запроса. Рабочие процессы выполняются под учетной записью NetworkService.
Слайд 9Обработка ASP.NET запросов в IIS 7.0
![Обработка ASP.NET запросов в IIS 7.0](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/382198/slide-8.jpg)
Слайд 10Обработка ASP.NET запросов в IIS 7.0
При работе в режиме Integrated в IIS
![Обработка ASP.NET запросов в IIS 7.0 При работе в режиме Integrated в](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/382198/slide-9.jpg)
7.0 модули ASP.NET выполняются в рамках единого конвейера обработки запросов одновременно с модулями IIS на C++ в машинном коде
Слайд 11Основные определения ASP.NET
Microsoft .NET Framework — это платформа для создания, развертывания
![Основные определения ASP.NET Microsoft .NET Framework — это платформа для создания, развертывания](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/382198/slide-10.jpg)
и запуска web-сервисов и приложений. (intuit.ru)
.NET Framework состоит из трех основных частей — общеязыковой среды выполнения (common language runtime), иерархического множества унифицированных библиотек классов и компонентной версии ASP, называемой ASP .NET. (intuit.ru)
Слайд 12ASP.net - динамически формируемые страницы
В .NET Framework применяется двухэтапная компиляция,
то есть
![ASP.net - динамически формируемые страницы В .NET Framework применяется двухэтапная компиляция, то](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/382198/slide-11.jpg)
первый этап — это компиляция в MSIL, а
вторая — компиляция "just-in-time" компилятором во время исполнения.
JIT-компилятор оптимизирует код для той машины, на которой он исполняется. В ASP .NET страница компилируется в MSIL при первом обращении клиента к странице. Вместе с ней компилируются классы, которые она использует.
Слайд 13Разделение программной логики и представления
ASP – модель смежного (встроенного, смешанного) кода
ASP.NET –
![Разделение программной логики и представления ASP – модель смежного (встроенного, смешанного) кода](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/382198/slide-12.jpg)
модель раздельного и смежного кода.
Слайд 15Компиляция ASP.NET 2.0
для каждой ASP.NET страницы создается своя собственная сборка. Эта модель
![Компиляция ASP.NET 2.0 для каждой ASP.NET страницы создается своя собственная сборка. Эта](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/382198/slide-14.jpg)
компиляции открывает возможность не перекомпилировать все приложение при изменении одного файла исходного кода, а осуществлять компиляцию только измененных файлов. Поэтому ASP.NET 2.0 предлагает три основных стратегии компиляции приложений:
Перекомпиляция файлов программной логики. В этом случае создаются сборки в директории bin, которые во время выполнения объединяются с динамическими сборками, генерируемыми для страниц с использованием механизма разделения классов.
Полная пре-компиляция. Абсолютно новая возможность, появившаяся в ASP.NET 2.0 и позволяющая создать одну сборку для всех файлов приложения, включая файлы ASPX, содержащие HTML разметку. Сборка помещается в директорию bin веб-приложения, а содержимое всех ASPX файлов замещается на стоку «This is a marker file generated by the precompilation tool, and should not be deleted!».
Динамическая компиляция. Эта стратегия аналогична используемой в ASP.NET стратегии динамической компиляции по запросы, с одним исключением, что страницы компилируются не одновременно, а по мере поступления запросов к каждой конкретной странице.
Утилита компиляции aspnet_compiler.exe
Слайд 16Объектная модель ASP
Каждая страница ASP .NET — это объект класса, который автоматически
![Объектная модель ASP Каждая страница ASP .NET — это объект класса, который](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/382198/slide-15.jpg)
генерируется ядром ASP .NET.
Класс наследуется от ассоциированного со страницей класса System.Web.UI.Page
Слайд 17События и методы страницы ASP.NET
![События и методы страницы ASP.NET](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/382198/slide-16.jpg)
Слайд 21Жизненный цикл страницы
Для того, чтобы проследить жизненный цикл страницы и последовательность возникновения
![Жизненный цикл страницы Для того, чтобы проследить жизненный цикл страницы и последовательность](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/382198/slide-20.jpg)
событий, можно установить атрибут Trace директивы @Page в true, а атрибут TraceMode в "SortByTime". Тогда в разделе Trace Information можно найти список произошедших событий (колонка Message).