ERP SYSTEM 开发指南(三)支持程序自动升级
2013-12-12 13:10
585 查看
RemObjects 是超强大的系列控件,这里使用 Hydra 的自动更新控件,可方便有效地使程序实现自动升级
装好 RemObjects Data Abstract (已经包括 RemObjects SDK 和 Data Abstract) , Hydra
这里演示了整个开发过程,服务端及客户端可直接使用,
其中客户端检测是否有新版本的代码可加入ERP SYSTEM或现有系统,当有新版本时调用客户端进行升级
-
先说下默认情况下Hydra的升级过程
客户端进行版本检测时,默认都返回有可用升级,
需要升级哪些文件是通过判断客户端与服务端升级目录之间的差异作为升级依据
-服务端
新建一个基于RO的工程
设置好保存路径及工程名,这里的 Also create a matching client application and a project group
是在创建服务端工程时同时也创建客户端并作为一个工程组,这里将演示在ERP SYSTEM框架下的实现,所以就不自动创建客户端了
新建好服务端工程,点击Delphi菜单RemObjects SDK-> Edit Service Library
创建一个自动升级服务,先是引用Hydra的自动升级,然后新建一个服务继承,添加我们所以的方式进行升级
然后Build一下工程,会自动生成相关的接口及实现文件
打开 AutoUpdateServer_Impl模块,设置FileSearchInfo属性,将用于存放升级文件的路径
$APPLICATION 是当前程序目录,所以在服务端程序所在目录下,要新建子目录 AutoUpdate\ApplicationDir
至此,服务端可以算是完成了,但其默认行为并不是我们所想要的
1.加入版本判断,在AutoUpdateServer_Impl双击OnVerifyUpdateStatus事件,添加如下代码
2.指定需要更新的文件,在AutoUpdateServer_Impl双击OnGetUpdatesInfo事件,添加如下代码
这里使用其默认方式,先是获取升级目录的全部文件,但是不对比客户端目录文件
-客户端
客户端同样很简单,如下图摆好界面
重点说下THYAutoUpdateClient三个函数
VerifyUpdateStatus,进行版本判断
DownloadUpdates,下载升级文件,文件名会加上前缀(按THYAutoUpdateClient的属性TemporaryFileName)
FinalizeUpdate,完成升级,删除旧文件并将DownloadUpdates下载的文件恢复原名
自动升级完整代码(服务端+客户端)下载:http://share.weiyun.com/4df5273d84f20edeacbf74da45176f3b
另外,框架将在近期实现二层到三层的可选择切换,采用RO作为三层基础,这里先提供RO下载及最新的框架代码
如果先前有下载过我做好的虚拟机系统的话,只需要安装DA,Hydra和替换最新框架代码
RemObjects Data Abstract : http://share.weiyun.com/0d5f246b89c916b32e2d52f21caadaca
Hydra : http://share.weiyun.com/385ac4cf60fd24f432306d4f303339c9
ERP SYSTEM SOURCE CODE : http://share.weiyun.com/1751fd2575e7bc7fbd57e82a3aaabccf
(加入了自动升级和一套尚未转换好的POS源码)
装好 RemObjects Data Abstract (已经包括 RemObjects SDK 和 Data Abstract) , Hydra
这里演示了整个开发过程,服务端及客户端可直接使用,
其中客户端检测是否有新版本的代码可加入ERP SYSTEM或现有系统,当有新版本时调用客户端进行升级
-
先说下默认情况下Hydra的升级过程
客户端进行版本检测时,默认都返回有可用升级,
需要升级哪些文件是通过判断客户端与服务端升级目录之间的差异作为升级依据
-服务端
新建一个基于RO的工程
设置好保存路径及工程名,这里的 Also create a matching client application and a project group
是在创建服务端工程时同时也创建客户端并作为一个工程组,这里将演示在ERP SYSTEM框架下的实现,所以就不自动创建客户端了
新建好服务端工程,点击Delphi菜单RemObjects SDK-> Edit Service Library
创建一个自动升级服务,先是引用Hydra的自动升级,然后新建一个服务继承,添加我们所以的方式进行升级
然后Build一下工程,会自动生成相关的接口及实现文件
打开 AutoUpdateServer_Impl模块,设置FileSearchInfo属性,将用于存放升级文件的路径
$APPLICATION 是当前程序目录,所以在服务端程序所在目录下,要新建子目录 AutoUpdate\ApplicationDir
至此,服务端可以算是完成了,但其默认行为并不是我们所想要的
1.加入版本判断,在AutoUpdateServer_Impl双击OnVerifyUpdateStatus事件,添加如下代码
procedure TAutoUpdateServer.HYAutoUpdateServiceVerifyUpdateStatus( Sender: THYAutoUpdateService; const LastUpdateID: AnsiString; var UpdateStatus: THYUpdateStatus; var CurrentUpdateID, UserData: AnsiString); begin UpdateStatus:=usNoUpdates; //客户端进行版本判断时会调用到这里,LastUpdateID是客户端提供的版本号,FCurrentVersion是服务端通过某种方式读取到的当前版本,比如INI if FCurrentVersion<>LastUpdateID then begin UpdateStatus:=usNeedsUpdate; //CurrentUpdateID这个参数是值引用,所以相当返回当前版本给客户端 CurrentUpdateID:=FCurrentVersion; end; end;
2.指定需要更新的文件,在AutoUpdateServer_Impl双击OnGetUpdatesInfo事件,添加如下代码
procedure TAutoUpdateServer.HYAutoUpdateServiceGetUpdatesInfo( Sender: THYAutoUpdateService; ClientFileList, UpdatesList: THYFileUpdateInfoArray); var serverfiles: THYFileUpdateInfoArray; fFileUpdateHelper : THYFileUpdateHelper; i: integer; begin serverfiles := THYFileUpdateInfoArray.Create; fFileUpdateHelper := THYFileUpdateHelper.Create; try // Prepares the list of updates for i := 0 to (Self.FileSearchInfo.Count-1) do fFileUpdateHelper.ScanForFiles(Self.FileSearchInfo[i], serverfiles); UpdatesList:=serverfiles; except end; end;
这里使用其默认方式,先是获取升级目录的全部文件,但是不对比客户端目录文件
-客户端
客户端同样很简单,如下图摆好界面
重点说下THYAutoUpdateClient三个函数
VerifyUpdateStatus,进行版本判断
DownloadUpdates,下载升级文件,文件名会加上前缀(按THYAutoUpdateClient的属性TemporaryFileName)
FinalizeUpdate,完成升级,删除旧文件并将DownloadUpdates下载的文件恢复原名
自动升级完整代码(服务端+客户端)下载:http://share.weiyun.com/4df5273d84f20edeacbf74da45176f3b
另外,框架将在近期实现二层到三层的可选择切换,采用RO作为三层基础,这里先提供RO下载及最新的框架代码
如果先前有下载过我做好的虚拟机系统的话,只需要安装DA,Hydra和替换最新框架代码
RemObjects Data Abstract : http://share.weiyun.com/0d5f246b89c916b32e2d52f21caadaca
Hydra : http://share.weiyun.com/385ac4cf60fd24f432306d4f303339c9
ERP SYSTEM SOURCE CODE : http://share.weiyun.com/1751fd2575e7bc7fbd57e82a3aaabccf
(加入了自动升级和一套尚未转换好的POS源码)
相关文章推荐
- ERP SYSTEM 开发指南(三)支持程序自动升级
- ERP SYSTEM 开发指南(二)添加脚本支持
- 咏南中间件支持DELPHI低版本开发的两层程序平稳升级到三层
- Revit开发中升级支持的程序版本造成的不识别引用的问题
- ERP SYSTEM 开发指南(一)简单模块开发
- Delphi程序的自动升级功能的实现(AutoUpdate使用指南)
- 小程序功能升级:支持游戏开发啦!
- SNF开发平台WinForm之八-自动升级程序部署使用说明-SNF快速开发平台3.3-Spring.Net.Framework
- ERP SYSTEM 开发指南(一)
- Delphi程序的自动升级功能的实现(AutoUpdate使用指南)(转)
- ERPSYSTEM开发教程03 DEMO程序开发过程
- 使用类eclipse编辑器开发小程序,支持代码高亮与语法自动提示
- 我们开发的程序接入自动升级组件的操作步骤
- C#编写软件自动升级更新程序
- 编写MFC自动升级程序
- 自动升级程序
- win32界面程序开发,自制一个会自动销毁的提示框
- 基于TCP网络通信的自动升级程序源码分析-客户端连接服务器
- 基于TCP网络通信的自动升级程序源码分析-客户端接收文件