看了胡勇胸的“(干貨).NET開發豐富的公共類庫助你事半功倍(供下載免費使用)”提到:作為開發人員(苦逼)經常都在為一些常用的操作Baidu,Google,既耗時,又浪費青春,更沒時間談戀愛,苦逼就是這么來的。 挺有感觸的,苦逼程序員浪費太多的生命在不必要的事情上了。 另外俺覺得胡胸做的不是很Man,既然拿出來了還不提供源代碼,不提供源代碼也就算了,居然還加密,我就想不明白總共就三核桃兩棗的這樣做累不累呢。看看人家java(當然.net最近開源也做的不錯) 啥都開源。雖然開源代碼十個有九個是不會去看的,但是有個代碼在那,用着總放心點,不是要節約大家生命嗎,試想你的程序如果出了問題或服務器受到入侵,這些不開源並且不是正規公司提供的代碼首先會遭到懷疑,況且還加密的,那用着更是鬧心加糾心了,有點行業經驗的苦B程序員估計都不會去用,這樣不是有背初衷嗎?況且有Discuz,HiShop等一大堆更靠譜的未加密的dll可用,別人還會用你的嗎?
好了嘮叨結束,下面是俺用到的一個升級更新程序,主要是用來給WinCE的PDA程序升級用的,不過在局域網環境下Winform等用用也行,雖然沒到達三核桃兩棗的級別,但是俺是賣豆腐的來點清談的也好啊^_^!
模塊介紹:
服務端:
使用WebService在IIS托管,在站點下建個SyncDir/Files目錄(可配置),這個目錄下的文件包括目錄都會被鏡像的傳送給客戶端.
提供一個Bill.xml文件,在這個文件中可以配置排除一些文件或目錄
提供AppSyncCfg.txt配置文件,允許設置版本號等信息,客戶判斷服務端版本號高於本地時進行整個下載(注意:不是部分更新)
提供一個Md5.aspx可以對配置中指定文件的擴展名生成簽名保存在md5.xml文件中方便日后比對(有段時間服務器上的病毒老破壞俺的.exe,跟.dll導致下載后打不開)
客戶端:
針對windows客戶端文件按字節讀出使用bytes[]傳輸,針對winCe客戶端文件讀出后進行Base64傳給客戶端,因為bytes[]方式在wince上一直沒整成功!
針對WinCe的base64格式,在Md5.aspx頁面中可以預先將對應的文件(.exe,.dll等可配置)生成"文件名+.base64sting"的文件,客戶端請求時,直接將這個文件發送給客戶端。
客戶端提供一個AppSynCfg.xml文件允許設置版本號,下載完后啟動文件,跟更新服務url等。
截圖:
1.)運行效果
2.)AppSyncCfg.txt文件
3.)配置目錄
3.)Bill.xml設置排除目錄
4.)MD5.xml
5.)md5.aspx頁面
6.)客戶端配置
下載:
猛點這里
說明:
服務端跟其他項目混在一起,俺把需要的文件抽出來的,使用時自己整理編譯下,建議使用WebApplication方式不要用網站方式,
客戶端有wince跟win的兩個