前言
本项目的定位是一个开箱即用的中小型管理系统,采用前后端分离架构,拥有清晰且易于理解的项目结构,为大家提供一个入门级但代码优雅、功能齐全的基础框架。目标是简化业务开发流程,使其变得尽可能直观和高效。
项目介绍
定位
适用于中小型管理系统的快速搭建。
架构
前后端分离,使用JWT认证。
目标
让业务开发变得简单高效,只需关注核心业务逻辑。
项目技术
1、后端
基于.NET 8和Entity Framework Core。
集成常用组件,支持从零开始快速搭建。
提供用户权限管理功能,确保系统安全可靠。
2、前端
基于小诺1.8适配,主技术栈为Vue 2.6.x和Ant-Design-Vue。
支持响应式设计,确保良好的用户体验。
3、目录结构
更详细的结构,请查看文档。
项目框架
1、基本设计思路
依赖于抽象
依赖倒置原则,控制反转(IoC)
切面编程(AOP)
权限、日志、异常等通过过滤器(Filter)或中间件(Middleware)等实现,集中编程
可配置
自动注册
自动注册实体(Entity)、自动注册服务类(Service)等
2、项目结构思维图
具体如下所示
主要分为三层:Interface表现层、Services服务层、Repository仓储层
1、Interface:Host依赖所有层,完成程序配置(如:Program.cs 中DI容器注入服务,中间件管道配置等);Web API 配置路由,提供 API 接口,如果程序以后有迁移、或替换前端的情况,也可以在这里做一层适配器(注:API只是一种表现形式,也可以为MVC)
2、Services:所有的业务都在这一层。从仓储中读取数据模型(Models),进行业务操作,返回DTO(Data transfer objects)给表现层。
3、Repository:数据库访问。
4、通用的模块:Model、Common、Framework
5、Models:包含所有数据模型,如 Entity(对象数据库的数据表)、CacheItem缓存对象、EventModel事件模型等。
6、Common:集成常用组件,根据项目需要做相应配置;提供基础服务,如CurrentUser访问当前用户信息;提供静态帮助类,所有无状态的函数都归入此类,如GuidHelper.Next() 产生连续 Guid。
7、Framework:框架,比如引用ABP或Furion等框架,甚至是自己项目一些通用的能力,可以到处用的。
项目手册
项目配有详细的使用手册,帮助大家快速熟悉和了解项目,具体如下图所示:
项目能力
1、认证:集成Cookies、JWT;默认启用 JWT
2、授权:基于策略(Policy)的授权
3、ORM:EF Core 的 Code First 模式
4、依赖注入:默认 DI 容器,实现自动注入
5、缓存:IDistributedCache,默认注入 Memory Cache,可替换 Redis
6、日志:NLog
7、事件总线:默认启用 BackgroupService,基于Channel 实现的单机版发布订阅;可替换为 Redis 的发布订阅(可用于分布式);也可替换为 RabbitMQ 的发布订阅(可用于分布式)
8、定时任务:Quartz
9、数据验证:模型验证(Model validation)
10、对象映射:AutoMapper
项目功能
组织机构(organization)
岗位(position)
用户(user)
权限管理
应用(application)
菜单(menu)
角色(role)
开发管理
数据字典(dictionary、dictionaryItem)
日志管理
操作日志(log operating)
异常日志(log exception)
项目特点
1、简易开发流程
创建实体 >> 业务开发 >> 路由配置。
2、分布式应用展望
未来可期待.NET Aspire的支持,进一步提升系统的扩展性和灵活性。
项目源码
Gitee:gitee.com/lisheng741/…
总结
以上仅展示了通用后台管理系统开源项目的部分功能。更多实用特性和详细信息,请大家访问项目源码。
希望本文能为.NET 开发通用后台管理系统提供有价值的参考。欢迎在评论区留言交流,分享您的宝贵经验和建议。
最后
如果你觉得这篇文章对你有帮助,不妨点个赞支持一下!你的支持是我继续分享知识的动力。如果有任何疑问或需要进一步的帮助,欢迎随时留言。
也可以加入微信公众号 [DotNet技术匠] 社区,与其他热爱技术的同行一起交流心得,共同成长!
优秀是一种习惯,欢迎大家留言学习!