# Future **Repository Path**: yangkai1992/Future ## Basic Information - **Project Name**: Future - **Description**: 一个简易的asp.netcore后台管理系统基础模板,前后端分离,前端vue3,后端.net6。一个简单可用可持续集成迭代的架构。 - **Primary Language**: C# - **License**: MIT - **Default Branch**: develop - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2022-12-26 - **Last Updated**: 2025-11-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Future #### 介绍 1. 这是一个简洁的模板,业务功能仅包含登录、菜单、角色、字典和权限控制。所有系统都必备的功能。没有添加过多的字段。无论是用户、角色、菜单还是字典都只有运行必要的字段。有其他需求的自行添加。 2. 没有把全世界都集成进来,仅有Autofac、jwt和SqlSugar。像其他Quartz.net、hangfire、Apollo、mq之类的有需要自己加。都是几行代码就搞定的事。现如今的.net也只剩下一些小项目了。不想搞的那重。搞一堆东西进去又没用。项目中找个东西都难的找。最后搞成面向搜索编程。 3. 做这个小东西的初心是打造一个简单可用可持续集成迭代的架构。现在这个系统中的任何组件都是可以替换的。只要保持这种结构,哪怕是你的项目做了很多年之后。你依然可以将Redis、SqlSugar、jwt这些个组件随意更换而不用修改业务代码。什么你说你要换掉C#,恭喜你脱坑了。 #### 软件架构 ![项目依赖关系](https://gitee.com/yangkai1992/Future/raw/develop/Readme/项目依赖关系.png) ![项目结构](https://gitee.com/yangkai1992/Future/raw/develop/Readme/项目结构.png) 1. Future.Web web层主要包括webapi jwt认证 ioc容器主要职责接收请求和返回结果。不做任何业务操作,仅仅进行逻辑本身的校验和格式化数据的操作。仅依赖于IBLL和IService以及model和工具类。 2. Future.IBLL 业务逻辑接口层,全部为接口。接口由BLL层实现。主要职责隔离web和BLL。为web层提供业务逻辑操作接口。仅依赖一些model。 3. Future.BLL 业务逻辑层。实现对应的IBLL接口。依赖IDAL接口。主要职责业务逻辑操作。不做任何http相关的东西,没有任何和DBContext相关的东西。还依赖IService、model和一些工具类。 4. Future.IDAL 数据访接口层,全部为接口且都继承泛型接口IBaseDAL.基类接口包含一些常用的crud的操作。主要职责隔离BLL和DAL。为BLL提供数据访问接口。仅依赖model。 5. Future.DAL 数据访问层。实现对应的IDAL的接口。依赖于SqlSugar(仅在BaseDAL中)。主要职责操作数据库。依赖model和一些工具类。 6. Future.Model 模型层。各种model。依赖一些比较器和Attribute。 7. Future.Common 公共工具类、model、enum、Attribute等。 8. Future.IService 服务接口层。全部为接口。接口由Service层实现。主要职责隔离web、BLL和Service。依赖一些model。 9. Future.Service 服务层。实现对应的IService接口。这里的服务指那些可以完全独立的功能。本身有一些操作但又是完全和业务无关的。比如对短信、邮件发送方法的封装,Cache的实现方式,文件的读写操作,发送http的封装。业务系统是依赖IService。而Service的实现是可以任意替换的。比如Cache是使用内存还是Redis。文件是本地还是文件服务器。你开心就好。反正业务系统代码是不是修改的。 #### 安装教程 1. 用项目中sql创建数据库,初始化一些基础数据。 2. 分别编译、运行vue和aspcore就行了。 #### 使用说明 1. BLL层、DAL层和Service层没有被任何其他层引入,因此这三层修改了编译输出目录。编译时会输出到web的bin目录下。不然运行时会缺少DLL文件。有粗暴的解决方式。web层直接引用这三层。如果架构理解正确使用规范是没有问题的。如果不懂的人直接使用这三层里面的东西就破坏了系统的架构了。目前是没有引用的。这三层里面的东西是无法直接使用的。只能通过接口去使用。 2. 发布的时候将前端打包好的文件丢到后端生成的目录。用前端新生成的index.html替换掉后端View文件夹中的index.html文件。 #### 感谢 由于本人不擅长前端,故前端是用别人的代码改的放个传送门感谢一下 [Yi框架]https://gitee.com/ccnetcore/yi