WPF 通用权限开发框架 (ABP)

前言

对于大部分.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主题

  • 异常处理

  • 数据字典

  • 系统设置

效果预览

  • 登录页
    包含切换租户、语言切换、修改密码、邮箱激活
    b388340962caf674a600825aea97c61e.png

  • 首页
    包含系统菜单、主题切换(深色/浅色主题)、首页数据统计面板
    a31e57da3ed3fc10371d45ce13b1a581.png

  • 组织机构
    维护组织信息, 添加不同的角色和用户
    e1924c37a02d4a001e3da7c7e2113b4d.png

  • 角色管理
    维护角色信息, 设定角色权限,根据权限筛选不同的角色
    30ad2405142a43a1c3af5891ffa7ad44.png
    3e691f4b73fa584eac8ac18d6317b0f2.png

  • 用户管理
    管理用户信息, 修改用户权限, 锁定/解锁/删除用户
    35bfc1345f03608465cd6597da43571d.png

  • 审计日志
    系统的请问日志、错误日志、异常数据、更改日志信息记录
    b35cc6eea7df590407c55235f35e16f2.png
    9e09e4d461035a0c07d053c403a3528c.png

  • 动态属性
    设置动态数据, 下拉列表、选择性、多选项等。
    f2444111ec313bcdf44565bdb84059fa.png

  • 多租户
    维护租户信息
    71603b7c29a36e42982ebc539a4c0df5.png
    0c620e944e142825f719a5e1588e2bf6.png

  • 版本列表
    创建不同的版本,设置收费标准, 到期规则等
    dbba8fb80dc75dc7875fdaf52950849f.png
    fafe770042440fb34879574aef71a43a.png

  • 语言列表
    维护多语言的数据, 修改/设定/维护相关信息
    f73bf712e039a801574fac56d9e6ff3d.png
    c6770878c9d18514ccba20de0b33c539.png
    f56cb6a9d0d9764175cf7511bdd7a5fb.png

  • 设置
    包含系统的核心功能的设置, 包含租户、用户、系统安全、邮箱、发票、其它设置
    e52e4ceb66596dd46d1774d1da930e21.png
    7f251214406516df36ad07ba5eea4f81.png
    f182abec65a49f2f0de06eca08d64d27.png

  • 演示UI组件
    包含了一些常用的控件演示
    6c6407b373eb4673549c8dd3a05a6ba0.png

如何获取源代码?

参与了上次的Xamarin.Forms公益活动的同学, 可以单独与本人取得联系, 可以免费获取 WPF版本完整的项目源代码, 针对Xamarin.Forms以及WPF的ABP框架, 会在后续持续进行优化, 且获得免费的技术相关咨询服务。关于上次的Xamarin.Forms公益活动产生的所有收益, 会在近期的捐赠活动进行公示。

针对未参与上次公益活动以及想要获取源代码或者进行商业性质的二次开发人员, WPF版本的ABP框架完整源代码费用:499元,可以单独与作者(QQ:779149549)取得联系获取。

本次WPF框架如收益超过3W的部分, 将同样以公益活动的形式进行捐赠, 关于未来的MAUI框架版本, 会在接下来进行移植工作。

视频教程说明

WPF版本的项目持续优化的过程中, 同样会陆续制作相关教程发布在视频平台中, 大家可以持续关注。

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: WPF Prism是一个用于开发灵活、可扩展和可测试的WPF应用程序的框架。在WPF Prism中,权限框架起着重要的作用,用于控制用户在应用程序中的访问权限权限框架的目的是确保用户只能访问他们被授权的功能和数据。在WPF Prism中,权限框架通过将权限信息与模块和视图进行关联来实现这一目标。权限信息可以定义为角色、用户、权限等。 在WPF Prism中,可以使用属性和方法来定义权限信息。通过为模块和视图添加属性,可以指定这些模块和视图所需的权限。然后,可以使用权限框架来检查当前用户是否具有执行这些模块和视图的权限。如果用户没有所需的权限,可以采取相应的行动,例如禁用按钮、隐藏视图等。 WPF Prism的权限框架还允许对用户进行身份验证,以确保只有经过身份验证的用户才能登录和使用应用程序。身份验证是通过使用用户名和密码等凭据进行的,以验证用户的身份。一旦用户通过身份验证,权限框架可以根据用户的角色和权限确定其可访问的功能和数据。 另外,WPF Prism的权限框架还支持动态权限管理。这意味着可以根据特定条件或用户角色的变化来动态地更新和调整用户的权限。例如,当用户升级到更高级别的用户角色时,可以动态地添加或删除其相关的权限。 总而言之,WPF Prism的权限框架为开发人员提供了一种灵活且可扩展的方式来管理用户的访问权限。通过使用权限框架,可以确保只有经过授权的用户才能访问所需的功能和数据,提高应用程序的安全性和可用性。 ### 回答2: WPF Prism 是一个用于开发模块化、可扩展的 WPF 应用程序的框架。它提供了一种在应用程序中实现权限管理的方法。 在 WPF Prism 中,权限框架是通过使用模块化的方式实现的。每个模块都可以定义自己的权限,然后在应用程序中根据用户的角色或权限来动态加载和展示模块。 实现权限框架的方法可以有很多种,以下是一种常用的做法: 1. 在应用程序启动时,加载用户信息并确定用户的角色或权限。 2. 在每个模块的初始化过程中,根据用户的角色或权限来判断是否需要加载该模块。 3. 在加载模块时,可以使用 Prism 提供的导航服务来控制模块的访问权限。通过配置导航菜单和页面权限,实现页面的动态加载和展示。 4. 可以使用身份验证服务来验证用户的身份和权限。可以自定义身份验证服务,根据具体的业务规则来判断用户是否有权限进行某个操作。 5. 在界面上可以通过使用可见性绑定和命令绑定来控制用户对不同控件或操作的权限。根据用户的角色或权限来控制控件的可见性和是否启用某个操作。 总之,使用 WPF Prism 框架可以很轻松地实现一个灵活的权限框架。开发人员可以定义各个模块的权限,根据用户的角色或权限来动态加载和展示模块,同时可以使用身份验证服务和可见性绑定来控制用户访问界面和操作的权限。 ### 回答3: WPF Prism是一种用于构建模块化、可扩展、可重用的WPF应用程序的框架。在WPF Prism中,可以使用权限框架来实现对应用程序中各个模块或页面的访问权限控制。 权限框架主要涉及两个方面的功能:访问控制和权限管理。 在访问控制方面,权限框架可以定义不同的用户类型或角色,并为每个角色分配不同的权限级别。通过在应用程序中的模块或页面上设置特定的权限要求,可以限制只有具有相应权限的用户才能访问或执行特定的功能。这样可以保证敏感信息只对特定用户开放,并提供更好的安全性。 在权限管理方面,权限框架提供了一种机制来管理和维护用户的权限设置。管理员可以使用权限管理界面对不同用户的权限进行配置,并可以根据实际需要进行权限的增加、删除、修改等操作。这样可以方便地进行权限的维护和管理,同时也能够及时响应用户权限的变更需求。 此外,权限框架还可以提供权限验证和异常处理等功能,以确保在用户尝试访问没有权限的功能时能够给予相应的提示或进行适当的处理。 总的来说,WPF Prism的权限框架为应用程序提供了一种有效的权限控制机制,可以帮助开发人员实现精细化的权限管理和访问控制,提高应用程序的安全性和稳定性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值