Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.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中连接三层应用程序?_C#_.net_Architecture_3 Tier - Fatal编程技术网

C# 如何在.NET中连接三层应用程序?

C# 如何在.NET中连接三层应用程序?,c#,.net,architecture,3-tier,C#,.net,Architecture,3 Tier,我想制作一个三层应用程序 我将MS SQL用于一个数据库,通过存储库和使用实体的工作单元连接到BL。我想将Web API连接到BL。我过去曾使用SOAP连接Web API和BL,但如果没有它,又不使用直接引用,如何将它们连接起来,以便将它们分开 如果没有必要分开,你能详细说明原因吗 首先,您正在SOAP API之上使用REST API Web API。这会适得其反。这两个组件都应该是BL的入口点,并且应该彼此平行存在,不在彼此之上,它们之间没有依赖关系 至于您的主要问题,在BL和API之间添加另

我想制作一个三层应用程序

我将MS SQL用于一个数据库,通过存储库和使用实体的工作单元连接到BL。我想将Web API连接到BL。我过去曾使用SOAP连接Web API和BL,但如果没有它,又不使用直接引用,如何将它们连接起来,以便将它们分开


如果没有必要分开,你能详细说明原因吗

首先,您正在SOAP API之上使用REST API Web API。这会适得其反。这两个组件都应该是BL的入口点,并且应该彼此平行存在,不在彼此之上,它们之间没有依赖关系


至于您的主要问题,在BL和API之间添加另一层抽象将带来大量开销,但没有什么好处。BL可能作为一个单独的项目库存在,您可以在SOAP和REST API中引用它。

为什么SOAP对于Web API,它应该接受Http调用,因为它定义了Http端点。Soap是用于Web服务通信的,如果不知道您为什么认为需要分离,很难说您不需要分离。直接引用BL的WebAPI有什么问题?我总是喜欢尽可能地将事情分开。至于SOAP,这是另一个遗留项目。好吧,那么:为了分离而分离不是分离的理由…SOAP的事情是因为遗留的原因,而不是在我当前的项目上。现在我严格使用WEB APIYah,这似乎是一种趋势。不过,我们希望在Web API中直接引用BL。RESTAPI本身将是独立于平台的组件,您可以从不同的应用程序实现中使用它。