четверг, 25 июня 2009 г.

Технология ClickOnce

Вы, наверное, знаете, что программы не растут на программном дереве, а делаются особым подвидом людей: программерами. Так вот, опять же вы знаете, что большинство программ приходит к потребителю ввиде дистрибутива, то есть программы установки. Дистрибутив призван поставить все как надо и куда надо, чтобы пользователь не заморачивался всякими записями в реестре и т.д. Короче говоря, с помощью носителя информации и дистрибутива производится доставка софта пользователю. Например, PicLab имеет дистрибутив, который забирается к себе домой с помощью, ну допустим, флешки.

Все это хорошо, но мне захотелось теперь сделать так, как велит великий и могучий интернет: чтобы софт ставился прямо из сети (особенно если функционал софта на сеть завязан и на уединенной машине бесполезен). При этом я, конечно, захотел, чтобы обновления приезжали прямо по сети. И к тому же мне нужно было готовое решение. Уж не изобретать ли велосипед, как многие (и вы таких знаете) делают?

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

Основные черты:

  • Автоматическое обновление
  • Откат после установки
  • Обновление через Интернет
  • Добавление приложения в меню Пуск
Проверка обновлений может быть настроена двумя способами:
  • До запуска программы -- сначала проверка, обновление (если надо), запуск.
  • После запуска -- запуск программы, проверка по расписанию, обновление (если надо) .
Это все круто, но есть минусы, ну то есть то, что эта технология не умеет:
  • Установка общих файлов
  • Установка драйверов
  • Установка глобального кэша сборок
  • Установка для нескольких пользователей
  • Добавление приложения в группу «Автозагрузка»
Кроме того, надо отметить, что программы могут оставаться сетевыми (при клике на ссылку программа загружается и запускается, после закрытия -- удаляется), или быть установленными на компьютер. В первом случае обновления вовсе бесполезны, поскольку каждый раз будет загружаться и запускаться свежая версия. Но тут надо помнить про нагрузку на сеть (программа должна быть каких-то вменяемых размеров). Во втором случае остается локальная копия, которая проверяет (а может и не проверять) наличие обновлений. Локальная установка, кстати, не завязывает выполнение программы на сеть (ну вдруг у инет отвалился).

Замечу еще, что программа ставится не в Program Files. Это как-то непривычно, конечно, но можно свыкнуться. Спрашивать куда ставится можно, но не нужно ;-) Официально это называется кэш ClickOnce. Реально это находится в папке пользователя со страшным-престрашным путем.

Вот так выглядит процесс обновления при запуске:

Короче говоря -- технология ClickOnce проста в использовании и эффективна. Надо брать.

Вы догадались, наверное, что в сети надо где-то размещать хранилище для «дистрибутива». Это безусловно так. Но об этом в следующем послании граду и миру.

Рекомендую к просмотру доклад:
Использование ClickOnce для быстрого разворачивания приложений

2 коммент.:

Evgeny Pavlov 26 июня 2009 г., 23:26  

А... так вот как это называется. Запарили программы, которые так ставятся.

apalkoff 27 июня 2009 г., 0:24  

А чем запарили? Для пользователя -- очень легко. Для разработчика -- легко. Какие проблемы? :-)

Отправить комментарий