我看到使用N层和WCF的项目。在解决方案中创建WCF项目时,通常使用“service?
一词调用它主要问题:
在使用与N层相关的WCF时,为什么以及有什么好处?
WCF和N-tier应该使用哪种情况?
答案 0 :(得分:0)
我经常遇到的情况是连接到云端服务器的胖客户端。我们不希望将SQL DB部署到所有客户端。我们托管数据库并通过WCF业务数据服务公开访问。胖客户端然后连接到WCF服务。
答案 1 :(得分:0)
首先,有一个众所周知的层与层的问题(你可以搜索SO问题),层是逻辑划分层是物理层。要将图层拆分为图层,您需要一个服务(而不仅仅是对项目程序集的引用)。在中间拥有真正的等级有许多好处 1.您可以通过将项目拆分到不同的服务器上来扩展项目。您可以为客户端层使用多台计算机。 2.您可以拥有不同的客户端(桌面/ Web /非.NET客户端),甚至可以将该服务用作公共API(尽管这可能存在风险)。 3.你确定你没有跳过你的图层,因为你有物理分离,即它确保了正确性。
话虽如此,我已经看到在许多项目中应用的Web服务层方法实际上并不需要它,并且很可能永远不需要它。我认为引入这样的层通常是过度设计的结果。
我也对更有经验的人的意见感兴趣。
答案 2 :(得分:0)
服务没有用户界面。它们公开方法和/或实体(在REST的情况下)并以数据格式(通常是XML和/或JSON)返回结果。
WCF是一种用于构建服务的工具。您无法使用它构建UI或独立应用程序,您只能使用它来编写随后由应用程序/ UI /其他服务使用的服务。
顺便提一下,分层和分层之间存在差异。分层通常是指硬件:因此,服务层是运行一个或多个服务的一个或多个服务器,这些服务连接到其他层 - 在其他服务器上运行的业务逻辑("应用服务器")。通常,您有一个UI(" Presentation")层,调用服务层(WCF服务),调用业务层或域模型,调用数据访问层,调用一个或多个数据库和/或用户代理。所有这些都在微软自己的文档中得到了很好的记录,例如Patterns&实践指南:http://msdn.microsoft.com/en-us/practices/bb190351