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