Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.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
Asp.net core 在生产中部署多层项目时的最佳做法_Asp.net Core_Architecture - Fatal编程技术网

Asp.net core 在生产中部署多层项目时的最佳做法

Asp.net core 在生产中部署多层项目时的最佳做法,asp.net-core,architecture,Asp.net Core,Architecture,net核心解决方案,具有以下不同的项目 API-包含客户端应用程序调用的控制器 应用程序-具有业务逻辑 数据-数据库上下文 域-具有数据项目中表的类 基础设施-生成令牌 我的问题是,当我进入生产环境时,是否可能在不同的服务器上安装API,并在不同的服务器上安装应用程序、数据、域和基础设施?这是最好的做法吗 非常感谢您的任何帮助、想法和建议 谢谢第一个问题的答案是这是可能的。理解这一点的一种方法是认识到UI和API之间的接口类似于建议的API和后端之间的接口。与UI通常位于与API不同的服务器

net核心解决方案,具有以下不同的项目

  • API-包含客户端应用程序调用的控制器
  • 应用程序-具有业务逻辑
  • 数据-数据库上下文
  • 域-具有数据项目中表的类
  • 基础设施-生成令牌
我的问题是,当我进入生产环境时,是否可能在不同的服务器上安装API,并在不同的服务器上安装应用程序、数据、域和基础设施?这是最好的做法吗

非常感谢您的任何帮助、想法和建议


谢谢第一个问题的答案是这是可能的。理解这一点的一种方法是认识到UI和API之间的接口类似于建议的API和后端之间的接口。与UI通常位于与API不同的服务器上的方式相同,API可能位于与相关业务逻辑不同的服务器上。只要理解每个组件之间的接口并在其范围内使用,就没有理由不能在不同的服务器上使用生产应用程序的不同部分。这背后的原则通常被称为“关注点分离”

  • 用户界面-了解如何从API“接收”数据并向用户“发送”数据
  • API—了解如何从UI“接收”数据并将数据“发送”到业务逻辑处理
  • 应用程序-了解如何从API“接收”数据并将数据“发送”到数据存储
  • 这个问题的第二部分类似于微服务和整体式架构之间的问题。在微服务体系结构中,每个服务都应该很好地处理一个操作,其他组件应该通过一个明确定义的接口与之通信。这导致代码和部署更易于遵循和扩展,而代价是标准化和维护与网络通信相关的接口和问题

    如果有一个架构在所有方面都是最好的,那么每个人都会使用它,并且不需要进一步评估。尽管如此, 在我看来,划分服务的好处与存在的唯一服务的数量成正比。因此,仅将其拆分为API和后端服务器是不值得的。随着“分离关注点”数量的增加(例如:许多后端组件),好处开始变得更有价值

    将后端进一步划分为若干不同的服务可能是值得的。例如:应用程序业务逻辑可以划分为类型1、类型2和类型3