Технология ASP.Net: развертывание и кэширование веб – приложений
В зависимости от ситуации развертывание веб-приложений .NET Framework может быть очень простым. Поскольку такие приложения обычно состоят только из файлов, их можно развертывать на веб-серверах, просто копируя файлы. А что, если нужно обновить приложение? В большинстве случаев достаточно просто записать новые файлы поверх старых. Если веб-приложение работает на единственном сервере, не требуется запускать программу установки, изменять реестр и добавлять элементы в меню Пуск.
Такая простота обеспечивает значительную гибкость. Если веб-приложение нужно развертывать на массиве веб-серверов (который с целью повышения доступности и масштабируемости обслуживает один веб-сайт), то копировать файлы на несколько серверов можно с помощью любой утилиты для синхронизации файлов. Администраторам, выполняющим развертывание, не нужно входить на серверы, вносить изменения в реестр или перезагружать систему, поэтому обновление и развертывание новых приложений выполняется очень просто.
Однако иногда требуется строгий контроль над процессом развертывания приложения. Так, могут понадобиться настройка веб-сервера, копирование файлов, добавление записей в реестр, загрузка и установка необходимых компонентов. Также бывает необходимо создать пакет для Установщика Windows ( .msi -файла), чтобы приложение можно было развертывать через Active Directory и Microsoft Systems Management Server (SMS). Наконец, при создании веб-приложения, которое пользователи могут загружать из Интернета и устанавливать на своих компьютерах, MSI-файл поможет выполнять установку автоматически, даже если пользователь не умеет настраивать веб-серверы.
В следующих разделах рассказывается, как создавать проекты веб-установки, настраивать свойства развертывания, определять условия развертывания и развертывать веб-приложения.
Создание проекта веб-установки
Проекты веб-установки очень похожи на проекты традиционных установочных программ для приложений Windows Forms, но отличаются поддержкой функций, необходимых для установки веб-приложений. Чтобы добавить проект веб-установки на вебсайт, выполните следующее:
- Откройте веб-сайт в Visual Studio.
- В Visual Studio выберите команду меню Файл - Добавить - Создать проект.
- В списке Project Types раскройте узел Другие типы проектов и выберите Установка и развертывание. В секции Шаблоны выберите Проект веб - установки. В поле Имя введите имя проекта и щелкните ОК.
Когда создадите проект веб-установки, можете добавить в него дополнительные папки, файлы и сборки, которые не входят в стандартные выходные данные проекта. Это нужно, например, для добавления отдельных папок с изображениями, еще не включенных в проект веб-сайта.
Проект веб-установки не компилируется автоматически при компиляции веб-приложения. Вместо этого в окне Solution Explorer нужно выбрать команду меню Web Setup Project\Build. Путь к созданному .msi -файлу находится среди выходных данных компиляции в Visual Studio.
Средство "Опубликовать веб-узел"
Средство "Опубликовать веб-узел" выполняет предварительную компиляцию содержимого веб-узла, включая веб-страницы (ASPX-файлы) и код. Затем выходные данные копируются в каталог или в заданное расположение на сервере. Публикацию веб-узла можно осуществить как часть процесса предварительной компиляции. Кроме того, предварительную компиляцию можно выполнить локально и затем самостоятельно скопировать файлы на целевой сервер. Средство "Опубликовать веб-узел" компилирует веб-узел и отделяет исходный код от файлов, оставляя только файлы-заглушки для страниц и скомпилированные сборки. Когда пользователи запрашивают страницу, ASP.NET выполняет запрос из предварительно скомпилированных сборок.
Проекты веб-приложений
В дополнении к использованию средства "Опубликовать веб-узел" можно создавать веб-узлы с помощью проекта веб-приложения. В проекте веб-приложения все файлы классов компилируются в одну сборку. Данная сборка будет развернута вместе с ASPX-файлами, ASCX-файлами и прочими файлами статического содержимого. (Данная модель проекта веб-приложения имеет сходство с моделью, используемой в Visual Studio .NET 2003.) В данной модели ASPX-файлы не будут скомпилированы до тех пор, пока они не будут запущены в веб-обозревателе.
Выбор средства развертывания
Выбор между средством "Копировать веб-узел" и средством "Опубликовать веб-узел" зависит от того, как планируется использовать и обслуживать веб-узел.
Выбор средства "Копировать веб-узел"
Преимущества использования средства "Копировать веб-узел":
- Развертывание — это копирование файлов с веб-узла на целевой компьютер.
- Развертывание на целевом компьютере можно выполнить с помощью любого протокола соединения, поддерживаемого Visual Studio. Копирование можно выполнить в общую папку, расположенную на другом компьютере сети. Для копирования файлов на сервер можно использовать протокол FTP или HTTP, которые поддерживаются серверными расширениями FrontPage.
- Возможность выполнять изменения или исправлять ошибки напрямую на сервере.
- При работе с проектом, файлы которого хранятся на центральном сервере, можно использовать функцию синхронизации для обеспечения синхронизации версий локальных и удаленных файлов.
Недостатки использования средства "Копировать веб-узел":
- Веб-узел копируется в исходном виде. Поэтому, если файлы содержат ошибку компиляции, ошибка не будет обнаружена до тех пор, пока кто-нибудь (возможно пользователь) не запустит страницу, которая вызывает ошибку.
Выбор средства "Опубликовать веб-узел"
Преимущества использования средства "Опубликовать веб-узел":
- Процесс предварительной компиляции помогает обнаружить ошибки времени компиляции и потенциальные ошибки в файле Web.config, а также в других файлах, не содержащих программный код.
- Исходный код удаляется из веб-узла и, если необходимо, удаляется разметка в веб-файлах ASP.NET и пользовательские элементы управления. Это позволяет защитить интеллектуальную собственность и усложняет доступ других пользователей к исходному коду узла.
- Так как страницы веб-узла уже скомпилированы, при первом запросе динамическая компиляция не требуется. Это позволяет сократить время отклика при запросе страницы. (Когда страницы динамически скомпилированы, выходные данные кэшируются для последующих запросов.)
Недостатки использования средства "Опубликовать веб-узел":
- В зависимости от заданных параметров публикации можно выполнить повторную компиляцию веб-узла при его изменении. Поэтому нецелесообразно использовать средство "Опубликовать веб-узел" на этапе разработки веб-узла и при частом изменении страниц.
- Средство "Опубликовать веб-узел" не позволяет развернуть скомпилированный веб-узел на удаленном сервере. Данное средство выполняет копирование только на локальный компьютер или другой компьютер в локальной сети.