【发布时间】:2011-01-30 11:57:58
【问题描述】:
更多的是设计/概念问题。
在工作中,我们决定通过 Web 服务调用我们的数据访问层。因此,我们的网站会调用 Web 服务来获取进出数据库的任何/所有数据。网站和 Web 服务都将在同一台机器上(因此不会跨线),但数据库在单独的机器上(因此无论如何都需要跨线)。这都是内部的,网站、网络服务和数据库都在同一家公司内(AFAIK,网络服务不会被另一方重用)。
据我所知:网站将打开一个连接到 Web 服务的端口,而 Web 服务将依次打开另一个端口并通过网络连接到数据库服务器以获取/提交数据。无法避免跨越电线的行程,但我担心站在中间的 Web 服务。
我同意功能之间需要有不同的层(例如业务层、数据访问层等),但这对我来说似乎过于复杂。我也感觉到会有一些性能问题。
在我看来,最好在解决方案中直接引用 (DAL) 程序集,从而否定第一个端口到端口的连接。
任何支持和反对这个想法的想法(或链接)都将不胜感激
附:我们是 .NET 商店(从 vb 迁移到 C# 3.5)
编辑/更新 将 Dathan 标记为答案,我还没有完全卖掉(我仍然有点犹豫不决,虽然倾斜它可能没有我担心的那么糟糕),他提供了一个深思熟虑的答案。我感谢所有的反馈。
【问题讨论】:
-
不要将 Web 服务用作 DAO 的链接。这对您的代码以及您的 Web 服务器的性能造成重大影响。为什么要添加该层?所以你可以使用 AJAX 调用来访问 DAO?您真的希望您的 UI 直接与您的 DAO 对话吗?糟糕的举动,恕我直言
标签: c# web web-services