.NET 8.0 实战:搭建前后端分离的通用后台管理系统

121 阅读4分钟

前言

本项目的定位是一个开箱即用的中小型管理系统,采用前后端分离架构,拥有清晰且易于理解的项目结构,为大家提供一个入门级但代码优雅、功能齐全的基础框架。目标是简化业务开发流程,使其变得尽可能直观和高效。

项目介绍

定位

适用于中小型管理系统的快速搭建。

架构

前后端分离,使用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技术匠] 社区,与其他热爱技术的同行一起交流心得,共同成长!

优秀是一种习惯,欢迎大家留言学习!