WPF 通用開發框架釋出
前言
對於大部分.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主題
- 異常處理
- 資料字典
- 系統設定