在网络环境中自我更新桌面应用程序的最佳实践 [英] Best Practices for Self Updating Desktop Application in a network environment

查看:106
本文介绍了在网络环境中自我更新桌面应用程序的最佳实践的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经通过Google和SO搜索了该问题的可能答案,但只能找到分散在该地点附近的少量信息,其中大部分似乎是个人观点.

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 personal opinion.

我知道这个问题可以被认为是主观的,但是我不是在寻求个人意见,而是寻求有原因的事实(例如,过去的经验),甚至是指向描述此最佳做法的博客/维基的单个链接. (这是我更愿意说的).我不需要的是如何使它工作,我知道如何创建一个自我更新的桌面应用程序.

I'm aware that this question could be considered subjective, but I'm not looking for personal opinion, rather facts with reasons (e.g. past experience) or even a single link to a blog/wiki which describes best practices for this (this is what I'd prefer to be honest). What I'm not looking for is how to make this work, I know how to create a self updating desktop application.

我想了解有关创建自我更新桌面应用程序的最佳实践.我特别好奇的最佳做法是:

I want to know about the best practices for creating a self updating desktop application. The sort of best practices I'm especially curious about are:

  • 如果客户端软件已过时但是否在尝试与该软件的其他版本或数据库本身进行通信时不会中断,您是否会强制进行更新?如果是这样,您如何表示这一重大变化?
  • 您应该多久检查一次更新?每周/每天/每小时,为什么?
  • 该更新是用户可见还是从UI角度在幕后运行?
  • 如果不是主要更新,您是否还要通知用户有可用的更新? (例如,仅在一个用户真正需要的应用程序的远程部分中固定一个按钮)
  • 您应该尝试修补该应用程序还是从头开始以Macintosh风格重新下载整个应用程序?
  • 您应该允许用户从中央位置进行更新还是仅允许通过指定的应用程序进行更新? (用于封闭的业务应用程序).

有关此内容,肯定有一些书面规则/建议吗?许多应用程序最烦人的事情之一就是更新,因为很难在过时"和面对用户"之间找到良好的平衡.

Surely there is some written rules/suggestions about this stuff? One of the most annoying things about a lot of applications is the updating, as it's hard to find a good balance between "out of date" and "in the users face".

如果这有助于为单个客户端使用.net C#编写,并在与更新服务器保持恒定可用连接的计算机上运行,​​则所有这些计算机都通过应用程序相互通信,并且所有计算机都与中央数据库服务器.

If it helps consider this to be written in .net C# for a single client, running on machines with constant available connectivity to the update server, all of these machines talk to each other through the application, and all also talk to a central database server.

推荐答案

很难给出一个普遍的答案.这取决于上下文:更新的重要性,更新类型,应用程序,用户首选项,#用户,网络宽度等.以下是一些选项/权衡.

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?

作为开发人员,您最大的兴趣就是拥有尽可能多的最新应用.这样可以减少维护工作量.因此,如果用户不介意,您应该进行更新.

您应该多久检查一次更新?每周/每天/每小时,为什么?

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

如果更新对用户是透明的,则不需要立即重新启动应用程序,那么我建议您在通信带宽允许的范围内进行更新(考虑两次检查更新频率)但很小,而下载很少但很大)

该更新应该是用户可见的还是从UI角度在幕后运行?

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

取决于用户的喜好,还取决于更新的类型:错误修复与功能/UI更改(用户会迷惑不已地看到外观没有以前的警报而发生了变化)

如果不是主要更新,您是否还要通知用户有可用的更新? (例如,在仅一个用户实际需要的应用程序的远程部分中固定一个按钮)

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)

与上一个问题相同的参数

您应该尝试修补该应用程序还是要从头开始以Macintosh风格重新下载整个应用程序?

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

如果应用大小较小,请从头下载.这将防止创建各种奇怪的错误,以使不同的补丁之间不匹配("DLL地狱").但是,这可能需要较长的下载时间或对您的网络造成沉重的负担.

您应该允许用户从中央位置进行更新还是仅允许通过指定的应用程序进行更新? (用于封闭的业务应用程序).

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

我都认为

这篇关于在网络环境中自我更新桌面应用程序的最佳实践的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆