Модель ClickOnce

100

Хотя ClickOnce поддерживает несколько типов развертывания, общая модель разработана так, чтобы сделать веб-развертывание практичным и легким. Вот как это работает. Среда Visual Studio используется для публикации приложения ClickOnce на вебсервере. Затем пользователь переходит на автоматически сгенерированную страницу (по имени publish.htm), которая предлагает ссылку для установки приложения. Когда пользователь щелкает на этой ссылке, приложение загружается, устанавливается и добавляется в меню Пуск. На рисунке показан этот процесс:

Установка приложения ClickOnce

Хотя ClickOnce — идеальный выбор для веб-развертывания, та же базовая модель подходит и для других сценариев, включая следующие:

Веб-страница установки не создается на общедоступном сетевом ресурсе, CD- или DVD-диске. Вместо этого пользователи устанавливают приложение непосредственным запуском программы setup.exe.

Наиболее интересная часть развертывания ClickOnce заключается в его способе поддержки обновления. По сути дела, вы (как разработчик) управляете несколькими установками обновления.

Например, вы можете сконфигурировать приложение для автоматической проверки наличия обновлений через определенные промежутки времени. Когда пользователь запускает приложение, в действительности он сначала запускает тонкую прослойку, которая проверяет наличие новой версии и предлагает пользователю загрузить ее.

Можно даже сконфигурировать приложение для использования веб-подобного интерактивного режима. В этом случае приложение должно запускаться со специальной веб-страницы ClickOnce. Приложение по-прежнему кэшируется локально для достижения оптимальной производительности, но пользователи не смогут запустить его до тех пор, пока не подключатся к сайту, на котором это приложение опубликовано. Это гарантирует, что они всегда будут запускать последнюю, самую современную версию приложения.

Ограничения ClickOnce

Развертывание ClickOnce не позволяет повсеместное конфигурирование. Многие аспекты его поведения жестко фиксированы — либо чтобы гарантировать согласованное восприятие пользователем, либо для обеспечения политик безопасности, подходящих для предприятий.

Ниже перечислены ограничения технологии ClickOnce:

Некоторые из перечисленных ограничений можно обойти. Например, приложение может быть сконфигурировано на добавление настроек реестра при его первом запуске на новом компьютере. Однако если предъявлены сложные требования к установке, то намного лучше обратиться к созданию полноценной специальной программы установки. Можно воспользоваться инструментами от независимых разработчиков вроде InstallShield или же создать проект установки в Visual Studio.

Наконец, следует отметить, что .NET позволяет построить специальную программу установки, использующую технологию развертывания ClickOnce. Это дает возможность проектировать сложные приложения установки, не жертвуя при этом средствами автоматического обновления, которые предлагаются ClickOnce. Однако есть и некоторые недостатки. Этот подход не только заставляет писать (и отлаживать) большой объем кода, но также требует использования унаследованных классов из комплекта инструментов Windows Forms для построения пользовательского интерфейса установки.

Лучший чат для C# программистов