Модели компиляции
Как вам уже известно, ASP.NET поддерживает модель компиляции для
динамической компиляции сборок вне кода дескрипторов и самого исходного кода. Само
приложение всегда выполняется как скомпилированная версия, что позволяет
повысить производительность. Естественно, для динамической компиляции важную
роль играют специальные каталоги, о чем мы уже говорили. ASP.NET предлагает
три способа компиляции Web-приложений:
- Классическая предварительная компиляция. ASP.NET предлагала эту модель
с самой первой своей версии. Благодаря этой модели компиляции, части
Web-сайта предварительно компилируются (естественно, любые сборки, на
которые производятся ссылки, равно как и части фонового кода с логикой
обработки страницы), а другие части, такие как файлы кода дескрипторов
(файлы .aspx или .asmx) динамически компилируются во время
выполнения при первом запросе. Эту модель можно использовать только с моделью
фонового кода, в которой фактическая страница происходит из
скомпилированного базового класса с логикой страницы.
- Динамическая компиляция. Приложение развертывается со всеми файлами
дескрипторов и исходного кода, и ASP.NET полностью компилирует
приложение "на лету". Преимущество этого подхода состоит в том, что внесение
изменений только в файлы дескрипторов или даже в файлы исходного кода
возможно "на лету", а приложение автоматически компилируется после того,
как произойдет изменение. Естественно, большим недостатком является то,
что динамическая компиляция имеет место при первом запросе, поэтому для
первого запроса после изменения в коде потребуется больше времени, чем
для последующих запросов (откровенно говоря, в больших производственных
системах мы не советуем производить изменения прямо в исходном коде без
предварительного тестирования в тестовых средах). Это механизм стал
доступным с момента выхода версии ASP.NET 2.0.
- Предварительная компиляция сайта. ASP.NET 2.0 вводит новую модель для
предварительной компиляции, которая позволяет скомпилировать весь Web-сайт в двоичный код, так что все файлы кода, файлы дескрипторов,
такие как .aspx или .asmx, компилируются в двоичные файлы и
развертываются в виде двоичных файлов на целевой машине.
При создании нового проекта Web-сайта ASP.NET по умолчанию выбирает
динамическую модель компиляции. Это значит, что весь код и все страницы
сохраняются в виде файлов дескрипторов и файлов исходного кода в файловой
системе, и ASP.NET автоматически компилирует их. Таким образом, на выполнение
первого запроса потребуется немного больше времени, поскольку ASP.NET будет
компилировать всю страницу целиком. В этом случае может быть лучше
развертывать сайт уже в скомпилированном формате, что можно сделать за счет
предварительной компиляции сайта. Чтобы предварительно скомпилировать сайт, вы
должны использовать отдельный инструмент для компиляции Web-приложения,
называемый aspnet_compiler.exe. Компилятор хранится в каталоге Microsoft.NET/Framework. Компилятор необходимо запускать на своей тестовой машине
или машине для разработки до того, как вы будете развертывать весь Web-сайт. Инструмент принимает следующие параметры:
предыдущая следующая страница вначало главы оглавление
784