Updater

Модератор: Модераторы

Ответить
fill-forty
новенький
Сообщения: 25
Зарегистрирован: 07.12.2009 19:53:49

Updater

Сообщение fill-forty »

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

Есть сайт, где будет лежать зеркало программы.

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

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

За ранее благодарен. :)
devels
постоялец
Сообщения: 137
Зарегистрирован: 01.09.2010 12:14:38

Re: Updater

Сообщение devels »

Что из себя представляет программа?

Должно быть ядро и плагины или встроенный скриптовой язык. Вы должны обновлять либо плагины (которые весят мало), либо скрипты (которые тоже весят очень мало).
Аватара пользователя
Little_Roo
энтузиаст
Сообщения: 639
Зарегистрирован: 27.02.2009 18:56:36
Откуда: Санкт-Петербург

Re: Updater

Сообщение Little_Roo »

fill-forty писал(а):Но нету пока извилин, чтобы додуматься, как мне сделать так, чтобы программа могла обновлять компоненты, через интернет.
Каким мне компонентом воспользоваться, чтобы можно было такое сделать.

Компоненты чего - Лазаруса ? :?:
И как это - компонент для компонента ???? :?:
Или все ж программу обновлять?? :?:

Самовыражайтесь яснее (с) :D
NTFS
постоялец
Сообщения: 388
Зарегистрирован: 05.11.2007 13:57:50
Откуда: Краснодар
Контактная информация:

Re: Updater

Сообщение NTFS »

Есть два подхода, использовал оба:
1) Встроенный в программу менеджер обновлений
2) Внешняя программа.

В обоих случаях, вводим глобальный номер версии, пусть это будет номер билда. Далее, при выходе новой версии, делаем на сервере файл, в котором храним список измененных файлов и их пути для локальной проги, а также номер версии, в которой они последний раз менялись.
Пример:
bin\MyBestProg1.exe,56
bin\MyBestProg1.dll,55
images\Background.png,33
reports\printTable.frf,54

Программа при запросе обновления читает файл с сервера и определяет, исходя из своей версии, что изменилось. Качает только необходимые файлы.
Так, в примере выше, если запрос делает программа версии 54, то ей нужно только скачать exe-файл и dll. А если 53 - то еще и шаблон отчета.

Если качаем из отдельной программы-обновлялки, то все просто - заменяем локальные файлы на новые и запускаем после программу.
Если менеджер встроен в сам бинарник, то чуть сложнее. Качать нужно в подкаталог, например, inbox. Но с сохранением структуры каталогов. Потом, при следующем старте программы, она обнаруживает в inbox свежие файлы - и запускается, скопировав себя в каталог %TEMP%. Далее, она в этом режиме заменяет ВСЕ файлы в основном каталоге, запускает себя в основном каталоге и закрывается. Все, обновление выполнено.

Эта схема работает у меня в небольшом, но массовом проекте (около сотни рабочих мест на территории края). Все обновляется автоматически.
fill-forty
новенький
Сообщения: 25
Зарегистрирован: 07.12.2009 19:53:49

Re: Updater

Сообщение fill-forty »

Благодарю за ответы. Много полезного. :)
Но как всегда, сталкиваюсь с пародией на один анекдот. :)

""Это всё понятно, только я никак не могу понять, как ёжики размножаются."" :)
Знаю, это просто, но для меня пока тёмный лес. :)
Меня интересует вопрос, каким "Макаром" (какой компонент для того нужен) программа выкачивает по http, или ftp, нужные мне файлы.
Какой компонент для лазаруса, нужен. Чтобы он мог выкачивать их от туда.
Потому как, выкачать файл даже по сети, это уже совсем иная технология. А у же про глобальную сеть. Вообще молчу.
Это ж разные среды.
Готовым упдайтером пользоваться не хочу. Хочу сделать свой.:)

Надеюсь, сейчас объяснил намного яснее :).

За ранее благодарен...
v-t-l
энтузиаст
Сообщения: 744
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Re: Updater

Сообщение v-t-l »

Odyssey
энтузиаст
Сообщения: 580
Зарегистрирован: 29.11.2007 16:32:24

Re: Updater

Сообщение Odyssey »

v-t-l: Опередил :)

Ararat Synapse (на который как раз указывает ссылка v-t-l). Только это не компонент, а библиотека, в том смысле, что его на форму не положишь, нужно добавлять модуль в uses и вызывать функции, или создавать классы.

Навскидку, нужна будет функция HttpGetBinary из модуля httpsend.

Основной сайт библиотеки (первая ссылка) у меня сейчас почему-то не открывается, возможно, проблемы с маршрутизацией. В этом случае можно скачать библиотеку с Source Forge:
http://sourceforge.net/projects/synalis ... 20Release/
fill-forty
новенький
Сообщения: 25
Зарегистрирован: 07.12.2009 19:53:49

Re: Updater

Сообщение fill-forty »

Благодарю за ссылки.
Скачал.
Буду ковырять. :D
Как раз восполню прореху в знаниях по подключению всяких сторонних библиотек.
А то всю жизнь с нуля приходилось свои писать :)

Думаю, теперь будет по легче. :)
v-t-l
энтузиаст
Сообщения: 744
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Re: Updater

Сообщение v-t-l »

Если брать отсюда http://synalist.svn.sourceforge.net/viewvc/synalist/trunk/?view=tar, то установка и использование сильно упрощаются :D .
Положил в удобное место содержимое архива, открыл один раз в Лазарусе laz_synapse.lpk, нажал Компилировать и все. Потом только в Зависимости проектов добавлять пакет laz_synapse, а в uses нужные модули.
Ответить