让WCF项目分别拥有 - WEB HOST PROJECT和Service Implementaiton项目有什么好处。
我理解合同和实现保持单独将有助于SOC主体,并且如果需要实现接口,也允许用于其他应用程序。
但是,我不明白为什么要单独保留 - 服务主机和服务实现项目。
我通过以下链接,但不明白保持这个分开的好处。 http://www.devx.com/codemag/Article/39837(第4,5页)
如果有任何一个指南,那么它很有帮助。
谢谢
答案 0 :(得分:3)
正如文章所说:
将服务与主机分离后,您可以在任何类型的主机上托管服务,并随时更改该主机。现在,主机可以是IIS应用程序,Windows激活服务或任何自托管应用程序,包括控制台应用程序,Windows窗体应用程序,Windows服务等。WCF the Manual Way…the Right Way : Page 3
测试模拟虽然很重要,但可以说适用于编程方面的大多数事情。然而,更有用的是服务分离如何帮助在生产中部署所述服务,而不是如何帮助开发人员级别的测试。与生产系统的运行寿命相比,后者仅在短时间内有用,其中操作人员可能会改变服务的托管方式。从ALM的角度来看,操作在SDLC完成后继续进行。
虽然在这里偏离主题,但可以更进一步,不仅从服务合同中解耦服务逻辑本身,而且从与WCF相关的任何东西中解耦。如Thomas Erl的书SOA Design Patterns -
中所述Facade逻辑放在合同和核心服务逻辑之间。这允许核心服务逻辑保持与合同分离。 - Service Façade
答案 1 :(得分:0)
除了Micky的回答,我还会给你一些部署的例子。 1.如果要在IIS中托管服务,则不需要Service Host项目,因为IIS / WAS / .NET运行时将在第一次客户端请求时为您创建服务主机。 2.如果要在Windows服务或控制台应用程序中托管服务,可以在Window服务项目或控制台应用程序项目中创建服务主机,因为只有几行代码用于创建服务主机,除非你有管理服务主机的复杂逻辑。