作为一个上线的软件产品,后期会根据需求的变动进一步的修改功能,有时也会修改一下现有版本的BUG,修改完成之后,会更新到现有的软件中。
软件更新的方式一般有“推”和“拉”两种方式。“推”就是软件一旦有了新的版本需要更新,服务器会给每个客户端推送一个消息,告诉每个客户端需要及时更新版本,客户端会根据现在是的实际情况来更新软件;“拉”就是客户端会在一定的时机(开机启动时、点击客户端的某个按钮等)主动的检测当前的软件版本是否有新的版本需要更新,如果有新的版本需要更新,则会在此进行相应的操作来更新软件。
有时两种方式同时使用,比如服务器一旦有新的软件版本,会主动的推送更新版本消息,软件会在启动的时候主动的检测是否新的版本需要更新,如果有新版本的更新会自动的从服务器端下载。
现在有一个项目在第一个版本上线后,后期的需要版本更新,但是只是局限于局域网内,不能连接到互联网上。软件架构采用C/S架构,数据全部存入数据库中,所以在软件更新版本上有了新想法:
- 采用数据的方式,也就是把需要升级的文件提交到数据库中,以二进制文件的形式保存到数据库中;
- 同时保存的好友这个文件的版本号和文件名等基本信息;
- 单独编写一个自检程序,用来检测是否有新的文件版本需要更新;
- 首先启动自检程序后,检测是否有新的文件需要更新,若有更新则会从服务器的数据库上下载到指定的目录下面;
- 下载完后,再次启动程序,完成软件的版本的更新。
这样做的好处:
1、利用数据库通信的机制实现软件版本的更新,不在单独实现通信的过程;
2、升级程序和运行程序独立分开,各自实现功能,方便维护。