Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПвИ / Конспект лекций.doc
Скачиваний:
224
Добавлен:
01.06.2015
Размер:
1.05 Mб
Скачать

Компиляция “Just In Time”

Теоретически, как и в Java, код на языке MSIL можно скомпилировать и исполнять на любой платформе, которая поддерживает среду исполнения CLR. На сегодняшний день такая среда существует лишь в архитектуре Intel с ОС Windows, но вполне вероятно, что она появится и на других платформах. Такое мнение основывается на наличии JIT-компилятора (Just In Time). На рисунке показаны процессы компиляции и исполнения.

Возникает вопрос: “компиляция такого ассемблерного кода, как MSIL, должна сказываться на производительности приложения”. На самом деле дополнительные издержки очень малы и практически незаметны. Отчасти это объясняется умением разработчиков JIT-компилятора, но в основном такое поведение – результат механизма, по которому работают программы.

При работе программы исполняется далеко не каждая ее строка. Например, код обработки ошибок выполняется лишь в исключительных случаях. Чтобы воспользоваться этим фактором и не компилировать с самого начала весь MSIL-код в машинный, JIT-компилятор компилирует код лишь по мере необходимости, а откомпилированный код кэшируется для повторного использования. Механизм JIT-трансляции довольно прямолинеен. При загрузке класса загрузчик “закрывает” заглушками все методы класса. Когда метод вызывается в первый раз, код заглушки передает управление JIT-компилятору, который преобразует MSIL-код в машинный код. Затем заглушка заменяется на указатель на созданный машинный код, и последующие запросы выполняются непосредственно этим кодом.

Управляемый код и данные

Управляемый код (managed code) – это тот код, который предоставляет среде исполнения CLR достаточно информации для выполнения следующих задач:

  • поиска метаданных, описывающих метод, по адресу в коде;

  • прохода стека;

  • обработка исключений;

  • хранения и поиска информации, связанной с безопасностью.

Чтобы выполнение этих задач стало возможным, код должен предварительно пройти специальную проверку, или верификацию (verification process), если только политикой не разрешено его исполнение без проверки. В процессе верификации JIT-компилятор исследует MSIL-код и метаданные, пытаясь выяснить, поддерживается ли контроль типов. Код с поддержкой типов обращается только к областям памяти, которые ему принадлежат, - это гарантирует его корректную работу и правильное взаимодействие с другими программами, а так же то, что он не станет причиной случайного или злонамеренного разрушения системы. В отсутствии контроля типов нельзя четко соблюсти правила безопасности.

С управляемым кодом связаны управляемые данные (managed data) – данные, память для которых выделяется и освобождается автоматически средой CLR с применением механизма, который называется “сборкой мусора” (garbage collection).

Лекция 8. Создание приложений Web Forms Файлы проекта Web Forms

Для каждого нового проекта Web-приложения Visual Studio .NET генерирует полный набор файлов. Рассмотрим каждый из них:

Имя

Содержимое

AssemblyInfo.vb или

AssemblyInfo.cs

Все данные, необходимые для идентификации проекта, в том числе версия, название компании, GUID, параметры компилятора и др.

Global.asax

Обработчики глобальных событий Web-приложения, таких, как запуск и завершение. В проекте может быть только один файл Global.asax, он размещается в корневом каталоге проекта

Global.asax.vb или Global.asax.cs

Код, используемый файлом Global.asax

Style.css

Определение стилей оформления HTML-элементов, генерируемых для проекта

Web.config

Параметры Web-сервера при обслуживании этого проекта; определяют способ сообщения об ошибках, используемый тип аутентификации пользователей и т.п. В проекте может быть только один такой файл, он размещается в корневом каталоге проекта

Имя_проекта.disco

Описание Web-сервисов, предоставляемых проектом

WebForm1.aspx

Описание визуального представления Web-формы

WebForm1.aspx.vb или WebForm1.aspx.cx

Код, обрабатывающий события Web-формы

WebForm1.aspx.resx

XML-ресурсы, используемые Web-формой

Имя_проекта.vbproj или Имя_проекта.csproj

Список файлов и параметров, используемых во время разработки

Имя_проекта.vbproj.

webinfo или Имя_проекта.csproj.

webinfo

Параметры Web, используемые во время разработки проекта

Помимо перечисленных файлов, проект Web-приложения может содержать сколько угодно файлов других типов, таких как пользовательские Web-элементы управления или XML-схемы данных.

Соседние файлы в папке ПвИ