構建用於C#應用程序的應用商店(一)
我在就職的公司開發工具型軟件,桌面版的,我們公司有各種工具軟件的需求。現在我已經記不清我生產了多少了。我相信再過一段時間,也許幾個月,也許一年後,我也會記不住之前開發過什麽,或許有一定的類別的印象,但是具體是什麽,運行的樣子就會像現在記不起以前開發的軟件一樣,都記不清了。
這些工具沒有完整的統計功能,也或許只有單機的統計,但他們核心功能大多是需要聯網的。
我無法得知工具用戶的使用情況,無法向上級出具有關使用情況的報告,我只知道我做個這個東西,有人曾經用過,或者曾經提過bug。
我相信很多做桌面工具類軟件的朋友都遇到過和我一樣的問題,並且有些工具的生命周期本來就不長,但是年深日久後又再提起,源碼已經不見了,再來一次吧。
於是我想,是否可以構建一個這樣類型的工具軟件托管平臺,也或者叫應用商店來管理我們開發的東西。於是我開始了。
著此文時我已經寫完商店很久了,基本功能完整,但是統計功能還不是很完善。這個商店也和其他工具一樣,隨著時間慢慢沈下。我不想我曾創造的東西都經歷這樣的結局。
所以我把我的構建過程寫下來,我覺得它能夠幫助和我有一樣需求的朋友。
說說開發環境。vs 15+ ,C#
服務端:aspnetcore 1, efcore, mssqlserver
客戶端:winform
初見
客戶端主界面:
服務端界面
數據庫
畢業好多年,出來做開發也許多年了,平時就寫代碼,不怎麽說話,表達能力有所退化,若表述欠佳或語無倫次請理解。
服務端功能有以下這些:
管理員:審核註冊用戶,審核新上App或新上版本,app下架
開發者:app上傳,app歷史版本管理
客戶端vs解決方案
AppEventLib 操作報告api封裝
App.Launcher App啟動器,App就是我上面說的工具類軟件
AppInstaller App安裝器,負責下載和安裝app
AppLib App需要引用的庫,用來獲取自身配置或啟動信息,相當於app開發SDK
AppZip App打包工具,用於在App開發過程編譯時自動打包app和其依賴dll、配置文件等為一個zip包。開發者打包完可以上傳到應用商店。
TinyUtil 我自己封裝的,平時用的一個輔助類庫。
UacHelper 處理windows uac的庫,用來做windows標準提權,比如需要訪問註冊表或者寫關鍵位置就需求彈給用戶做uac確認。
Update 用來更新app的應用
構建用於C#應用程序的應用商店(一)