Application层是业务实现的核心层,大多数业务逻辑实现都在该层进行定义和实现。
通常你只需要定义(或通过代码生成器生成) [实体名]Manager.cs
的文件来实现业务逻辑即可。定义的Manager要继承ManagerBase
类,该类提供了
Query
和Command
的属性,分别对应了只读数据库
和读写数据库
,以进行读写分离操作。
Note
设计模式如仓储模式、CQRS模式、观察者模式、中介模式
等是为了更好的组织代码,以及为实现业务功能服务的。本模板并不会特意去采用或实现某种模式,而是基于方便、灵活、可复用
的原则去组织代码。
应用常量定义目录
包含了ManagerBase.cs
基类,实现常见的数据库读写操作。
提供默认的UserContext
,用户上下文封装实现。
Important
为了保持兼容性,请不要直接修改以上默认生成的内容,如果你需要自定义,可通过partial class
、扩展接口
以及继承类
的方式实现。
业务逻辑实现目录,可通过生成器生成,可自由修改。
用来编写自定义服务或引入第三方服务,通常通过依赖注入的方式使用。
对于典型的User
的CURD的接口实现场景:
设计和编写实体模型和DTO模型
UserManager.cs
,继承DomainManagerBase<User>
,实现IUserManager
定义的业务逻辑。在控制器中编写接口,通过调用Manager
实现具体逻辑。
REST HTTP
,请尽可能的遵循REST API
相关的规范和约定。Manager
,相关的操作和方法是面向该实体(领域)。IXXXManager
接口方法,通过接口约束实体的方法。在依赖注入时,也会通过接口类型去注入。