|
|
#1
|
|||
|
|||
CheckForUpdate
Народ,
За вечер накидал вот такой классик (attached, Delphi 7). Класс предназначен для проверки наличия новой версии софтины на сайте. На сайт выкладывается маленький xml с описанием текущей версии (собственно верися и описание изменений). Пример xml - version.xml в архиве. Класс берет версию из VersionInfo exe-шника (или можно при создании указать), качает xml с сайта и сверяет их. Интересует: 1. Советы что можно туда еще приделать и надо ли? (например, парсинг не только своего формата, но и PAD, или вообще задавать путь тегов, или JSON поддерживать, нужна ли поддержка https/ftp/ftps. И т.п.) 2. Сейчас просто сделана проверка по неравенству. Может сделать какой-нить более интересный алгоритм сравнения. Например, сгенерировать большое число из версии и сравнивать его, типа: 1000000*major + 10000*minor + 100*release + build |
#2
|
||||
|
||||
> https/ftp/ftps нужно
> Добавить работу в потоке > ИМХО, проще смотреть на сервере дату архива с программой, если она "свежее" даты изменения основного файла программы, то качаем архив и распаковываем\устанавливаем |
#3
|
||||
|
||||
Цитата:
jmp $ ; Happy End! The Cake Is A Lie. |
#4
|
||||
|
||||
И еще, лучше хранить не весь пакет, а именно патчи (Diff-файлы), дабы юзверь поживее обновлялся, и была меньше нагрузка на сеть
|
#5
|
||||
|
||||
Тогда хранить-таки надо весь, только к каждому файлу иметь хеш. А клиент будет выкачивать только то, хеши чего отличаются. Иначе при обновлении с очень старой версии будут проблемы.
Но пока только проверка, скачивания нет. В текущей реализации имеется в виду, что юзер сам будет ставить. jmp $ ; Happy End! The Cake Is A Lie. Последний раз редактировалось Bargest, 18.02.2016 в 12:05. |
#6
|
|||
|
|||
Именно. Это только сама проверка.
С датой файла сложнее, т.к. надо вычислять временную зону клиента и сервера. И если для клиента это относительно просто, то для сервера это может быть проблемой. Вся идея была в том, что бы держать маленький файлик с номером крайней версии и коротким описанием изменений. Класс просто обеспечивает относительно удобный интерфейс к получению этого файла и выяснению свежее он текущей версии или нет. Реализация самого обновления на ответственности программиста. Например, для моих проектов проще открыть просто ссылку на скачивание, нежели городить огород с дифами или разными другими механизмами. По поводу https/for - видимо, надо переписать на что-то другое, например internetReadFile, что бы с openssl не заворачиваться и не тянуть за собой эти либы. Хотя опять же, сейчас для моих проектов простого http достаточно... А вообще, кто-то хоть поигрался с этим? Замечания к текущей версии есть (в том функционале как она сейчас)? Последний раз редактировалось lmikle, 18.02.2016 в 19:35. |