Слайд 2План лекции
Веб-сервер IIS
Архитектура ASP.NET 2.0
Объектная модель страницы

Слайд 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://europe.webmatrixhosting.net/russia/default.aspx.
Слайд 4Веб сервер IIS
Версии:
Windows Server 2008 - IIS 7.0
Windows Server 2003 - IIS 6.0
Windows XP

Professional - IIS 5.1
Windows 2000 - IIS 5.0
IIS 7.0 разбивает веб-сервер на небольшое ядро сервера и более чем 40 модулей компонентов, подключаемых к этому ядру.
StaticFileModule, который позволяет загружать статическое веб-содержимое,
WindowsAuthModule, поддерживающий встроенную проверку подлинности NTLM,
И т.п.
Слайд 6Настройка и конфигурирование IIS
Централизованное хранилище конфигураций (метабаза) в IIS < 7
Для IIS

7.0 характерна новая система делегированной настройки, основанная на иерархии распределенных файлов настройки в формате XML.
Данная иерархия обобщена в глобальном файле applicationHost.config, в котором содержатся значения по умолчанию для настройки уровня сервера, и распределенных файлах web.config, находящихся в структуре каталогов приложения.
Слайд 7Обработка ASP.NET запросов в IIS 5.0
IIS получает запрос, определяет тип ресурса и,

если данный тип связан с ASP.NET, передает его на обработку расширению aspnet_isapi.dll. ISAPI расширение передает запрос на дальнейшую обработку рабочему процессу ASP.NET.
После получения запроса, рабочий процесс передает сообщение ISAPI расширению, сообщая о том, что запрос будет обработан.
Запрос выполняется в контексте рабочего процесса ASP.NET.
После окончания выполнения, рабочий процесс передает данные ISAPI расширению, которое отвечает за освобождение ресурсов, занятых рабочим процессом.
Слайд 8Обработка ASP.NET запросов в IIS 6.0
Используется модель пула приложений – отдельного рабочего

процесса, который обслуживает одно или несколько веб-приложений.
Каждый пул приложений обслуживается отдельным экземпляром рабочего процесса w3wp.exe.
Рабочий процесс, обслуживающий пул приложений, загружает необходимые ISAPI расширения.
В случае ASP.NET это рашсирение aspnet_isapi.dll, которое в свою очередь загружает CLR и начинает обработку HTTP запроса. Рабочие процессы выполняются под учетной записью NetworkService.
Слайд 9Обработка ASP.NET запросов в IIS 7.0

Слайд 10Обработка ASP.NET запросов в IIS 7.0
При работе в режиме Integrated в IIS

7.0 модули ASP.NET выполняются в рамках единого конвейера обработки запросов одновременно с модулями IIS на C++ в машинном коде
Слайд 11Основные определения ASP.NET
Microsoft .NET Framework — это платформа для создания, развертывания

и запуска web-сервисов и приложений. (intuit.ru)
.NET Framework состоит из трех основных частей — общеязыковой среды выполнения (common language runtime), иерархического множества унифицированных библиотек классов и компонентной версии ASP, называемой ASP .NET. (intuit.ru)
Слайд 12ASP.net - динамически формируемые страницы
В .NET Framework применяется двухэтапная компиляция,
то есть

первый этап — это компиляция в MSIL, а
вторая — компиляция "just-in-time" компилятором во время исполнения.
JIT-компилятор оптимизирует код для той машины, на которой он исполняется. В ASP .NET страница компилируется в MSIL при первом обращении клиента к странице. Вместе с ней компилируются классы, которые она использует.
Слайд 13Разделение программной логики и представления
ASP – модель смежного (встроенного, смешанного) кода
ASP.NET –

модель раздельного и смежного кода.
Слайд 15Компиляция ASP.NET 2.0
для каждой ASP.NET страницы создается своя собственная сборка. Эта модель

компиляции открывает возможность не перекомпилировать все приложение при изменении одного файла исходного кода, а осуществлять компиляцию только измененных файлов. Поэтому 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 .NET.
Класс наследуется от ассоциированного со страницей класса System.Web.UI.Page
Слайд 17События и методы страницы ASP.NET

Слайд 21Жизненный цикл страницы
Для того, чтобы проследить жизненный цикл страницы и последовательность возникновения

событий, можно установить атрибут Trace директивы @Page в true, а атрибут TraceMode в "SortByTime". Тогда в разделе Trace Information можно найти список произошедших событий (колонка Message).