Стратегия развертывания для распространения обновлений приложений по большой организации - PullRequest
0 голосов
/ 03 декабря 2009

Мы начнем проект по разработке приложений (.NET 3.5) для большой организации. Когда мы начали думать об обновлениях, которые мы будем предоставлять на всех машинах, мы рассматриваем такие варианты, как ClickOnce.

Нам нужна push-модель, пока клиентский компьютер подключен к сети, сервер может отправлять обновления. Я полагаю, что ClickOnce - модель вытягивания (хотя, указав минимальную версию, мы можем что-то толкнуть). Также ClickOnce загружает только полные файлы, но не может загрузить изменение (разницу в байтах) среди файлов.

Может кто-нибудь указать мне на лучший инструмент, который можно использовать здесь. Также приветствуются лучшие стратегии, если таковые имеются, мы находимся на очень ранней стадии проекта.

Ответы [ 3 ]

1 голос
/ 03 декабря 2009

У меня нет точного ответа на лучшие варианты, но я использовал ClickOnce и могу дать несколько советов.

Существует несколько вариантов обновления с ClickOnce (перед запуском, после запуска проверяйте каждый раз, проверяйте каждые X часов / дней / недель и т. Д.). Вы также можете выбросить их и написать код для проверки обновлений. Это не «подталкивание» с сервера, но ваш клиент может опросить обновления, которые будут следующей лучшей вещью. Просто помните, что после обновления приложение будет перезапущено, чтобы увидеть изменения.

ClickOnce загружает только измененные файлы. Тем не менее, диалоговое окно прогресса всегда показывает весь размер приложения, даже если оно загружает только один файл. Все беспокоятся об этом, но это просто ошибка в диалоге прогресса.

Наконец, я большой поклонник простоты. Очень легко обдумать эти вещи и создать чудовище, которое никогда не было нужно. Мы пережили нечто подобное в моей компании. Мы так беспокоились о том, что пользователи загружают ненужные байты, мы разделили наши приложения на более мелкие сборки. Это превратилось в кошмар; приложения было сложнее поддерживать и работать хуже на клиенте. Мы наконец отменили все это и потратили впустую недели, чтобы закончить с того, с чего начали.

Я не говорю, что вам не нужны запрашиваемые вами функции, я не знаю ваш сценарий. Просто сначала обучай себя и знай, во что ты ввязываешься.

0 голосов
/ 01 сентября 2010

Я только внедряю такой сервис поверх моей платформы распределенных приложений. По сути, я разработал модель «толчка» для компаний, которая следует следующим основным принципам:

  • Обновления программного обеспечения "управляются" с сервера, а не с клиента, что соответствует развертыванию корпоративного программного обеспечения, а не пользовательского программного обеспечения (это очень важный момент)
  • Обновления программного обеспечения могут быть настроены для каждого клиентского приложения на сервере, т. Е. Сервер может развернуть уникальные конфигурации для каждого клиента при необходимости
  • Обновления программного обеспечения могут быть развернуты на клиентах в разное время, или все одновременно, или в любой комбинации из двух
  • Версия обновления программного обеспечения может быть указана для каждого клиента, т. Е. Разные версии могут быть развернуты на разных клиентах по мере необходимости
  • Всеми обновлениями программного обеспечения для всех клиентов можно «управлять» с одного сервера, т. Е. «Служба» обновления программного обеспечения одинакова для любого приложения, и все приложения могут использовать «службу» обновления программного обеспечения
  • Клиенты могут реализовать политику обновления программного обеспечения: автоматическое (приложение перезапускается, как только обновление будет загружено и доступно на клиенте), ручное (приложение должно быть «отправлено», пользовательское «принудительное обновление»). сообщение ") или при перезапуске (обновление приложения при завершении работы, если обновление было загружено и доступно)
  • Все функции автоматического обновления прозрачны для любых работающих приложений, поскольку все это выполняется в автономных фоновых потоках, а все межпроцессное взаимодействие и передача файлов обрабатываются моим фреймворком

По сути, теперь это позволяет мне (или позволит мне, когда я немного прибрался и тщательно протестировал реализацию), управлять версией любого приложения, разработанного мной, с центрального сервера после его первоначальной установки, без любое вмешательство клиента.

0 голосов
/ 03 декабря 2009

Мы используем clickonce в моей компании (географически рассредоточено около нескольких сотен пользователей). Указав минимальную версию, мы можем быть уверены, что каждая установка приложения обновляется после развертывания автоматически. Вы правы, что clickonce загружает только полные файлы, но только файлы, которые изменились с предыдущей версии. Если это все еще вызывает беспокойство, вы можете разбить ваше приложение на более мелкие сборки. Я думаю, что вы также можете использовать сетевые модули, но тогда Visual Studio не имеет встроенной поддержки для этого.
В целом, clickonce хорошо сработал для нас.

...