版本自动更新程序及3种实现策略

版本自动更新程序及3种实现策略

ID:18236418

大小:125.50 KB

页数:37页

时间:2018-09-15

版本自动更新程序及3种实现策略_第1页
版本自动更新程序及3种实现策略_第2页
版本自动更新程序及3种实现策略_第3页
版本自动更新程序及3种实现策略_第4页
版本自动更新程序及3种实现策略_第5页
资源描述:

《版本自动更新程序及3种实现策略》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、版本自动更新程序及3种实现策略C/S程序是基于客户端和服务器的,在客户机编译新版本后将文件发布在更新服务器上。然后建立一个XML文件,该文件列举最新版本号和所有文件及文件最后修改日期。如文件较多可以通过工具自动建立XML文件。当某客户机运行程序后会自动下载这个XML文件,通过与本地机器上的版本号匹配,如本机上的版本号比服务器上的要旧,通知客户机运行更新程序。如用户更新了版本,将最新版本号写入配置文件,这样方便下一次匹配。通过可行性分析可以使用下面3种方案下载1.局域网共享文件夹下载 2.Tcp/ip远程下载 3.通过Web方式下载。方式1适合内部网络,功能简单,编

2、程只需调用File.Copy()就能实现。如建立VPN网络,也可视为远程下载。我们只需在服务器上共享一个文件夹并设定访问权限,然后将最新版本文件存放在这个目录。升级程序直接从这个目录Copy文件即可。方式2是通过基于tcp/ip的Socket组件编程来实现,使用这个机制必须有服务器监听程序。其简单设计思路是在服务器端启动TcpListener监听客户端的Socket连接,当Client发送连接请求,TcpListener捕获当前请求的Socket,并获取收到的数据(字符串,称为命令)。然后由命令处理程序分析该字符串,如果字符串头部包含GET_FILE标识则为下载文

3、件请求。例:客户机向服务器程序发送请求命令:"GET_FILE

4、D:PUBLISHTEST.DLL"。首先TcpListener捕获当前请求的Socket.并接收到字符数据"GET_FILE

5、D:PUBLISHTEST.DLL",通过分析发现"GET_FILE"标识符,表示下载文件请求.然后通过socket.SendFile(file="D:PUBLISHTEST.DLL")将文件传送给当前Socket。客户端由NetworkStream.Read()方法接收来自服务器发送的文件。方式3是通过.NetFramework提供的WebClient组件下载文

6、件。只需指定DownloadData()方法中参数address(url)。通过上面的介绍,1,3方法最简单。Tcp/ip相对复杂。 下面讲解版本更新程序系统框架图主窗体<->下载控制器<->XmlLoader关系图图解:frmUpgrader窗体内定义了一个下载控制器及2个TreeView控件.当执行[检查更新],控制器调用当前下载器的DownloadServerXml()方法从服务器下载XmlServerFiles.xml文件。下载成功将文件交给XmlLoader分析器,分析器创建XmlDocument对象。最后将XML分析器作为FileView构造器参数创建

7、FileView实例,分别调用FileView的LoadTreeViewClient方法创建客户端文件清单的TreeView及LoadTreeViewServer方法创建服务器端文件清单的TreeView。TreeView的数据来源是两个Xml文件。DownloadController下载控制器,它负责建立下载策略及控制当前下载器。 FileView对象实际是个TreeView生成器。它跟据Xml结构自动生成TreeView.XmlLoader分析器主要功能是分析服务器端及本地的XML文件(XmlServerFiles.xml和XmlClientFiles.xml

8、)。XmlLoader类图列举了所有方法,从图中可以看出控制XmlDocument对象。通过XmlDocument.SelectSingleNode方法查找某个指定的文件,然后获取文件最后修改日期文件名等信息用于匹配。IDownloader接口定义了所有下载器的方法,下面会详细讲解3个下载器的实现策略。FileInfo是文件的实体类,结构相当简单,只包含文件名,物理路径及最后修改时间。三种不同的下载器实现方案:三种不同的下载器实现方案类及接口说明: frmUpgrader:主窗体DownloadController:下载控制器,如上图所示,它是控制IDownloa

9、der接口。IDownloader:下载器接口,三种不同的下载器分别实现了这个接口LAN_Downloader:局域网复制文件下载器。WebClient_Downloader:广域网下载器,通过WebClient组件下载文件。TcpIp_Downloader:Tcp/ip下载器。需要运行Tcp/ip服务器提供下载服务。 主窗体有[检查更新]及[开始更新]两个按钮。分别调用下载控制器的CheckUpdate()及Download()方法。下载控制器控制IDownloader接口,三种不同的下载器分别实现了这个接口,通过对象多态原理,实际上是下载控制器间接控制着实现I

10、Downl

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。