服务端
服务端代码,存放在api文件夹内,建议使用vs2022进行开发,框架沿用了abp framework的大部分功能,包括依赖注入、验证、授权等。
项目分层介绍
- PurestAdmin.Api.Host
项目入口、启动层,所有关于接口的设置都放在这里,比如请求中间件、授权策略等
- PurestAdmin.Application
应用层,本项目所有的接口都是从这一层生成的。根据动态规则,自动生成api接口,这里也是项目主要的业务逻辑层
- PurestAdmin.BackgroundService
后台服务层,apb里的后台作业job和后台工作者worker都应该放在这里。同时提供了IBackgroundJobStore的持久化实现
- PurestAdmin.Core
核心层,此层不参与任何业务内容,负责基础功能的实现,以及组件的封装、扩展等
- PurestAdmin.Multiplex
复合层,多元化的层,作用:为application和host层提供价值,和core层不同的是,这里是参与业务内容的,别的层不合适存放的东西都可以放在这一层
- PurestAdmin.Multiplex.Contracts
复合层的契约层,这里定义的接口需要在Multiplex层实现,相当于复合层方法的抽象层,任何Multiplex层内被需要的功能,都需要在这里抽象成接口。存放枚举或者常量等
TIP
这里抽象出来的接口,可能会有很多是替换了原abp的功能,比如ICurrentUser接口,将来可能还有很多,在使用时要注意
- PurestAdmin.SqlSugar
ORM层,因为本项目使用了SqlSugar,并且也没打算支持替换,所以名字就叫PurestAdmin.SqlSugar,存放实体和扩展实体,当然,如果你不擅长使用,可以另外使用其他的ORM框架,根据abp提供的规则,进行注入即可
- PurestAdmin.Workflow
工作流层,这里是工作流模块的主要类库,项目集成了workflow-core。重写了持久化类,并重新关联了表。详情见er图,同时也会和application一样,自动注册工作流的相关接口,如果您不需要工作流,移除此项目并不会对其他项目产生于影响
- PurestAdmin.Zero
本项目是一个控制台项目,主要是用来做种子数据初始化的。当您创建数据库并使用脚本创建好表之后,可以先运行这个控制台项目,把种子数据初始化到数据库中,这样就可以快速使用了。您也可以在这里定制您自己的种子数据
IMPORTANT
初始化项目Zero的设计使用场景为develop,供开发测试阶段使用,请避免用于生产环境。Zero初始化种子数据的时候,不参与接口的生成,所以没有初始化"功能绑定的接口"的数据,需要在开发的过程中,develop模式下,进入系统,同步接口,然后绑定接口。
如何使用
本项目完全遵循abp framework的框架规则,详情请参照abp官方文档,后续会有专门的一节讲述如何进行快速二次开发