Architecture
该项目是使用新技术和最佳实践进行Architecture的示例。
目标是学习和分享知识,并将其用作新项目的参考。
原理和模式
好处
- 简单而进化的Architecture 。
- 标准化和集中式流程,用于验证,日志,安全性,返回等。
- 避免周期性参考。
- 避免不必要的依赖注入。
- 通过功能而不是技术类型进行分离。
- 每个请求和响应的唯一责任。
- 单位测试的简单性。
技术
- 。网
- ASP.NET核心
- 实体框架核心
- C#
- 角
- Uikit
跑步
命令行
先决条件
- .NET SDK
- SQL Server
- 节点
- 角CLI
步骤
- 打开目录源\\ Web \\ frontend在命令行中并执行NPM运行还原。
- 在命令行中打开目录源\\ Web并执行dotnet运行。
- 打开https:// localhost:8090。
Visual Studio代码
先决条件
- .NET SDK
- SQL Server
- 节点
- 角CLI
- Visual Studio代码
- C#扩展
步骤
- 打开目录源\\ Web \\ frontend在命令行中并执行NPM运行还原。
- Visual Studio代码中的开源目录。
- 按F5 。
视觉工作室
先决条件
- 视觉工作室
- 节点
- 角CLI
步骤
- 打开目录源\\ Web \\ frontend在命令行中并执行NPM运行还原。
- Visual Studio中的开源\\ Architecture .sln 。
- 将Architecture .web设置为启动项目。
- 按F5 。
Docker
先决条件
- Docker
步骤
- 执行Docker构成-Detach-Build – -force-recreate-remove-Orphans 。
- 打开http:// localhost:8090。
软件包
资料来源: https://github.com/rafaelfgx/dotnetcore
发布: https://www.nuget.org/profiles/rafaelfgx
层
网络:前端和后端。
应用:流控制。
域:业务规则和域逻辑。
模型:数据传输对象。
数据库:数据持久性。
网络
前端
服务
它是前端和后端之间的接口,具有不属于组件的逻辑。
警卫
它验证了是否可以激活路线。
ErrorHandler
它为集中式异常处理提供了钩子。
httpintecceptor
它拦截并处理httprequest或httpresponse。
后端
控制器
除调解器以外,它没有任何逻辑,业务规则或依赖性。
应用
它只有业务流,而不是业务规则。
要求
它具有代表请求的属性。
请求验证器
它具有验证请求的规则。
回复
它具有代表响应的属性。
处理程序
它负责业务流量并处理返回响应的请求。
它称为工厂,存储库,工作单位,服务或调解员,但没有业务规则。
工厂
它创建一个复杂的对象。
对象的任何更改都会影响编译时间而不是运行时。
领域
它没有任何层的引用。
它具有聚合,实体,价值对象和服务。
总计的
它定义了一个或多个实体周围的一致性边界。
目的是建模交易不变性。
总体中的一个实体是根,总体中的任何其他实体都是根的子女。
实体
它具有独特的身份。身份可能跨越多个有界的上下文,并且可能会超越生命周期。
仅通过实体内部业务方法而不是通过直接访问属性来更改属性。
值对象
它没有身份,是不变的。
它仅由其属性值定义。
要更新值对象,您必须创建一个新实例才能替换旧实例。
它可以具有封装域逻辑的方法,但是这些方法必须对状态没有副作用。
服务
它执行域操作和业务规则。
它是无状态的,没有操作不是实体或价值对象的一部分。
模型
它具有运输和返回数据的属性。
数据库
它封装了数据持久性。
语境
它配置连接并表示数据库。
实体配置
它在数据库中配置实体及其属性。
存储库
它从通用存储库继承,仅实现特定方法。
