前言
對於大部分.NET後端開發者來說,都比較熟悉目前流行的ABP框架,基於開源的ABP框架,可以自己進行二次開發,無需重新開發一些基礎功能,例如:使用者角色管理、權限、組織、多租戶等等。
但是對於ABP框架來說,提供給.NET開發者的可選項非常少,目前也僅僅是提供了基於Web的解決方案,對於桌面端以及行動裝置上的解決方案,可以說是「敷衍了事」。哪怕是商業版的ABP,提供桌面端和行動端的解決方案仍然只是一個簡陋的架子,對於有這方面需求的開發者,它們只能選擇不同的解決方案。
目前大多數.NET開發者開發行動端專案多數是採用一些流行的Web解決方案,例如:Uniapp、Electron、Flutter等等。由於這類的產品本身與C#就無法相容,例如共享現有的類別庫、實體、服務等。這也無法體現如今.NET全部一把梭的理念。
開發歷程
考慮到目前存在許多客戶端領域開發者,包括Xamarin.Forms開發者,所以從2021年底開始,我就計劃著開始開發基於ABP框架的WPF實現以及Xamarin.Forms實現。
這樣,透過利用現有技術,實現了全平台開發的理念,其中WPF與Xamarin.Forms專案,實現了與後端專案共享90%以上的類別庫程式碼,包含:模型類別、常數、介面、服務等。
截至目前為止,Xamarin.Forms與WPF還原了ABP框架90%以上的業務功能,包含所有的UI重新設計、業務功能實現、完整的MVVM設計。
關於Xamarin.Forms框架的實現,參考之前的文章:Xamarin.Forms 5.0 專案實戰
WPF ABP 框架介紹
本次的WPF ABP框架,並非是透過ABP的技術手段實現了WPF專案的還原,而是基於ABP框架提供的業務功能進行了完整還原,在WPF專案當中,移除了ABP提供的啟動配置、模組系統、依賴注入及各類的反射載入、自動實體映射模等功能。
該專案則基於大部分WPF開發者熟悉的Prism MVVM框架進行重新開發,UI則使用Syncfusion WPF版本。
該套框架包含以下功能:
- 使用者與角色管理
- 組織機構
- 權限管理
- 多租戶
- 本地化多語言
- 身份認證及授權
- 稽核日誌記錄
- UI主題
- 例外處理
- 資料字典
- 系統設定
效果預覽
- 登入頁
- 包含切換租戶、語言切換、修改密碼、郵箱啟用

- 首頁
包含系統選單、主題切換(深色/淺色主題)、首頁資料統計面板

- 組織機構
維護組織資訊,新增不同的角色和使用者

- 角色管理
維護角色資訊,設定角色權限,根據權限篩選不同的角色


- 使用者管理
管理使用者資訊,修改使用者權限,鎖定/解鎖/刪除使用者

- 稽核日誌
系統的請求日誌、錯誤日誌、例外資料、變更日誌資訊記錄


- 動態屬性
設定動態資料,下拉選單、選擇性、多選項等。

- 多租戶
維護租戶資訊


- 版本列表
建立不同的版本,設定收費標準、到期規則等


- 語言列表
維護多語言的資料,修改/設定/維護相關資訊



- 設定
包含系統的核心功能設定,包含租戶、使用者、系統安全、郵箱、發票、其他設定



- 演示UI元件
包含了一些常用的控制項演示

- 多主題切換





如何取得原始碼?
參與了上次的Xamarin.Forms公益活動的同學,可以單獨與本人取得聯繫,可以免費獲取WPF版本完整的專案原始碼,針對Xamarin.Forms以及WPF的ABP框架,會在後續持續進行優化,且獲得免費的技術相關諮詢服務。關於上次的Xamarin.Forms公益活動產生的所有收益,會在近期的捐贈活動進行公示。
針對未參與上次公益活動以及想要獲取原始碼或者進行商業性質的二次開發人員,WPF版本的ABP框架完整原始碼費用:499元,可以單獨與作者(QQ:779149549)取得聯繫獲取。
本次WPF框架如收益超過3W的部分,將同樣以公益活動的形式進行捐贈,關於未來的MAUI框架版本,會在接下來進行移植工作。
影片教學說明
WPF版本的專案持續優化的過程中,同樣會陸續製作相關教學發布在影片平台中,大家可以持續關注。