同步操作将从 芦荟柚子茶/SimpleApp 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
简单三层,力求精简。
个人2022年7月15日从公司离职以后,并没有急着找下一份工作,而是希望把这两年的工作经历,以及想法做一个沉淀,故而有了这个项目。
实际上,个人2021年年初曾参考一个模块化的项目(SimplCommerce),试着从0到1搭建一个完整的项目,并应用在工作的项目里(当时就我一个开发,想搞啥搞啥,可太爽了)。今年再看那个项目,虽说结构、代码都很干净,但很多想法及实现还是太稚嫩了。而且模块化的架构,实际上只是更贴近我当时(上上家)的业务场景,不太适应通用的情况。
新开的这个项目,期望实现这样的能力:业务人员只需关注实体的构建,业务服务的编写,以及路由的配置。
让业务的开发,变成简单的三步走:创建实体 >> 业务开发 >> 路由配置。
前后端分离,使用 JWT 认证。
后端:基于 .NET6 和 EF Core,集成常用组件。
前端:基于 小诺1.8 做适配,主技术栈:Vue2.6.x、Ant-Design-Vue
管理员:superAdmin 密码:123456
普通用户:user 密码:123456
请参考使用手册
本人本机环境:
VS2022
VS Code
SQL Server2019 Express
node 16.13.2
注:排名不分先后。
感谢这些优秀的开源项目!
依赖于抽象
依赖倒置原则,控制反转(IoC)
切面编程(AOP)
权限、日志、异常等通过过滤器(Filter)或中间件(Middleware)等实现,集中编程
可配置
自动注册
自动注册实体(Entity)、自动注册服务类(Service)等
主要分为三层:Interface表现层、Services服务层、Repository仓储层
Interface:Host依赖所有层,完成程序配置(如:Program.cs 中DI容器注入服务,中间件管道配置等);Web API 配置路由,提供 API 接口,如果程序以后有迁移、或替换前端的情况,也可以在这里做一层适配器(注:API只是一种表现形式,也可以为MVC)
Services:所有的业务都在这一层。从仓储中读取数据模型(Models),进行业务操作,返回DTO(Data transfer objects)给表现层。
Repository:数据库访问。
通用的模块:Model、Common、Framework
Models:包含所有数据模型,如 Entity(对象数据库的数据表)、CacheItem缓存对象、EventModel事件模型等。
Common:集成常用组件,根据项目需要做相应配置;提供基础服务,如CurrentUser访问当前用户信息;提供静态帮助类,所有无状态的函数都归入此类,如GuidHelper.Next()
产生连续 Guid。
Framework:框架,比如引用ABP或Furion等框架,甚至是自己项目一些通用的能力,可以到处用的。
实际上,把 IServices 和 IRepository 此类接口层干掉了。
Models 则归入了对应的使用者里面,Framework 也没有。
Common # 基础设施:集成常用组件;提供基础服务;提供静态帮助类
Repository # 仓储层:数据库访问,数据库迁移
Services # 服务层:业务实现
WebApi # 表现层:完成程序配置;配置路由,提供API接口
目录结构如下,更详细的结构,请查看文档。
├─config # 一些配置文件,如:redis 的配置文件
├─doc # 项目文档
├─web # 前端
├─webapi # 后端
├─Simple.Common # 基础设施
├─Simple.Repository # 仓储层
├─Simple.Services # 服务层
└─Simple.WebApi # 表现层
答:一般项目中会如有 IRepository 和 IServices 这些个抽象层,主要是为了控制反转(IoC),实现项目各层之间解耦,最终目的就是为了“高内聚,低耦合”。
笔者认为,对于单体项目来说,做到高内聚即可,再追求完全的低耦合,会增加成本和困扰(举个简单的栗子:项目初期,业务大改是常有的事,改服务类的接口的事并不少见。除非说业务主体明确,需要修改的,并不是业务的接口,而是业务的具体实现)。
最后是这个项目,本就是为了追求最简三层单体。
答:简单的项目基本上是单数据库的,且 EF Core 已经实现了工作单元和仓储模式,可以不用再封装一层。
当然,笔者还是建议跟ABP框架那样再封装一层仓储,可以避免一些后续的开发运维问题(比如:系统迁移、重构等)。
如果这个项目对您有所帮助,可以扫下方二维码打赏一杯咖啡。
啊呸,我不喝咖啡,来杯可乐吧,啊哈哈哈。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。