GoldenEagle88
@GoldenEagle88

Как лучше всего реализовать автоматическое обновления программы на Delphi?

Было много идей ,пока стоит обновления через сайт.То есть при вкл софт проверяет версию, если версия старая выдает сообщения и скачивает с сайта новый файл.
Интересно есть ли какие то библиотеки для работы с этим в поиске нашел WinSparkle ,но как такового примера использования конкретно для делфи не нашел.
Или скажите как вы обновляете ваш софт ,или какие есть идеи.
Возможно через php скрипт или по другому.
  • Вопрос задан
  • 2137 просмотров
Пригласить эксперта
Ответы на вопрос 3
archakov06
@archakov06
Frontend-разработчик (ReactJS)
Лучше всего используя свой сайт. Сразу не парьтесь и сделайте оф. страницу софта на беспл. хостинге и используйте ТХТ файл, в котором будут меняться значения (версии). Если версия софта не сходится с ТХТ содержанием, обновляем. А использовать ФТП для скачки обновы и т.п. тупые решения не использовать. Луч сразу иметь одну ссылку которая будет всегда одна и та же, не зависимости от того, изменилась версия или нет. (Пример: site.ru/update/soft.exe), а софт твой уже сам переименует как надо.
Ответ написан
Комментировать
1) Используйте только HTTP и HTTPS, т.к. 50% Ваших пользователей находятся за прокси. HTTPS к тому же снимает
массу вопросов с целостностью обновляемого кода.

2) Учтите, что пользователь не всегда админ на своем ПК и по хорошему права записи в папку, где расположены бинарники не имеет, или может не иметь. Разное ПО решает эту проблему по-разному (вариант размещать изменяемую часть бинарников в личном профиле пользователя считаю несерьезным, хотя некоторые известные производители не брезгуют и этим) - многие единожды инсталлируют сервис обновлений, который имеет привилегии системы и периодически сверяет инсталлированную версию с размещенной на сайте. Хорошим тоном является реализовать к этому сервису минималистичную утилиту управления, чтобы хотя бы иметь возможность контролировать его поведение.

3) После 1000 активных пользователей Вам очень захочется а) распределять процесс обновления во времени для снижения нагрузки; б) тестировать вносимые изменения не на всех пользователях сразу, а на некоторой части, например, на 100 или на 5%. Из этого мы приходим к тому, что статический текстовый файл на сервере обновлений не самое удачное решение, все таки это должен быть скрипт (возвращающий рекомендуемую версию для клиента в зависимости от его ID), которым можно динамично управлять (например, повысить или понизить долю тестирующих, или передать на тест новую версию только для определенной группы, удовлетворяющей каким-либо условиям).

4) Ну и возможно Вам захочется ограничить взаимодействие с сервером версий, ниже определенной. Но это обычно реализуют в протоколе клиент-серверного обмена. Другое дело, что по-хорошему после отказа сервера в подключении из-за слишком старой версии ПО должно иметь возможность "подтолкнуть" сервис обновлений к экстренному обновлению.
Ответ написан
Комментировать
gogametreveli
@gogametreveli
Я использую вот этот компонент
https://www.tmssoftware.com/site/wupdate.asp
в принципе очень удобен и покрывает большинство хотелок
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы