Модель ClickOnce
100WPF --- Периферия WPF --- Модель ClickOnce
Хотя ClickOnce поддерживает несколько типов развертывания, общая модель разработана так, чтобы сделать веб-развертывание практичным и легким. Вот как это работает. Среда Visual Studio используется для публикации приложения ClickOnce на вебсервере. Затем пользователь переходит на автоматически сгенерированную страницу (по имени publish.htm), которая предлагает ссылку для установки приложения. Когда пользователь щелкает на этой ссылке, приложение загружается, устанавливается и добавляется в меню Пуск. На рисунке показан этот процесс:
Хотя ClickOnce — идеальный выбор для веб-развертывания, та же базовая модель подходит и для других сценариев, включая следующие:
развертывание приложения из общедоступного сетевого ресурса;
развертывание приложения с CD- или DVD-диска;
развертывание приложения на веб-сервере или общедоступном сетевом ресурсе с последующей отправкой по электронной почте ссылки на программу установки.
Веб-страница установки не создается на общедоступном сетевом ресурсе, CD- или DVD-диске. Вместо этого пользователи устанавливают приложение непосредственным запуском программы setup.exe.
Наиболее интересная часть развертывания ClickOnce заключается в его способе поддержки обновления. По сути дела, вы (как разработчик) управляете несколькими установками обновления.
Например, вы можете сконфигурировать приложение для автоматической проверки наличия обновлений через определенные промежутки времени. Когда пользователь запускает приложение, в действительности он сначала запускает тонкую прослойку, которая проверяет наличие новой версии и предлагает пользователю загрузить ее.
Можно даже сконфигурировать приложение для использования веб-подобного интерактивного режима. В этом случае приложение должно запускаться со специальной веб-страницы ClickOnce. Приложение по-прежнему кэшируется локально для достижения оптимальной производительности, но пользователи не смогут запустить его до тех пор, пока не подключатся к сайту, на котором это приложение опубликовано. Это гарантирует, что они всегда будут запускать последнюю, самую современную версию приложения.
Ограничения ClickOnce
Развертывание ClickOnce не позволяет повсеместное конфигурирование. Многие аспекты его поведения жестко фиксированы — либо чтобы гарантировать согласованное восприятие пользователем, либо для обеспечения политик безопасности, подходящих для предприятий.
Ниже перечислены ограничения технологии ClickOnce:
Приложения ClickOnce устанавливаются для единственного пользователя. Установка приложения для всех пользователей рабочей станции невозможна.
Приложения ClickOnce всегда устанавливаются в управляемую системой папку, специфичную для пользователя. Изменить или повлиять на выбор папки, куда устанавливается приложение, нельзя.
Если приложения ClickOnce устанавливаются в меню Пуск, они получат всего два ярлыка: один запускает приложение, а другой — открывает в браузере справочную веб-страницу. Изменить это не удастся, равно как не получится добавить приложение ClickOnce в группу Startup (Автозагрузка), меню Favorites (Избранное) и т.п.
Нельзя изменять пользовательский интерфейс мастера установки. Это значит, что добавлять новые диалоговые окна, изменять текст в существующих окнах и т.п. невозможно.
Нельзя изменять страницу установки, сгенерированную приложениями ClickOnce. Однако после генерации можно отредактировать HTML-разметку вручную.
Развертывание ClickOnce не позволяет устанавливать разделенные компоненты в кэш глобальных сборок (GAC).
Развертывание ClickOnce не дает возможность выполнять специализированные действия (такие как создание базы данных или конфигурирование настроек реестра).
Некоторые из перечисленных ограничений можно обойти. Например, приложение может быть сконфигурировано на добавление настроек реестра при его первом запуске на новом компьютере. Однако если предъявлены сложные требования к установке, то намного лучше обратиться к созданию полноценной специальной программы установки. Можно воспользоваться инструментами от независимых разработчиков вроде InstallShield или же создать проект установки в Visual Studio.
Наконец, следует отметить, что .NET позволяет построить специальную программу установки, использующую технологию развертывания ClickOnce. Это дает возможность проектировать сложные приложения установки, не жертвуя при этом средствами автоматического обновления, которые предлагаются ClickOnce. Однако есть и некоторые недостатки. Этот подход не только заставляет писать (и отлаживать) большой объем кода, но также требует использования унаследованных классов из комплекта инструментов Windows Forms для построения пользовательского интерфейса установки.