
010de2238e6d29734edad9f21ba93597.ppt
- Количество слайдов: 9
Из цикла лекций «Технологии разработки Internet-приложений» для студентов 4 -го курса кафедры Компьютерных технологий физического факультета Донецкого национального университета Технологии разработки Internetприложений ASP. NET приложения – компиляция проф. В. К. Толстых, www. tolstykh. com
Модель компиляции ASP. NET Напомним, что, ASP. NET в отличие от ASP производит компиляцию, а не интерпретацию, . aspx страниц. q Сервер IIS: при запросе файла. aspx драйвер http. sys сначала проверяет наличие готового ответа в кэше. Если такового нет, то IIS загружает рабочий процесс (w 3 wp. exe) в соответствующем пуле приложений, запускает необходимые модули IIS (авторизация…) для предварительной обработки запроса. Далее запрос передаётся пользовательскому обработчику, т. е. запрошенной странице. aspx. q Среда ASP. NET: определяет, требуется ли компиляция страницы (нет сохраненной сборки. dll или страница была изменена). При необходимости начинается компиляция страницы или всего веб-приложения с языка С# на язык CIL (Common Intermediate Language – высокоуровневый ассемблер). Все компиляторы, поддерживающие платформу. NET, должны транслировать код с языков высокого уровня ( C#, Managed C++, Visual Basic . NET, Visual J#. NET) на язык CIL. При этом осуществляется разбор (parsing) aspx-страницы с генерацией исходного CIL-кода (создание серверных элементов управления, построение дерева элементов, отметка контроля модификации файла).
… парсинг В результате парсинга нашей страницы мы получаем конкретные экземпляры класса Page на языке CIL. Каждому серверному элементу управления из файла. aspx ставится в соответствие свой CIL-экземпляр. NET Framework. Например, элемент
… компиляция Далее загружается среда CLR (Common Language Runtime) платформы. NET Framework и активизируется конвейер HTTP, которому и передаются все созданные и возможно заранее предкомпилированные сборки, находящиеся в папке bin. Сборки, в свою очередь, перед фактическим исполнением компилируется в реальном времени – на лету (JIT-компиляция) в нативный код – машинный код в виде команд конкретной вычислительной машины, которая выполняется непосредственно процессором. Здесь осуществляется рендеринг кодов сборок, который в конечном итоге приводит к созданию HTML-ответа. После JIT-компиляции исполняемый машинный код может кэшироваться и последующие обращения к нему происходят напрямую, не затрагивая конвейер HTTP, – естественно, очень быстро. Если запуск приложения был с отладкой (в web. config есть строка
Пакетная компиляция ASP. NET осуществляет пакетную компиляцию (если не включён режим отладки), т. е. создаёт набор (пакет) сборок приложения. В простейшем случае – это один пакет из одной сборки. Компилятор пытается минимизировать количество сборок, не превышая при этом, максимальный размер каждой сборки. Обычно, каждая папка с файлами. aspx, . ascx, и всегда папка App_Code, компилируются в одну отдельную сборку. Пакетной компиляцией можно управлять из web. config при