1. 程式人生 > >構建用於C#應用程序的應用商店(一)

構建用於C#應用程序的應用商店(一)

開發工具 曾經 我只 info 代碼 bsp 環境 管理員 winform

我在就職的公司開發工具型軟件,桌面版的,我們公司有各種工具軟件的需求。現在我已經記不清我生產了多少了。我相信再過一段時間,也許幾個月,也許一年後,我也會記不住之前開發過什麽,或許有一定的類別的印象,但是具體是什麽,運行的樣子就會像現在記不起以前開發的軟件一樣,都記不清了。

這些工具沒有完整的統計功能,也或許只有單機的統計,但他們核心功能大多是需要聯網的。

我無法得知工具用戶的使用情況,無法向上級出具有關使用情況的報告,我只知道我做個這個東西,有人曾經用過,或者曾經提過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#應用程序的應用商店(一)