Многие разработчики ошибаются, полагая, что это является особенностью CLR, которая позволяет ASP.NET плавно переходить к новому домену приложения. На самом же деле, CLR всегда блокирует файлы сборки во время их выполнения. Чтобы обойти это ограничение, ASP.NET не использует файлы ASP.NET в виртуальном каталоге. Вместо этого во время компиляции она использует теневое копирование для создания копии ваших файлов в каталоге c:\[Каталог_Windows]\Microsoft.NET\[Версия]\Temporary ASP.NET Files. Рабочий процесс ASP.NET загружает сборки из этого каталога, что означает, что эти сборки будут заблокированы.

Кроме того, ASP.NET может обнаруживать внесение изменений в исходных файлах. Это делается очень просто — на основе возможности операционной системы Windows отслеживать каталоги и файлы и посылать незамедлительные уведомления об изменениях. ASP.NET поддерживает активный список всех сборок, загруженных в домен приложения определенного приложения, и использует код мониторинга для наблюдения за изменениями и выполнения соответствующих действий.

На заметку! ASP.NET может использовать файлы, хранящиеся в GAC — доступном в пределах всего компьютера репозитории сборок, который включает такие элементы, как сборки для всей библиотеки классов .NET Framework. Вы можете также помещать в GAC свои собственные сборки, хотя обычно проще развертывать и управлять Web-приложениями.

Структура каталога приложения

Каждое Web-приложение должно иметь хорошо спланированную структуру каталога. Независимо от того, какую структуру каталога вы спроектируете, ASP.NET определяет несколько каталогов со специальным назначением.

В версиях серии ASP.NET 1.x просто представлялся один специальный каталог — каталог Bin. В версии ASP.NET 2.0 представлено больше каталогов, как показано в табл. 5.1.

Таблица 5.1. Специальные каталоги ASP.NET

Каталог Описание
Bin
Содержит все предварительно скомпилированные сборки .NET (обычно DLL-библиотеки), используемые Web-приложением ASP.NET. Эти сборки могут включать предварительно скомпилированные классы Web-страниц и Web-служб, а также другие сборки, на которые ссылаются данные классы.

App_Code Содержит файлы исходного кода, динамически скомпилированные для использования в вашем приложении. Эти файлы кода обычно представляют собой отдельные компоненты, например компонент входа (регистрации) или библиотеку доступа к данным. Скомпилированный код никогда не появляется в каталоге Bin, так как ASP.NET помещает его во временные каталоги, используемые для динамической компиляции.

App_GlobalResources Этот каталог хранит глобальные ресурсы, доступные каждой странице в Web-приложении. В главе 17 будет подробно рассказано о ресурсах и локализации.

продолжение см. на след. странице.

предыдущая    следующая страница   оглавление

206

Hosted by uCoz