桌面应用程序的版本更新,升级

公司开发了一款应用软件,有大量的用户在使用该软件,当应用程序有业务变动或者功能完善时,就面临一个问题,怎样高效稳定的更新客户端的应用程序。

根据现有的升级程序的缺陷,我们做了大量的改进工作,我做了一个升级程序原型,欢迎大家的指正和拍砖。

一:更新程序的后台管理

更新程序的后台管理分为三个部份,包括了待更新程序的上传,发布范围的选定以及相关更新的配置,对更新进行不同维度的统计。

1:待更新程序的上传

需求1:版本号可以根据前一个版本号自动生成下一个版本号,也可以人为的按版本号规则命名。

需求2:更新摘要,主要记录每次软件更新所完善的功能,以及解决的BUG,在客户端展示给用户,让用户选择是否有必要更新。(与jira关联)。

需求3:在上传整个更新程序的时候,用一个map.xml的文件描述整个程序的目录结构。

模型图如下:

2:发布范围的选定以及相关更新的配置

需求1:确定需要发布的版本后,根据对象的类型(渠道,用户)选择需要发布的对象。 其中如果钩选了 “全部用户更新”,选择对象范围为灰色,不起作用。

需求2:自动更新设置

      i:  是否让用户每次开启应用程序都检测更新。

      ii: 更新提示周期,就是客户端每隔多长时间检测一下,是否有新版本的程序需要更新。

      iii:当用户检测到有程序需要更新,是立刻更新,还是往后推迟更新。

模型图如下:

3:对更新进行不同维度的统计

需求1:查询某个用户,正在使用的程序版本。

需求2:某个版本,有多少个用户在使用。

需求3:某个版本,在某个时间段的更新用户数。

需求4:查询某个用户更新的历史记录。

模型图如下:

二:客户端更新程序

1:客户端更新提示及设置

需求1:显示本次更新的摘要

需求2:用户可以决定在何时更新

模型图如下:

2:客户端更新状态

需求1:可以显示下载更新的进度,以及详细信息。

需求2:当下载安装后,可以显示更新进度和详细信息。

目前这个更新程序就基本上能满足我们现在的需求了。

园友,还有什么更好的建议以及我没考虑到的需求,欢迎提出来,到时候也做一个万能的,通用的升级程序软件。

如果博客对你有帮助,在右下角推荐我一下。

 

 对应9楼:

posted @ 2015-05-21 16:57 Sam Xiao 阅读(...) 评论(...) 编辑 收藏