1、框架内各项目及目录的介绍和总设计思路——SnailAspNetCoreFramework快速开发框架
项目目录介绍
--ApplicationCore // 核心抽象层,采用clear architecture模式,不依赖于其它层,其它三个项目都依赖此类库,负责接口、常量、枚举、dto、实体等公共定义
----Const // 常量定义,如配置常量,事件名常量
----Dtos // 所有的dto
----Entities // 所有实体
----Enums // 枚举
----IServices // Service层的抽象定义
----Utilities // 帮助类
--Infrastructure // 基础设施层,为上层(如服务层及应用层)提供数据服务。
----Data/config // 数据库entityframework fluent api配置
----EFValueConverter // entityframework的数据库类型和clr类型的转换,如枚举转换
----Migrations //为entityframework code first的migrate生成目录
--Service // 服务层,用于实现ApplicationCore里的服务接口,为应用的逻辑实现的主层
----Cache // 缓存实现,后面会移除并抽离到Snail项目
----Interceptor // 默认实现的拦截器
----BaseService.cs // 各service的基类,包含了各service的常用方法,如CRUD
----InitDatabaseService.cs // 负责数据库的数据初始化
----InterceptorService.cs // 拦截器基类
--Web // 负责接口参数的输入及输出的所有相关处理(如参数校验,输出格式预定等)
----AutoFacModule // autofac的注入配置
----AutoMapperProfiles // automapper的配置
----ClientApp // 前端项目
------build // 前端编译生成的输出目录
------mock // 前端mock
------src // 前端核心代码
----CodeGenerater // 代码生成的t4模块和相关逻辑
----ConfigureServicesExtenssions // serviceProvider的注入扩展,以避免写在startup文件里
----Controllers // 控制器
----docs // 文档集
----Dto // 只会在web层里用到的dto类
----Filter // 过滤器
----Hubs // signalr
----Permission // 权限的默认实现
----staticFile // 用于存储上传的文件