我需要关于我的新应用程序架构的建议。在我工作的环境中,我们通常创建基于 Win 的应用程序,这些应用程序由 UI 层、业务层、WCF 服务层和数据访问层组成。它们位于 3 层架构上,服务服务器、数据库服务器和客户端机器通过应用服务器上的 Citrix 访问应用程序。我刚刚创建了一个网络应用程序,我的管理员建议它应该托管在一个单独的网络服务器上,我的问题是,我的网络应用程序是否需要使用 WCF 服务层,因为它可以托管在同一个应用程序服务器上? 基本上,网站是否需要使用 wcf/service 层,有什么好处?
2 回答
1. 阅读: http: //www.codeproject.com/Articles/10746/Dude-where-s-my-business-logic
我的建议:至少,您应该使用 WCF,并使用“命名管道”。您可以在同一台机器上部署主机(WCF)和客户端(Asp.Net 网站)。Asp.Net 网站将成为“客户端”并访问该服务。
然后,如果您想要水平扩展,您所要做的就是更改 .config 设置以使用除命名管道之外的不同协议。Aka,即使您将两者都部署在同一台物理机器上,您也将拥有“逻辑分离”。
他们(网站、任何项目)“不需要”做任何事情。
如果需要,您可以在 Web 表单上的按钮后面编写内联 sql 代码。但它不可维护。而且它不可扩展。这可能是愚蠢的。但是,恕我直言,在开始时将时间投入到 SOA 中型到大型应用程序中是值得的。
这是一个没有具体可能答案的问题,您需要 wcf 吗?这取决于您想要实施的要求和架构。
根据您提供的小上下文,也许您可以获得以下一些好处
- WCF 为操作提供状态
- 快速处理(二进制序列化)
- WCF 比传统的 asmx Web 服务更有可能“可测试”
- 您可以访问为桌面应用程序构建的相同后端
关于是否可以从同一台服务器访问,简短的回答是肯定的(显然你需要衡量你的服务器能力)
我已经完成了一些根本不使用 wcf 的应用程序,以及将其用于某些操作的其他应用程序,您可以查看这个SO 答案以获得一个很好的示例,其中 wcf 可能是应用程序中的一个很好的候选者。