Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.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# 使用洋葱架构设计的.net核心应用程序能否托管在3层(3个物理服务器-web、app、db)中?_C#_.net_Design Patterns_Asp.net Core_Onion Architecture - Fatal编程技术网

C# 使用洋葱架构设计的.net核心应用程序能否托管在3层(3个物理服务器-web、app、db)中?

C# 使用洋葱架构设计的.net核心应用程序能否托管在3层(3个物理服务器-web、app、db)中?,c#,.net,design-patterns,asp.net-core,onion-architecture,C#,.net,Design Patterns,Asp.net Core,Onion Architecture,目前,有一个分层体系结构项目,其中MVC作为表示层,WCF作为服务层。因此,它们都可以分别托管在2台物理服务器中。客户端需要与我计划在.NETCore中执行的新项目相同的部署结构 如果.net核心应用程序是在onion体系结构中开发的,那么它可以像传统的三层web应用程序一样部署吗?这将部署在3个物理服务器(Web服务器、服务应用程序、数据库)中,如核心MVC/Angular、Web api、DB 更新: 我试着跟随.net核心项目 .net核心MVC作为表示层 Web API作为服务层 然

目前,有一个分层体系结构项目,其中MVC作为表示层,WCF作为服务层。因此,它们都可以分别托管在2台物理服务器中。客户端需要与我计划在.NETCore中执行的新项目相同的部署结构

如果.net核心应用程序是在onion体系结构中开发的,那么它可以像传统的三层web应用程序一样部署吗?这将部署在3个物理服务器(Web服务器、服务应用程序、数据库)中,如核心MVC/Angular、Web api、DB

更新: 我试着跟随.net核心项目

  • .net核心MVC作为表示层
  • Web API作为服务层
然后是处理会话的问题。会话在Web服务器(MVC项目)中处理。如何实现与.net core MVC类似的身份验证,因为它没有db访问权限,通过web api项目(充当服务层)进行身份验证,如何使用令牌实现这一点

是否有可用的最佳实践或指导方针?
提前谢谢

你想做什么就做什么。这里有什么问题?你真的尝试过什么吗?@ChrisPratt:是的,我在尝试洋葱架构中的.net核心教程。其中许多将服务层显示为类库。如果我把它作为类库,我就不能单独部署它。所以我有点困惑。目前有一个分层架构项目,其中MVC作为表示层,WCF作为服务层。因此,它们都可以分别托管在2台物理服务器中。对于我计划在.NETCore中执行的新项目,客户端需要相同的部署结构。提前感谢。分层和包装应该是单独决定的。您可以充分利用分层,同时在单个包中部署所有内容。或者可以单独打包(大多数)层。您在这两个方面都做出决定,然后这将倾向于决定层之间可用的通信形式。或者,沟通的形式可能首先决定你的包装决定。@Damien_异教徒:对不起,我不太明白你的意思。你能具体说明怎么做吗?我的意思是,如果你决定第3层通过HTTPS与第2层对话,第2层通过直接方法调用与第1层对话,那么第2层和第1层必须打包并部署在一起。第3层可以部署在同一个包中,也可以单独部署。另一方面,如果您决定将每个层单独打包,那么就排除了使用直接方法调用作为层2访问层1的手段,因此您将选择不同的机制。