自动更新程序的设计框架
来源:micronet-lukey 发布时间:2009-08-12 13:00:00
标签:更新,程序,框架
概要说明:
自动更新程序主要负责从服务器中获取相应的更新文件,并且把这些文件下载到本地,替换现有的文件。达到修复Bug,更新功能的目的。
本文作为更新程序的一个框架性设计,主要侧重介绍功能和流程。也许在若干年后,我再回顾当初自己的设计,会有另外一份所获。
系统组成:
FTP服务器 | 主要存放要更新的所有文件。提供客户端下载 |
更新文件生成功能 | 根据FTP文件夹中的内容,生成更新列表(xml文件) |
自动更新程序 | 判断版本号,下载最新的文件,替换现有程序。 |
服务端的流程图:
客户端的流程图:
更新列表文件介绍:
补充:
1:更新程序没有做成全自动。用户必须手工点击更新按钮,才启动更新程序。
因为目前的系统平时更新并不频繁。在系统刚上线的时候,可能更新会勤一些,但在系统运行稳定后,也许一年半载都不会去更新。
2:更新程序如果执行到一半,发生意外导致更新被迫终止,目前的解决方案是让用户再重新更新一次。没有断电续传。没有中间过程恢复。
如果更新程序使用并不频繁,就没必要加入过多的逻辑。偶尔出一些错误,只要不影响业务程序运行,绝大数用户还是可以忍受的。
3:虽然此更新功能和windows的update,瑞星的update相比,简直就是一个小儿科程序,但是这个程序的却也满足了我参与的所有项目的要求。
不求最好,够用就行。呵呵
0
投稿
猜你喜欢
- 有过Web经验的人喜欢使用:<meta http-equiv="refresh" content="1;
- Memoization 是一种将函数返回值缓存起来的方法,在 Lisp, Ruby, Perl, Python 等语言中使用非常广泛。随着
- 周六。据闻北服美女甚多,于是应邀去做了一个关于UED的讲座。人不多,讲的很乱,但大家听的很认真,欣慰。讲完之后回答了很多关于社区、搜索、设计
- 错误类型: Microsoft JET Database Engine (0x80004005) 不能使用 '';文件已在使
- 这个功能现在很多网站,论坛都有,本站也有呵呵!如果您还不知道如何实现这个功能,没关系看看本文吧!我将给你介绍怎么给你的网站加上运行代码框的功
- 当然有其它工具可以做这件事,但如果客户不允许你在服务器乱装东西时这个脚本就会有用了。 代码如下:DECLARE @tbImportTable
- Chrome的CSS支持程度 :Green / √ means current support.Orange / Δ means that
- 阅读上一章:Chapter 4 引用互动性一直是互联网的重点,让使用者与网站能够交换信息,彼此沟通.表单使我们能够有组织的,使用同一方式的从
- 有感于中国互联网设计界十几年的变化,从网页设计师变身界面设计师,和近一两年来兴起的转型交互设计师。大多数都是随着一个行业的兴起而前赴后继的投
- 今天我们看看所有的类!由于工作的上的事有点忙!点图!以后讲解这是我编译好了的类的结构图,我们可以用很多软件可以从原板的DLL看到这些内容!当
- 如何用表单在线建立目录?很简单,两个文件就搞定了:creatfolder.htm' 表单文件<form n
- 模块化分页1.查询语句块<% 取得当前文件名 temp = Split(request.ServerV
- 经常在网站上看到诸如www.abc.com/?news或者www.abc.com/?id=123这样的网址,一开始觉得很神秘,其实现在看多了
- 方法一1. 下载MySQL源码分发包,不用区分操作系统,我们需要的东西是一样的;2. 重命名自己的mysql的data目录下的mysql文件
- 计算分页,嘿嘿一次搞定不用判断intNumPage = Abs(Int(-(intNumRecord/intPerPage)))  
- 在asp中利用excel的一个方法是将excel文件作为一个数据库进行链接,然后的操作和对access数据库操作类似.但是这个方法不是总能有
- 我以centos 4.4 下面的mysql 5.0.33 手工编译版本为例说明:vi /usr/local/mysql/bin/m
- 在SQL Server数据库中,如果执行Transact-SQL时出现了错误,我们可以使用两种捕捉错误的方法解决此问题,一种是在客户端代码(
- 在日常的工作中,保护数据免受未授权用户的侵犯是系统管理员特别关心的问题。如果你目前用的是MySQL,就可以使用一些方便的功能来保护系统,来大
- 登录页面能访问得到,但当执行下级目录的文件就不行了,浏览器直接跳出以下错误页面: 除些以外没有任何其它有价值的信息,因为此网站在我的电脑上执