Совет. Одним из лучших ресурсов для изучения новых возможностей .NET Framework является справочник по библиотеке классов .NET Framework — часть справочной системы MSDN. Если у вас установлена Visual Studio 2005, справочную систему MSDN можно запустить, выбрав в меню Start (Пуск) команду Programs => Microsoft Visual Studio 2005 => Microsoft Visual Studio 2005 Documentation (Программы => Visual Studio 2005 => Документация Microsoft Visual Studio 2005); точная последовательность команд меню зависит от версии Visual Studio. После загрузки справки информацию по классам, сгруппированную по пространствам имен, можно найти в узле .NET Development => .NET Framework SDK => Class Library Reference (Разработка для .NET => .NET Framework SDK => Справочник по библиотеке классов).
Одна из основных причин снижения производительности в ASP-сценариях
связана с тем, что во всем коде Web-страницы ASP используются
интерпретируемые языки написания сценариев. Это означает, что при выполнении приложения
хосту сценариев на серверной машине необходимо интерпретировать ваш код и
построчно преобразовать его в низкоуровневый машинный код. Этот процесс
печально известен своей низкой скоростью.
На заметку! Фактически в этом случае репутация интерпретируемого кода немного хуже, чем в реальности. Конечно, он работает намного медленнее, чем скомпилированный код, но снижение производительности не является настолько существенным, что невозможно разработать профессиональный Web-сайт с использованием ASP. Ограничения, влияющие на ASP в этой области, влияют также на Java-приложения, поскольку Java также является интерпретируемым языком. В этом заключается одно из значительных различий между Java и языками, используемыми в ASP.NET.
Приложения ASP.NET всегда компилируются — фактически невозможно выполнить код С# или VB.NET без его предварительной компиляции.
Приложения ASP.NET в действительности проходят два этапа компиляции. На первом этапе написанный вами код С# компилируется в код промежуточного языка под названием Microsoft Intermediate Language (MSIL) или просто IL. Этот первый шаг является фундаментальной причиной взаимозависимости .NET от языков. По сути, все языки .NET (включая С#, VB.NET и многие другие) компилируются в фактически идентичный код IL. Этот первый этап компиляции может произойти автоматически при первом запросе страницы или же его можно выполнить заранее (этот процесс известен как предварительная компиляция). Скомпилированный файл с кодом IL является сборкой.
Второй этап компиляции наступает непосредственно перед фактическим выполнением страницы. На этом этапе код IL компилируется в низкоуровневый собственный машинный код. Этот этап известен как оперативная компиляция "точно к нужному моменту" (Just-In-Time — JIT) и он проходит одинаково для всех приложений .NET (включая, например, приложения Windows). На рис. 1.1 показан этот двухэтапный процесс компиляции.
Компиляция .NET делится на два этапа с целью предоставления разработчикам удобных условий и мобильности. Перед созданием низкоуровневого машинного кода компилятору необходимо знать, в какой операционной системе и на каком базовом оборудовании будет функционировать приложение (например, 32- или 64-разрядная ОС Windows). Благодаря двум этапам компиляции, можно создать скомпилированную сборку с кодом .NET и распределить ее на более чем одну платформу.
предыдущая следующая страница оглавление
38