您的位置:首页 > 移动开发

基于Microsoft Updater Application Block(MUAB)实现自动组件更新和无缝安装

2009-01-16 14:33 1021 查看
Smart Client另外一个非常重要的特性,即如何保持版本自动更新。微软也提供了相应的Application Block,即Microsoft Update

Application Block,下面,结合我们的代码,看一下如何在应用当中编写版本自动更新的功能:
服务器端配置。
a. 在Web Server建立一个Web 虚拟路径。
b. 分开存放各个版本的组件到该虚拟路径下。
c. 在Web虚拟路径根路径下,放入一个Manifest.xml文件。
客户端配置。
a. 建立一个应用路径。
b. 拷贝AppStart.exe和其应用程序配置文件到该路径。
c. 修改应用程序的配置程序的MUAB配置区域的信息称为响应的服务器和客户端配置。
自动更新及无缝安装的程序实现。
获得MUAB。
this.gengXinKongZhi = new ApplicationUpdateManager();
注册应用程序组件更新事件。
a. gengXinKongZhi.DownloadStarted +=new UpdaterActionEventHandler(ChengXuXiaZaiKaiShi );
开始下载事件的注册到需求查询控制类的ChengXuXiaZaiKaiShi()过程

b. gengXinKongZhi.FilesValidated +=new UpdaterActionEventHandler(ChengXuWenJianKeYiYunXing );
下载文件校验成功事件的注册需求查询控制类clsXuQiuChaXunKongZhi的()ChengXuWenJianKeYiYunXing()过程

当组件下载并校验成功后调用运行新程序过程。首先调用XuQiuChaXunForm的YunXinChengXu()过程提示用户是否运行新程序,如果用

户同意则在调用 需求查询控制类clsXuQiuChaXunKongZhi的YunXingXinChengXu()过程。处理过程是县获得更新程序所在目录然后启

动一个新的进程运行新版本程序,最后销毁当前运行程序。

c. gengXinKongZhi.UpdateAvailable +=new UpdaterActionEventHandler(ChengXuZuJianKeYiXiaZai );
检测到新版本的事件注册需求查询控制类clsXuQiuChaXunKongZhi的ChengXuZuJianKeYiXiaZai ()过程

ChengXuZuJianKeYiXiaZai()处理过程首先判断网络是否连接,如离线退出。在上线的情况下先提示用户是否现在新版本程序,同意

则下载,否则不下载同时停止组件更新。
d. gengXinKongZhi.DownloadCompleted +=new UpdaterActionEventHandler(ChengXuXiaZaiWanCheng);
下载完成后事件注册在需求查询控制类clsXuQiuChaXunKongZhi的ChengXuXiaZaiWanCheng ()过程

ChengXuXiaZaiWanCheng()通过委托事件调用主界面的XiaZaiJieShu()过程,功能实现提示用户下载完成。
gengXinKongZhi.FilesValidationFailed += new UpdaterActionEventHandler(gengXinKongZhi_FilesValidationFailed);
下载文件校验失败事件注册在需求查询控制类clsXuQiuChaXunKongZhi的gengXinKongZhi_FilesValidationFailed ()过程。

提示用户下载失败。

启动组件更新。
this.gengXinXC = new Thread(new ThreadStart(this.gengXinKongZhi.StartUpdater) );
this.gengXinXC.Name="应用程序更新线程";
gengXinXC.Start();

停止组件更新。

停止组件更新TingZhiZuJianGengXin ()过程封装在需求控制类clsXuQiuChaXunKongZhi类中。该过程处理过程:
a. 停止组件更新服务,销毁MUAB
this.gengXinKongZhi.StopUpdater();
b.销毁组件更新线程。

开发总结
基于Microsoft Application Blocks开发Smart Client应用过程中,大大降低应用实现的技术风险,也节省了我们的开发周期。总结

起来,我们认为基于Application Blocks的开发具有以下这样一些优点。
1. Application Blocks提供了一种全面,系统而且可行的Smart Client应用开发解决方案。
2. Application Blocks的调用非常简单,甚至MUAB的使用主要是一种配置过程。
3. Application Blocks定义了大量接口,为实现可能的扩展提供了很大的空间。
4. Application Blocks是以开源方式提供,这种方式使我们收益匪浅。
5. Application Blocks和.net Framework紧密结合。
使用Microsoft Application Blocks开发应用的确是一种愉快的过程。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐