Работа с разделом <compilation>
Раздел <compilation> включает несколько параметров и элементов для настройки способа компиляции ASP.NET. Можно использовать различные элементы для добавления новых компиляторов языков подготовки сценариев ASP.NET и собственных сборок и настраивать различные параметры компиляции. Раздел <compilation> имеет несколько подразделов, но сначала рассмотрим свойства, устанавливаемые для элемента <compilation>. Ниже приведен синтаксис элемента <compilation>.
<compilation debug="true | false" batch="true | false" batchTimeout="amount of seconds" defaultLanguage="language" explicit="true | false" maxBatchSize="max number of pages" maxBatchGeneratedFileSize="max size in KiloBytes" numRecompilesBeforeAppRestart="number of recompiles" strict="true | false" tempDirectory="directory location"> </compilation>
Таблица 4.5 содержит перечень свойств элемента <compilation>.
batch |
Управляет поддержкой пакетной компиляции. true Пакетная компиляция поддерживается. false Пакетная компиляция не поддерживается. | |
batchTimeout | Определяет период времени завершения пакетной компиляции. Если компиляция не завершается за это время, компилятор переводится в режим компиляции только текущей страницы. | |
debug |
Определяет, компилируется ли отладочный вариант двоичных файлов. true Отладка включена. false Компилируются окончательные версии двоичных файлов. | |
defaultLanguage | Определяет язык программирования, используемый ASP.NET по умолчанию. Это имя должно соответствовать одному из имен, объявленных в подтэге <compilers>. Значением по умолчанию является vb. | |
explicit | Определяет включение опции Visual Basic explicit. Эта опция требует, чтобы каждая используемая переменная была обязательно объявлена с помощью оператора Dim, Private, Public или ReDim.
true Опция включена. false Опция отключена. | |
maxBatchSize | Определяет максимальное количество файлов, включаемых в пакетную компиляцию. | |
maxBatchGenerated FileSize | Определяет максимальный размер (Кб) генерируемого исходного файла для каждой пакетной компиляции. | |
numRecompilesBeforeAppRestart | Определяет число динамических перекомпиляций, которое может произойти перед перезапуском всего приложения. | |
tempDirectory | Определяет директорию для хранения временных файлов в процессе компиляции. | |
strict | Определяет включение опции Visual Basic strict. Эта опция гарантирует использование наилучших методов программирования, генерируя ошибки при выполнении не рекомендуемых операций, таких как неявное преобразование типов, которое может привести к потере данных.
true Опция включена. false Опция отключена. |
Таблица 4. 5 включает большой объем новой информации, так что давайте опишем ее более подробно.
- Visual Basic explicit. По умолчанию Visual Basic позволяет использовать переменные, которые не были явно объявлены, но это считается плохим стилем. Опция Visual Basic Explicit гарантирует, что каждая используемая переменная объявлена с помощью операторов Dim, ReDim, Private или Public. Если вы используете Visual Basic .NET, я крайне рекомендую оставить эту опцию в настроечном файле включенной.
- Visual Basic strict. По умолчанию Visual Basic позволяет выполнять некоторые сомнительные операции программирования. При включении опции strict Visual Basic генерирует сообщение об ошибке, если выполняется одна из следующих процедур:
- неявное преобразование типов, которое может привести к потере данных;
- позднее связывание, состоящее в присвоении переменной, которая объявлена как объект.
- Пакетная компиляция. Страницы компилируются при первом доступе к ним, что приводит к небольшой задержке доступа к странице. Пакетная компиляция компилирует все еще не скомпилированные файлы из директории с файлом, к которому осуществляется доступ. Это означает, что доступ к первому файлу производится долго, но для последующих запросов таких задержек не будет.
Ниже приведен пример раздела <compilation>.
<compilation batch="true" batchTimeout="30" debug="false" defaultLanguage="c#" explicit="true" maxBatchSize="15" maxBatchGeneratedFileSize="3000" numRecompilesBeforeAppRestart="15" tempDirectory="c:\temp" strict="true"> </compilation>
Имеется несколько подразделов, используемых в разделе <compilation>. Раздел <compilers> объявляет программы для компиляции страниц ASP.NET. Имеется набор компиляторов по умолчанию, включаемых в ASP.NET, но можно добавить компиляторы для обработки других языков, включая Delphi. Ниже приведен синтаксис раздела <compilers>.
<compilers> <compiler language="language names" extension="file extension" type=".NET type" warningLevel="level number" compilerOptions="list of options" /> </compilers>
Свойства раздела <compilers> перечислены в табл. 4.6.
language | Разделенный точками с запятой список имен языков. Это имена, под которыми языки могут использоваться в свойстве language директивы @page. |
extension | Расширение файла, содержащего код на этом языке, например .cs для C# и .vb для Visual Basic. |
type | Класс, используемый для компиляции файлов, написанных на этом языке. |
warningLevel | Уровень предупреждений компилятора. |
compilerOptions | Список опций, передаваемых в компилятор при компиляции. |
<compiler language="c#;cs;csharp" extension=".cs" type= "Microsoft.CSharp.CSharpCodeProvider, System, Version=1.0. 5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="1" />
Перечислив три разных имени языка (c#; cs; csharp), при указании в свойстве language директивы @page языка C# можете использовать любое из этих трех имен. Элемент <compiler> позволяет добавлять новые языки программирования для написания программ для ASP.NET.