WinForm使用WebService自動公升級

2022-04-12 06:19:16 字數 2470 閱讀 7871

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...