Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在应用程序的n层体系结构中可以有哪些额外的层?_C#_Architecture_Multi Layer_N Layer - Fatal编程技术网

C# 在应用程序的n层体系结构中可以有哪些额外的层?

C# 在应用程序的n层体系结构中可以有哪些额外的层?,c#,architecture,multi-layer,n-layer,C#,Architecture,Multi Layer,N Layer,我正在学习软件架构原理。 我了解什么是三层架构(包含演示业务-数据访问)。 但是任何人都有这样做的想法或额外的层,例如,有人通过额外的层,如“服务”层、“基础设施”层或其他层等来做这件事。 有没有额外的层来做这件事? 我对这样做感到困惑。 请帮助我……C#与其他(命令式)编程语言没有什么不同。您的确切体系结构通常由正在使用的框架决定。如果您使用的是C#,它可能是ASP.NET MVC的一种风格 通常,在模型和控制器之间引入一个服务层来封装一些业务逻辑和事务流。这一层是否“正确”是一个相当有争议的

我正在学习软件架构原理。
我了解什么是三层架构(包含演示业务-数据访问)。
但是任何人都有这样做的想法或额外的层,例如,有人通过额外的层,如“服务”层、“基础设施”层或其他层等来做这件事。
有没有额外的层来做这件事?
我对这样做感到困惑。
请帮助我……

C#与其他(命令式)编程语言没有什么不同。您的确切体系结构通常由正在使用的框架决定。如果您使用的是C#,它可能是ASP.NET MVC的一种风格

通常,在模型和控制器之间引入一个服务层来封装一些业务逻辑和事务流。这一层是否“正确”是一个相当有争议的问题,通常取决于您是否订阅DDD阵营。实际上,如果您有很多复杂的业务逻辑,那么将逻辑外部化到服务层会增加可测试性,但代价是降低模型层的实际建模能力。出于实用的测试目的,服务层通常最终成为大多数业务逻辑的来源

存储库或数据访问层与模型层分离,如果您的域持久性达到一定的复杂程度,那么存储库或数据访问层非常有用。我通常在默认情况下创建它们,因为它还有助于测试将模型与持久性分离(并允许轻松注入模拟)。

C#与其他(命令式)编程语言没有什么不同。您的确切体系结构通常由正在使用的框架决定。如果您使用的是C#,它可能是ASP.NET MVC的一种风格

通常,在模型和控制器之间引入一个服务层来封装一些业务逻辑和事务流。这一层是否“正确”是一个相当有争议的问题,通常取决于您是否订阅DDD阵营。实际上,如果您有很多复杂的业务逻辑,那么将逻辑外部化到服务层会增加可测试性,但代价是降低模型层的实际建模能力。出于实用的测试目的,服务层通常最终成为大多数业务逻辑的来源


存储库或数据访问层与模型层分离,如果您的域持久性达到一定的复杂程度,那么存储库或数据访问层非常有用。我通常在默认情况下创建它们,因为这也有助于测试将模型与其持久性分离(并允许轻松注入模拟)。

常见的分层体系结构组成:

  • 核心层
  • 基础设施
  • 演示文稿
进一步分解,这3层可以有自己的颗粒层

核心层

  • 域模型
  • 列举
基础设施

  • 存储库
  • 数据传输对象模型
  • 服务
  • 工作单位
演示文稿

  • MVC项目
  • Web API


我想为了回答您的问题,我可以在基础架构层和表示层之间添加一个层,并设置一个测试层。请记住,只有在代码中遵循SOC和可靠原则的情况下,通过使用文件结构对应用程序体系结构进行分层才是真正有益的。

常见的分层体系结构构成:

  • 核心层
  • 基础设施
  • 演示文稿
进一步分解,这3层可以有自己的颗粒层

核心层

  • 域模型
  • 列举
基础设施

  • 存储库
  • 数据传输对象模型
  • 服务
  • 工作单位
演示文稿

  • MVC项目
  • Web API


我想为了回答您的问题,我可以在基础架构层和表示层之间添加一个层,并设置一个测试层。请记住,只有在代码中遵循SOC和可靠原则的情况下,通过使用文件结构将应用程序体系结构分层才是真正有益的。

浏览此链接,谢谢…..那篇文章指向了我的问题何处?例如,我看到了分层体系结构的许多实现。服务层或基础结构层。甚至存在一个单独的表示层和真实的用户界面层。有时存在存储库或域层。哪种类型的n层是在现实世界中实现的最佳选择?浏览此链接,谢谢…..那篇文章指向了我的问题何处?例如,我看到了许多分层体系结构的实现。服务层或基础结构层。甚至存在一个单独的表示层和真实的用户界面层。有时存在存储库或域层。在现实世界中,哪种类型的n层是实现的最佳选择?