前言
对于大部分.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 版本的项目持续优化的过程中, 同样会陆续制作相关教程发布在视频平台中, 大家可以持续关注。