做 Winform 开发,是不是每次新项目都要从头搭建权限系统?
菜单管理、角色分配、用户认证、操作日志,这些基础功能写了一遍又一遍。早都写吐了。
最近挖到一个开源框架,能一下子把这些破事全解决。
WinformGeneralDeveloperFrame,一个开箱即用的 Winform 通用开发框架
普通框架只能给你一个空壳。
这个框架内置了完整的权限架构,菜单、角色、用户、字典、日志、代码生成,这些每个管理系统都要用到的功能,它已经全部实现。
你只需要新增自己的业务 Form,在系统里配置一下,就能快速搭建起一个管理系统。
经常捣鼓桌面应用的开发者,应该懂这个的含金量。
下面看看它有哪些独特功能。
两个版本,适配不同场景。
原生控件版本适合单机应用,使用 Sqlserver 数据库,架构比较简单,特点就是上手快。
还有一个Dev前后端分离版本,更适合企业级应用,使用的数据库是 Mysql,支持 API 访问日志、在线用户管理、数据分页、通用查询等进阶功能。
最常用代码生成功能。
它能根据数据表结构自动生成 Repository、Services、Entity 三层增删改查代码。Dev 版本还支持 Form 和 Controller 代码生成。
以前要手写半天的增删改查,现在几秒钟就能生成框架代码,剩下的时间只需要专注业务逻辑。
举个例子。
要加一个客户管理功能。先在数据库建一张客户表。
CREATE TABLE Customer ( Id INT PRIMARY KEY IDENTITY, Name NVARCHAR(50), Phone NVARCHAR(20), Address NVARCHAR(200))表建好了,打开代码生成器,选这张表,点击生成就可以了。
生成的主要代码文件有。
CustomerRepository.cs表示是操作数据库表的代码,负责数据访问层。
CustomerService.cs是处理业务逻辑的代码,负责业务逻辑层。
Customer.cs是实体类,负责定义数据模型。
直接复制到项目里就能用。
还有自动更新功能也很实用。
它用 AutoUpdater.NET实现了自动更新功能,支持客户端自动检测更新。
每次发版不用挨个通知用户下载安装,客户端发现有新版本,会自动下载安装。
权限管理完善,粒度控制精细。
菜单支持多层级嵌套,每个菜单都能自定义图标、自由排序,还能单独设置访问权限,使用起来非常灵活。
用户管理可以直接新增、编辑、禁用账号,能给用户分配对应角色,一键管控访问权限。
菜单权限和按钮权限可以控制的很细。就比如普通员工,只开放查看权限。管理员则拥有完整的增删改查权限,权限划分也特别细。
数据源和代码生成,配置简单。
数据源配好了,代码生成器就能读取表结构,自动生成代码。
代码生成界面简单直观,选择数据源、勾选要生成的表,点击生成即可。生成的代码规范统一,可以直接用。
最后就是消息通知和字典管理功能。
框架提供了消息通知功能,你像审批提醒、系统公告这些重要操作可以直接推送给相关用户。
业务系统重订单状态一般有,待支付、已支付、已发货、已完成,这些状态就很适合在字典里配置维护,后续新增状态只需要在字典里添加,这样加减状态就不用改代码了。
字典内容支持多级分类,方便管理复杂的业务枚举值。
看到这你想装上试试?
项目在 Gitee 上开源,上手其实不难。
先把源码下载下来。
git clone https://gitee.com/wkjerry_admin/WinformGeneralDeveloperFrame.git再用 Visual Studio 打开解决方案,找到数据库备份文件还原一下。连接字符串在配置文件里改,把服务器地址、数据库名、账号密码换成你自己的。
最后按 F5 运行,用默认账号登录就能看到完整的演示系统了。
一些需要注意的地方。
框架使用 SqlSugar 作为 ORM,这是一个轻量级的 ORM,性能不错,语法也简洁。对于习惯了 Dapper 或者 Entity Framework 的开发者,上手 SqlSugar 不会太困难。
另外,Dev 版本依赖 DevExpress 控件库,这个是商业控件,需要单独购买授权。原生控件版本则没有这个问题,使用的是 Winform 自带控件。
适合什么场景?
需要快速搭建管理系统,但不想从零开始。
存量项目需要升级,希望引入成熟的权限架构。
团队规模不大,希望用现成框架降低开发成本。
需要代码生成能力,减少重复劳动。
预算有限,希望用开源方案。
感兴趣的朋友可以抓紧试试。
开源地址:https://gitee.com/wkjerry_admin/WinformGeneralDeveloperFrame最后,欢迎随手点赞、在看、转发,也可以给我一个星标,我们下期见!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!