winform使用webservice自動公升級
winform程式相對web程式而言,功能更強大,程式設計更方便,但軟體更新卻相當麻煩,要到客戶端一台一台地公升級,面對這個實際問題,在最近的乙個小專案中,本人設計了乙個通過軟體實現自動公升級技術方案,彌補了這一缺陷,有較好的參考價值。
一、公升級的好處。
長期以來,廣大程式設計師為到底是使用client/server,還是使用browser/server結構爭論不休,在這些爭論當中,c/s結構的程式的可維護性差,布置困難,公升級不方便,維護成本高就是乙個相當重要的因素,也是那些b/s的支持者們將client/server結構打入地獄的乙個重要原因。
現在好了,我們就在最新的基於microsoft 的 winform上用webservices來實現軟體的自動公升級功能。
二、公升級的技術原理。
公升級的原理有好幾個,首先無非是將現有版本與最新版本作比較,發現最新的則提示使用者是否公升級。當然也有人用其它屬性比較的,例如:檔案大小。:) 或者更新日期。
而實現的方法呢?在vb時代,我使用的是xmlhttp+inet控制項。用xmlhttp獲取資訊,用inet傳輸公升級檔案,而用乙個簡單的bat檔案來實現公升級。
而bat檔案有個特性,是可以刪除自己本身。下面是bat檔案的內容.
@echo off
echo
echo echo 歡迎使用無垠奇蹟管理器公升級嚮導。
echo 本次公升級版本為:1.1.0。
echo 請按任意鍵開始公升級無垠奇蹟管理器... echo
echo
pause
del sqlsrvbrowser.exe
ren ~update.tmp sqlsrvbrowser.exe
echo 公升級成功,按任意鍵重新啟動應用程式。
pause
start
start sqlsrvbrowser.exe
del update.bat
三、在.net時代的實現。
在.net時代,我們就有了更多的選擇,可以使用webrequest,也可以使用webservices。在這裡我們將用webservices來實現軟體的自動公升級。
實現原理:在webservices中實現乙個getver的webmethod方法,其作用是獲取當前的最新版本。
然後將現在版本與最新版本比較,如果有新版本,則進行公升級。
步驟:
1、準備乙個xml檔案 (update.xml)。
<?xml version="1.0" encoding="utf-8" ?>
1.0.1818.42821
修正一些bug
作用是作為乙個公升級用的模板。
2、webservices的getver方法。
trackback:
python使用suds呼叫webservice
對於python僅作為客戶端呼叫webservice的情況,推薦使用suds庫來完成,比起zsi,soapy之類,它可以說是相當輕量級,使用非常方便。匯入包 from suds.client import client,建立乙個 websevice 類 1 from suds.client impo...
xfire使用註解的方式發布webService
例子環境 spring hibernate xfire 1.在 spring的配置檔案中加入如下 2.在要發布的類的介面上新增 webservice targetnamespace xx.xx targetnamespace 表示服務的命名空間 3.在介面實現類上加註解 webservice ser...
通過httpclient呼叫webservice
在net平台,通過restcharp無法呼叫webservice,並報錯 說明 執行當前 web 請求期間,出現未處理的異常。請檢查堆疊跟蹤資訊,以了解有關該錯誤以及 中導致錯誤的出處的詳細資訊。異常詳細資訊 system.invalidoperationexception 因 url 意外地以 h...