2009-05-13 2 views
3

Я хочу добавить очень простой автообновление в свои приложения. Я хочу начать с самой простой вещи, которая будет работать.Предложения по внедрению очень простого обновления, который проверяет наличие новой версии

Любые предложения о том, как это сделать? Любые предложения по улучшению (или альтернативе) к варианту ниже?

Вот один из вариантов, который я рассматриваю.

  1. App отображает форму, которая предлагает проверить наличие новой версии, с возможностью проверить еще раз каждые Х дней.
  2. Если пользователь нажимает кнопку «проверить сейчас» это запускает веб-страницу www.mysite.com/CheckNewVersion.asp?AppID= <>? AppVersion = <>
  3. Сценарий ASP имеет список всех и в настоящее время версии . Затем IT отображает на странице «Нет новых версий » или «Новая версия с функциями/исправлениями XYZ» (и либо «Бесплатное обновление», либо «Платите здесь»).

Это дает 80% выгоды от автоматического обновления всего за 10% стоимости. Если никто не нажимает на autoupdate (и я подозреваю, что это возможность, поскольку люди не хотят беспокоиться), то бессмысленно сделать это проще. Невозможно сделать так просто, что им не нужно, по крайней мере, нажать кнопку «Обновить».

BTW, я понимаю, что есть аналогичный вопрос о SO, но это не обсуждало детали реализации. Это казалось более теоретическим и нацеленным на более сложное решение.

+0

не уверен, где речь идет ?? –

+0

VB6? VB6?!?! OMG, это 2009 год, не так ли? Подождите ... серьезно ... VB6 ??? – Seb

+1

Это приложение для укупоривания, которое составляет около 12 лет (начало в VB3). До сих пор у нас теперь есть веская причина переписать их с нуля. Чем дольше мы ожидаем, тем лучше получат конвертеры VB6 на VB.net, и чем больше доходов мы должны заплатить за конверсию. –

ответ

1

В Mac OS X инфраструктура Sparkle очень популярна в приложениях для автоматического обновления. Он работает примерно так:

При первом запуске приложения он будет спрашивать, нужно ли автоматически или не проверять наличие обновлений (а иногда и интервал между проверками). Когда пользователь говорит, что хочет проверить наличие обновлений, приложение будет обычно проверять наличие обновлений при запуске, но не чаще одного раза в день.

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

Когда доступно обновление, приложение предложит: «Доступно обновление» с новым номером версии, списком изменений и следующими кнопками: «Обновить» и «Пропустить эту версию».

Кнопки, конечно, не требуют пояснений.

2

Мое предложение (после создания нескольких из них) состоит в том, чтобы начать с немного другой системы. Попросите приложение запустить проверку внутри, посмотрев статический XML-файл на сервере, например: /AppVersion_[AppID].xml. XML-файл просто описывает текущую общедоступную версию с текущим номером сборки/версии и, возможно, меткой времени и полным путем к последней двоичной системе, а также к контрольной сумме MD5. Это позволит сократить много работы и сложности для начала.

Приложение просто удаляет этот XML-файл и сравнивает информацию о версии в файле с текущей версией. Если он новее, вы можете открыть диалоговое окно с просьбой обновить его.

Если пользователь хочет обновить, вытащите двоичный файл установки из пути в файле XML, проверьте контрольную сумму MD5 и запустите его с выполнением оболочки. Это избавит пользователя от необходимости загружать файл и гарантирует, что файл будет загружен без каких-либо проблем.

Я хотел бы предложить обновление с VB6 на VB.NET по следующим причинам:

1) Волшебное контроль в .NET BCL называется WebClient, что делает получение строки содержимого URL же легко, как в одной строке вызов. Кроме того, WebClient загрузит файл в указанное место на диске одним вызовом.

2) Встроенная поддержка XML - это фантастика.

Вот некоторые основные код VB.NET, чтобы вы начали, что будет скачать один из ваших программных продуктов и запустить его:

Dim TargetRemoteSetupFile As String = "http://www.bungalowsoftware.com/downloads.asp?programlist=/download/aphasia_tutor_1_and_2_outloud_install.exe" 
Dim LocalDownloadPath As String = System.IO.Path.Combine(System.IO.Path.GetTempPath(), "BungalowSoftwareInstall.exe") 

Dim FileDownloaderWebClient As New System.Net.WebClient() 

Try 
    FileDownloaderWebClient.DownloadFile(TargetRemoteSetupFile, LocalDownloadPath) 
Catch ex As Exception 
    System.Diagnostics.Debugger.Break() 
    '... 
Finally 
    FileDownloaderWebClient.Dispose() 
End Try 

System.Diagnostics.Process.Start(LocalDownloadPath) 

 Смежные вопросы

  • Нет связанных вопросов^_^