前言
對於大部分.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 版本的項目持續優化的過程中, 同樣會陸續製作相關教程發布在視頻平台中, 大家可以持續關注。