PDA

Просмотр полной версии : Система обновления для программы на .NET


Чех
23.11.2010, 18:59
Встала проблема сделать систему апдейтов для своей программы; идей много, однако не хочется изобретать велосипедов (их и так хватает). Более чем уверен, что кто-то когда-то уже делал такое для себя и имеет идеи, наброски, знает основные проблемы, а может и имеет готовые библиотеки.

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

Сама программа представляет собой программу типа WinForms написанную на MS VS 2010 с использованием .NET 3.0.

Жду идей, решений и подсказок.

Discordent
23.11.2010, 21:17
- автоматическая проверка наличия обновлений
- желательно вывод некоторых данных о версии. Например: список исправленных ошибок, комментарии авторов, ...

Это точно надо те будет тянуть с инете и соответственно дето в инете это вылажывать можно это желать просто как страницу как сделано например в той же 2010 студии на стартовой страницу
По поводу отката то тут соответственно те старую версию надо будет закатывать в бекап.
Обновление все равно придётся выносить в отдельный exe и при запуски скармливать ему файл обновления чтобы он ждал завершения твоей порги и заменял exe и все остальное по требованию.

- возможность даугрейда (т.е. возможность запросить историю релизов и откатиться, если с новой версией возникли проблемы)

Можно бекап собирать в файл обновления тем самым быстро останавливать старые версии

Чех
24.11.2010, 09:30
А кроме очевидных вещей можно что-нибудь конкретное? Просто это я и сам могу понять. Так например, список обновлений скорее всего будет генерироваться (PHP или python скриптом) или храниться на internet-сервере (возможно google или свой), в формате xml. Откуда будет запрашиваться программой по http протоколу. Затем уже на клиенте парситься и анализироваться.

Но на этом очевидные вещи заканчиваются. Вопрос по поводу того, делать бэкап всех файлов и затем предоставлять возможность отката из бэкапов или удалять их остаётся открытым, поскольку если будет нужен откат (который, кстати, не является бэкапом в общем смысле это понятия), то есть смысл просто выкачивать нужную версию системы и инсталлировать её поверх новой.

Discordent
24.11.2010, 11:20
делать бэкап всех файлов
Всех файлов надо только в том случае если ты собираешься восстанавливать через несколько версий.бекап желательно чтобы имел вид самого обновления. Тогда не придётся выдумывать велосипед, а пользовотся обновлением как для обновления так и для отката.