程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> 【WCF】基於WCF的在線升級,wcf在線升級

【WCF】基於WCF的在線升級,wcf在線升級

編輯:關於.NET

【WCF】基於WCF的在線升級,wcf在線升級


一、前言

      前不久因公司產品需要完成了在線升級功能,因為編程技術不精,不敢冒然采用Socket方法實現在線升級,所以使用比較方便穩妥的WCF方式

       如果考慮並發能力的話還是Socket>WCF>Remoting,所以如果你是Socket專家的話這篇你就不用看了。

 

二、流程

      本篇主要講述一個完整的升級思路,如果你正需要實現升級請結合你公司的情況與自身情況作出調整

       1. 從本地讀取公司的注冊表信息:

        一般公司軟件產品都會在客戶機的Local_Machine下將產品信息寫入,包括:產品名稱,安裝路徑,安裝日期,產品版本等等,以方便日後升級點擊這裡

 

       2. 通過WCF服務的ReadUpdateInformation方法(名字自己定義)讀取更新文件服務器上的信息,並與注冊表上的版本信息進行對比,判斷是否需要升級:

       假如客戶端讀出的產品信息為18.0.0,服務器讀取的某個更新壓縮包的文件名稱為18.0.1,說明要升級了。

       不推薦將客戶機上產品所有的dll與服務器上更新壓縮包裡所有的dll進行對比,太麻煩! 不如直接對比名稱並下載全覆蓋來的方便

 

       3. 將需要升級的信息返回到客戶機的升級界面上,如果用戶選擇升級,則可以通過WCF服務的GetFile方法斷點續傳下載文件點擊這裡

 

       4. 將客戶機下載完的文件進行MD5檢查,並通過WCF服務的ServerFileMD5方法得到更新文件的MD5值並返回進行對比點擊這裡

 

       5. 對比成功後讓用戶選擇是直接更新還是下次開機自動更新:

       其實更新就是個File.Copy的過程,重要的還是你能否完整的正確的下載完更新包,更新程序中最後一部別忘了修改注冊表信息,將新的版本與更新時間寫入!

       開機自動更新的方法在此:點擊這裡

三、其他

      WCF的部署點擊這裡

       用戶升級界面 我使用WPF來實現,MVVM使用的是輕量級的MVVMLight (Dev的MVVM框架太大,我還沒這麼大需求)點擊這裡

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved