Updater

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

Updater

Сообщение fill-forty » 12.03.2011 21:11:43

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

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

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

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

За ранее благодарен. :)
fill-forty
новенький
 
Сообщения: 23
Зарегистрирован: 07.12.2009 20:53:49

Re: Updater

Сообщение devels » 12.03.2011 22:52:55

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

Должно быть ядро и плагины или встроенный скриптовой язык. Вы должны обновлять либо плагины (которые весят мало), либо скрипты (которые тоже весят очень мало).
devels
постоялец
 
Сообщения: 137
Зарегистрирован: 01.09.2010 12:14:38

Re: Updater

Сообщение Little_Roo » 12.03.2011 23:25:29

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

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

Самовыражайтесь яснее (с) :D
Аватара пользователя
Little_Roo
энтузиаст
 
Сообщения: 611
Зарегистрирован: 27.02.2009 19:56:36
Откуда: Санкт-Петербург

Re: Updater

Сообщение NTFS » 13.03.2011 00:52:54

Есть два подхода, использовал оба:
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%. Далее, она в этом режиме заменяет ВСЕ файлы в основном каталоге, запускает себя в основном каталоге и закрывается. Все, обновление выполнено.

Эта схема работает у меня в небольшом, но массовом проекте (около сотни рабочих мест на территории края). Все обновляется автоматически.
NTFS
постоялец
 
Сообщения: 388
Зарегистрирован: 05.11.2007 14:57:50
Откуда: Краснодар

Re: Updater

Сообщение fill-forty » 14.03.2011 10:58:58

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

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

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

За ранее благодарен...
fill-forty
новенький
 
Сообщения: 23
Зарегистрирован: 07.12.2009 20:53:49

Re: Updater

Сообщение v-t-l » 14.03.2011 11:14:26

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

Re: Updater

Сообщение Odyssey » 14.03.2011 11:24:54

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

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

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

Основной сайт библиотеки (первая ссылка) у меня сейчас почему-то не открывается, возможно, проблемы с маршрутизацией. В этом случае можно скачать библиотеку с Source Forge:
http://sourceforge.net/projects/synalis ... 20Release/
Odyssey
энтузиаст
 
Сообщения: 581
Зарегистрирован: 29.11.2007 17:32:24

Re: Updater

Сообщение fill-forty » 14.03.2011 12:55:05

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

Думаю, теперь будет по легче. :)
fill-forty
новенький
 
Сообщения: 23
Зарегистрирован: 07.12.2009 20:53:49

Re: Updater

Сообщение v-t-l » 14.03.2011 13:26:00

Если брать отсюда http://synalist.svn.sourceforge.net/viewvc/synalist/trunk/?view=tar, то установка и использование сильно упрощаются :D .
Положил в удобное место содержимое архива, открыл один раз в Лазарусе laz_synapse.lpk, нажал Компилировать и все. Потом только в Зависимости проектов добавлять пакет laz_synapse, а в uses нужные модули.
v-t-l
энтузиаст
 
Сообщения: 699
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus


Вернуться в Сеть

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Рейтинг@Mail.ru