亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

可復用的自動升級系統(tǒng)實現(xiàn)(一)

系統(tǒng) 2335 0

相對于B/S結(jié)構(gòu)來說,C/S模式的客戶端的部署和升級是一個很大的麻煩。有很多企業(yè)用戶就是因為這個原因而放棄使用C/S。然而當一個應用必須要使用C/S結(jié)構(gòu)才能很好的實現(xiàn)其功能的時候,我們該如何解決客戶端的部署與自動升級問題了?

部署很簡單,只要點擊安裝程序即可,難的在于每當有新版本發(fā)布時,能夠?qū)崿F(xiàn)自動升級。首先,我需要把自動升級的概念擴展一下。自動升級不僅僅是把當前版本的主程序EXE或其使用dll自動升級新的版本,還包括,當新版本的EXE需要使用原先不存在的dll時,自動升級系統(tǒng)也能夠自動下載這些新的dll,再進一步,自動升級系統(tǒng)還能刪除那些不再使用的dll。

我們的目標很簡單,我們希望開發(fā)一個與具體應用無關(guān)的能夠復用的自動升級系統(tǒng),我將它稱為UpdateActionSystem。

一般我們C/S的客戶端有一個主應用程序EXE和一系列輔助的DLL組成,另外還可能包括必要的配置文件和其它資源文件,為了能實現(xiàn)所有這些文件的自動更新,我們引入UpdateActionSystem.exe和一個版本配置文件UpdateConfig.xml放在與主程序EXE相同的目錄中。UpdateConfig.xml中有當前目錄下所有文件的當前版本。那么UpdateActionSystem.exe從何處獲取每個文件最新的版本號了?對,從數(shù)據(jù)庫。UpdateConfig.xml中給出了該數(shù)據(jù)庫的位置信息。先看看UpdateConfig.xml的內(nèi)容。


<?xml version="1.0" encoding="gb2312"?>
<GTPDef xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance ">
<HostInfo>
<DataBaseIP>218.201.34.117</DataBaseIP>
<DataBaseName>haonet</DataBaseName>
<SoftwareType>OASystem</SoftwareType>
<CommonSoftwareTypeName>Common</CommonSoftwareTypeName>
</HostInfo>
<VersionInfo>
<GoldPrinter.dll>2.000</GoldPrinter.dll>
<XSkyControls.dll>1.000</XSkyControls.dll>
<OASystem.exe>0.995</OASystem.exe>
</VersionInfo>
</GTPDef>

可以看到,在這個示例中,我的客戶端系統(tǒng)有一個主程序OASystem.exe ,和兩個dll--GoldPrinter.dll ,XSkyControls.dll,它們的版本號也記錄于此。另外HostInfo部分記錄了UpdateActionSystem.exe應該從何處獲取最新版本號信息,其中的SoftwareType字段和CommonSoftwareTypeName字段在有多個不同的客戶端系統(tǒng)都需要升級時會作為區(qū)別標志。

好,我們知道了可以從數(shù)據(jù)庫中的SoftwareVersion表獲取最新版本信息,我們可以看看這個表的結(jié)構(gòu):
SoftwareName -- 更新文件的名稱。
URL -- 下載該文件的地址。
Version -- 該文件的最新版本號
SoftwareType -- 文件類型(與上面的配置文件中的對應)

所以當UpdateActionSystem.exe從數(shù)據(jù)庫中獲取的版本號必當前版本號要高,那么它就會從URL指示的地方下載新的文件。另外,如果UpdateActionSystem.exe發(fā)現(xiàn)數(shù)據(jù)庫中的表中有一個文件的SoftwareType與配置文件中的值相同,而此文件的信息在配置文件中又不存在,說明這個文件是新加入的,于是UpdateActionSystem.exe就下載這個文件。

可以看出,我們基本把如何實現(xiàn)一個可復用的自動升級系統(tǒng)的思路已經(jīng)清楚了,它是與應用無關(guān)的。
如果我們的一套系統(tǒng)需要引入自動升級,只需一下幾個步驟:
(1)引入UpdateActionSystem.exe和一個版本配置文件UpdateConfig.xml放在與主程序EXE相同的目錄中,并修改UpdateConfig.xml中的內(nèi)容與當前應用一致。
(2)在數(shù)據(jù)庫中增加SoftwareVersion表,并填入相應的文件信息記錄。
(3)將以后新版本的文件放在數(shù)據(jù)庫中URL指示的地方。
(4)在主程序中添加一個對自己的最新版本檢查,如果發(fā)現(xiàn)有新版本,則啟動UpdateActionSystem.exe。

(一般將主程序作為升級的觸發(fā)器,這是以為主程序更新了,其它的dll文件可能沒有更新,但是如果一個dll更新了,則主程序必定發(fā)生變化。當然你也可以直接點擊UpdateActionSystem.exe進行更新。)

看看我的示例運行的圖片。

當有新版本時,界面如下:

點擊藍色鏈接后,即執(zhí)行UpdateActionSystem.exe,界面如下:

升級結(jié)束后,界面如下:

關(guān)于整個UpdateActionSystem.exe系統(tǒng)實現(xiàn)的源代碼將在下期文章給出。


可復用的自動升級系統(tǒng)實現(xiàn)(一)


更多文章、技術(shù)交流、商務合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久久久久久穴 | 国产精久久一区二区三区 | 久久这里只有精品国产 | 久久精品免视着国产成人 | 欧美国产亚洲精品高清不卡 | 农村女人十八毛片a级毛片 农村三级孕妇视频在线 | 高清不卡一区二区三区 | 狠狠久久久久综合网 | 国产精品免费_区二区三区观看 | 色www精品视频在线观看 | 最新仑乱免费视频 | 又粗又大的机巴好爽视频视频 | 欧美成人毛片 | 日本精品视频网站 | 欧美日韩国产最新一区二区 | 国产成人综合日韩精品无 | 欧美成人精品一级高清片 | 日本特黄一级午夜剧场毛片 | 三及毛片 | 亚洲产在线精品第一站不卡 | 操操碰| 欧美大成色www永久网站 | 国产精品久久久尹人香蕉 | 亚洲在线视频播放 | 久久99久久99精品免观看不卡 | 8848hh四虎免费 | 久久色网 | 亚洲成人在线播放视频 | 国产美女a做受大片免费 | 337p色噜噜人体大胆欧美 | 99在线精品免费视频 | 国产黄色自拍视频 | 九九视频在线观看6 | 咪咪色综合 | 性视频一区二区三区免费 | 性做久久久久久久免费看 | 天天综合天天看夜夜添狠狠玩 | 在线毛片免费观看 | 美女被羞羞视频网站在线 | 国产精品亚洲专一区二区三区 | 狠狠色狠狠色 |