Конфигурирование и настройка Microsoft ASP.NET

       

Работа с разделом <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>.

Таблица 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.

Таблица 4.6. Свойства <compilers>СвойствоОписание
languageРазделенный точками с запятой список имен языков. Это имена, под которыми языки могут использоваться в свойстве language директивы @page.
extensionРасширение файла, содержащего код на этом языке, например .cs для C# и .vb для Visual Basic.
typeКласс, используемый для компиляции файлов, написанных на этом языке.
warningLevelУровень предупреждений компилятора.
compilerOptionsСписок опций, передаваемых в компилятор при компиляции.
Ниже показан элемент <compiler> для языка C#.

<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.


Содержание раздела