我应该使用自承载 WCF 作为客户端还是直接连接到数据库



我有一个关于 WCF 和数据库连接的问题...我将控制台应用程序作为服务器,其中包含一些逻辑。然后,我有WPF应用程序,它可以在连接到服务器的多台计算机上运行并从中获取一些数据。我还需要使用数据库。所以我决定创建使用实体框架连接到数据库的 WCF 服务。目前为止,一切都好。。现在,所有客户端都可以访问 WCF 服务。但是我还想使用托管此 WCF 服务的服务器连接到数据库。我找到了一些教程,如何从托管服务作为客户端的应用程序创建连接。但我不确定这是否是好主意..所以我想问..最好将主机应用程序中的 WCF 服务用作客户端。或者我应该只使用这个应用程序中的 dbContext。使用 dbContext 的服务和直接之间不会有冲突吗?当多个客户端将通过服务连接并且服务器将通过上下文连接时?

我将提供一些选择将WCF放在中间的利弊。

优点

1-增强的安全性。仅授予对承载 WCF 服务的服务器的数据库访问权限。安装应用的计算机不需要知道数据库 IP 地址。此外,还可以使用 WCF 在消息级别设置安全性。

2-为多个UI提供可重用的API。

3-您可以在集中且一致的API中实现业务逻辑,因此对业务逻辑的更改不会影响客户端应用程序。

缺点

1-性能成本。您始终必须考虑这样一个事实,即放置额外的网络请求会影响应用的性能。

2-更多的代码和更多的硬件需要维护。

请记住,复杂性必须是合理的。在中间添加 WCF 会增加系统的复杂性。如果没有理由,那么你就不需要它。

最新更新