Best Practices for Self Updating Desktop Application in a network environment

后端 未结 5 660
慢半拍i
慢半拍i 2021-01-31 11:58

I have searched through google and SO for possible answers to this question, but can only find small bits of information scattered around the place, most of which appear to be p

5条回答
  •  挽巷
    挽巷 (楼主)
    2021-01-31 12:20

    It's hard to give a general answer. It depends on the context: criticality of the update, what kind of app is it, user preferences, #users, network width, etc. Here are some of the options/trade-offs.

    • Do you force an update if the clients software is out of date, but not going to break when trying to communicate with other version of the software or the database itself? If so how do you signify this breaking change?

      As a developer your best interest is to have all apps out there to be as up to date as possible. This reduces your maintenance effort. Thus, if the user does not mind you should update.

    • How often should you check for updates? Weekly/daily/hourly and exactly why?

      If the updates are transparent to the user, do not require an immediate restart of the app, then I'd suggest that you do it as often as your the communication bandwidth allows (considering both the update check-frequent but small-and the download-infrequent but large)

    • Should the update be visible to the user or run behind the scenes from a UI point of view?

      Depends on the user preferences but also on the type of the update: bug fixes vs. functionality/UI changes (the user will be puzzled to see the look and feel has changed with no previous alert)

    • Should you even notify the user that there is an update available if it is not a major update? (for instance fixing a single button in a remote part of the application which only one user actually requires)

      same arguments as the previous question

    • Should you try to patch the application or do you re-download the entire application from scratch Macintosh style?

      if app size is small download it from scratch. This will prevent all sort of weird bugs created to mismatch between the different patches ("DLL hell"). However, this may require large download times or impose heavy toll on your network.

    • Should you allow users to update from a central location or only allow updating through the specified application? (for closed business applications).

      I think both

提交回复
热议问题