亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 9446 | 回復: 2
打印 上一主題 下一主題

如何解決客戶端的部署與自動升級問題 [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2010-11-15 16:15 |只看該作者 |倒序瀏覽
眾所周知,對于一般的軟件開發(fā),在開始的時候都會有一個技術選型的階段,最大的選型就是首先要確定是選擇Client/Server模式還是Browser/Server模式。綜合而論:兩者各有優(yōu)劣,在很多方面都不能被對方互相取代,如在適用Internet、維護工作量等方面,B/S比C/S要強很多;但在運行速度、數(shù)據(jù)安全、人機交互等方面,B/S就遠不如C/S那么強大。所以綜上所述,凡是C/S的強項,便是B/S的弱項,反之亦然。由于今天討論的是自動更新組件,所以接下來我們就往這方面細講,既然C/S模式在運行速度、數(shù)據(jù)安全、人機交互有這么多的優(yōu)點,尤其是客戶端技術日益發(fā)展的今天,如何解決客戶端的部署與自動升級問題便是一個非常重要的問題。二. 本文提綱

· 1.摘要
· 2.本文提綱
· 3.為什么不使用ClickOnce
· 4.簡要介紹
· 5.項目中如何使用
· 6.具體效果
· 7.維護與下載
· 8.總結
三. 為什么不使用ClickOnce
  在前面的摘要中我們簡單介紹了自動更新功能的重要性,在這一小節(jié)里我們來談一下為什么不使用微軟給我們提供的自動更新組件ClickOnce,大家都知道ClickOnce給我們提供了很多功能:簡單說來,ClickOnce 應用程序就是任何使用 ClickOnce 技術發(fā)布的 Windows 窗體或控制臺應用程序?梢圆捎萌N不同的方法發(fā)布 ClickOnce 應用程序:從網(wǎng)頁發(fā)布、從網(wǎng)絡文件共享發(fā)布或是從媒體(如 CD-ROM)發(fā)布。ClickOnce 應用程序既可以安裝在最終用戶的計算機上并在本地運行(即使當計算機脫機時也可以運行),也可以僅以聯(lián)機模式運行,而不在最終用戶的計算機上永久安裝任何內容。ClickOnce 應用程序可以自行更新;這些應用程序可以在較新版本變?yōu)榭捎脮r檢查較新版本,并自動替換所有更新的文件。開發(fā)人員可以指定更新行為;網(wǎng)絡管理員也可以控制更新策略,如將更新標記為強制性的。最終用戶或管理員還可以對更新進行回滾,使應用程序恢復到早期的版本。
  從上面大家可以看出ClickOnce 無疑是微軟對Client/Server模式部署的最佳解決方案,但正是因為它的功能特別強大而且又要使用相當簡單,所以在產(chǎn)品的封裝上就特別嚴實,基本上就暴露了一些簡單的操作接口,這樣就無形把一些定制化的操作拒之于門外,比如:

1,用戶不能自己指定安裝路徑。

2,對自動更新流程不能做定制化的操作。

3,對自動更新的UI不能定制化的設計。


正因為這幾個原因,所以很多企業(yè)都會做一些定制化的組件來實現(xiàn)自動更新的功能,基于此,我們這里也實現(xiàn)了一個非常簡單的自動更新組件.四. 簡要介紹
其實自動更新的原理很簡單,分析起來無非就是簡單的幾步操作,當然實現(xiàn)方式也是大同小異,這里我們就選一種較簡單的方式:

1.啟動主程序,主程序里面調用升級程序,升級程序連接到IIS或者FTP。

2.升級程序獲取服務器端XML配置文件中新版本程序的更新日期或版本號或文件大小。

3.升級程序獲取原有客戶端應用程序的最近一次更新日期或版本號或文件大小,然后兩者進行比較;如果新版本日期>原有程序的最新日期,則提示用戶是否升級;或如果新版本版本號>原有程序的版本號,則提示用戶是否升級;再或如果新版本文件大小>原有程序的文件大小,則提示用戶是否升級。本文主要采用一般的做法,就是通過版本號來進行對比。

4.如果用戶選擇升級,則獲取下載文件列表;

5.在本地建立與遠程IIS或者FTP相應的臨時目錄,然后下載到這個臨時目錄文件下;

6.刪除舊的主程序,拷貝臨時文件夾中的文件到相應的位置;

8.結束升級流程并重新啟動主程序。   


根據(jù)前面的流程,我們可以簡單設計如下的項目:

                                                    圖1
具體類介紹:

IAutoUpdater.cs         提供外部調用的接口

AutoUpdater.cs          該組件的主操作類

Autoupdater.config      本地配置文件

DownloadConfirm.cs    提示是否有更新頁面

DownloadProgress.cs    下載進度頁面

CommonUnitity.cs     一些常用功能

Config.cs         當更新完畢之后需要更新Config,所以這里需要一個提供序列化的Config類

ConstFile.cs      一些常量文件

DownloadFileInfo.cs     需要下載的文件實體類

LocalFile.cs     本地文件實體類

RemoteFile.cs     遠程文件實體類

UpdateFileList.cs     本地的實體類集合


代碼非常簡單,具體可以下載進行查看,所以這里就不做過多闡述。五. 項目中如何使用
第一步:Host更新的版本到服務器
  如果需要讓客戶端獲取最新的版本,首先我們需要開發(fā)人員編譯源代碼并生成文件,然后拷貝到FTP或者IIS目錄下,運行一個自動生成XML文件的程序,把所有的文件都自動生成到一個XML文件,詳細見下圖:                                 圖2




第二步:配置本地的Config
  經(jīng)過第一步的流程,這一步要做的就是配置本地的Config用于監(jiān)測并下載遠程IIS或者FTP下需要更新的文件,具體如下圖所示:

                                                    圖3
第三步:修改主程序
  首先把AutoUpdater這個DLL引入我們的主項目,然后在主項目中添加如下代碼,當然你可以根據(jù)自己的需要進行書寫,這個DLL提供了兩個外部接口,一個接口用于判斷是否有更新及下載,另一個接口則是用于更新出錯時進行回滾操作,具體代碼如下:      #region check and download new version program      bool bHasError = false;      IAutoUpdater autoUpdater = new AutoUpdater();      try      {          autoUpdater.Update();      }      catch (WebException exp)      {          MessageBox.Show("Can not find the specified resource");          bHasError = true;      }      catch (XmlException exp)      {          bHasError = true;          MessageBox.Show("Download the upgrade file error");      }      catch (NotSupportedException exp)      {          bHasError = true;          MessageBox.Show("Upgrade address configuration error");      }      catch (ArgumentException exp)      {          bHasError = true;          MessageBox.Show("Download the upgrade file error");      }      catch (Exception exp)      {          bHasError = true;          MessageBox.Show("An error occurred during the upgrade process");      }      finally      {          if (bHasError == true)          {              try              {                  autoUpdater.RollBack();              }              catch (Exception)              {                 //Log the message to your file or database              }          }      }      #endregion
使用就是這么簡單,更詳細的操作,大家可以下載源碼,也正因為它的簡單,所以大家可以對其修改以滿足具體項目的需求。六. 具體效果
當我們運行主程序(WinForm或者WPF),如果服務器上有最新的版本,就會彈出如下頁面進行提示并讓用戶選擇是否更新。

                                                    圖4
當用戶不需要更新時,可以選擇Skip按鈕跳過并繼續(xù)主程序流程,反之則進入如下頁面。

                                                    圖5
在下載的過程中,用戶可以選擇Cancel停止下載并重新回到主流程。七. 維護與下載
該組件已經(jīng)托管到CodePlex,所以大家可以到上面下載其源代碼,具體地址:http://autoupdater.codeplex.com/

                                                    圖6八. 總結
  我們這篇文章簡單的講解了一個簡單的自動更新組件,由于它比較簡單而且功能單一,所以沒有花費大量的篇幅進行論述,感興趣的讀者可以下載其源碼。后面我會把自己開發(fā)的一套MVVM框架也托管上去,由于目前對Silverlight的支持還不太好,所以正在持續(xù)做相關的改進,其中借鑒了一些其他優(yōu)秀框架的思想并且融入了一些實際應用場景,所以到時也希望大家能夠多多指教!

論壇徽章:
0
2 [報告]
發(fā)表于 2012-01-13 17:32 |只看該作者
目前為止,最好的自動升級部署工具,C/S軟件的維護升級不再是問題。


下載地址http://www.kt23.cn

論壇徽章:
0
3 [報告]
發(fā)表于 2012-01-13 17:34 |只看該作者
C/S 結構的特點是能充分發(fā)揮客戶端的處理能力,很多工作可以由客戶端處理后再提交給服務器,對應的優(yōu)點就是客戶端響應速度快模式客戶端以其強大的功能,豐富的表現(xiàn)力受到相當大部分用戶的青睞,但是客戶端布署,維護升級的成本卻是非常的高的。

   C/S客戶端需要安裝專用的客戶端軟件及運行環(huán)境。首先涉及到安裝的工作量,其次任何一臺電腦出問題,如病毒、硬件損壞,都需要進行安裝或維護。特別是有很多分部或專賣店的情況,不是工作量的問題,而是路程的問題。還有,系統(tǒng)軟件升級時,每一臺客戶機需要重新安裝,其維護和升級成本非常高。
    自動升級布署工具就是為了解決C/S在維護升級方面的問題而存在的,軟件可以讓你在一分鐘內建立升級部署應用,完全控制整個升級部署過程,全功能的、快速、易于使用,設立發(fā)布你的客戶端應用。
    本軟件以最簡單的模式提供給客戶端在線布署和自動升級功能,徹底解決升級部署方面的后顧之憂。
    軟件中提供的的接口以最簡單的方式來對升級過程提供完全控制。
   內置Pascal和Basic兩種強大腳本功能,內置的類庫可以滿足腳本程序擴展的大部分需要。

軟件特性:        多升級工程支持
本軟件可以輕松的建立多個升級工程,如果你有多個客戶端應用需要升級,你只需要為每個應用軟件,新建一項工程就可以了,建立之后,你只需要設置服務端的一個配置參數(shù)就可以控制客戶端進行普通升級和強制升級了。
        簡單明了的參數(shù)配置
軟件從簡單易用方面考慮,簡化了軟件的操作流程,你只需要花很短時間就可完全掌握本軟件的使用。
        強大的單個文件的設置
為了滿足更復雜需要,本軟件提供對每個文件的詳細設置,來設置各個文件是否需要更新,是否需要注冊為COM組件,來幫助你完全控制整個升級過程。
        強大的腳本擴展
軟件內置Pascal和Basic兩種強大腳本,如果你覺得軟件的配置功能有限可以利用腳本無限擴展客戶端自動更新程序的功能,腳本有內置類庫,也可以直接調用系統(tǒng)API,幾乎可以實現(xiàn)你所想要實現(xiàn)的任何功能。
        無需專門服務端支持
本軟件對服務端基本無要求,只需要http服務即可,你有一個服務器或者僅僅一個網(wǎng)站就足夠。
        雙重的部署模式
普通模式和壓縮模式,壓縮模式應用于你沒有一個服務器,并且你的網(wǎng)站所在服務器有下載限制時,軟件可以將升級工程壓縮為標準ZIP包。
        多個網(wǎng)絡升級路徑有備無患
軟件可以設置兩個升級路徑,當網(wǎng)絡升級路徑1獲取信息失敗時會自動從網(wǎng)絡升級路徑2獲取,只要有一個路徑有效都可以自動升級。
        安全穩(wěn)定的數(shù)據(jù)升級過程
軟件以CRC-32檢驗以100%的可靠性對您的客戶端應用進行檢查,如果升級途中出現(xiàn)任何錯誤都會暫停升級,以保證您的軟件客戶端的完整性,升級過程有詳細的日志,可以很容易追查到錯誤的原因。
        一鍵構建升級部署
配置完成后你只需要點擊一個按鈕就可以完成升級工程的部署。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP