0

保持 WCF 项目有什么好处 - WEB HOST PROJECT 和 Service Implementaiton 项目分开。

  1. 服务合同库
  2. 服务实现库
  3. 服务主机项目

我理解合同和实现分开将有助于 SOC 主体,如果需要实现接口,也允许在其他应用程序中使用。

但是,我不明白为什么要分别保留 - 服务主机和服务实施项目。

我浏览了以下链接,但不明白将其分开的好处。 http://www.devx.com/codemag/Article/39837 (第4,5页)

如果这里有任何人指南,那将很有帮助。

谢谢你

4

2 回答 2

3

正如文章所说:

将服务与主机解耦使您可以将服务托管在您想要的任何类型的主机中,并可以随时更改该主机。现在,主机可以是 IIS 应用程序、Windows 激活服务或任何自托管应用程序,包括控制台应用程序、Windows 窗体应用程序、Windows 服务等 - WCF 手动方式……正确方式:第 3 页

测试模拟虽然很重要,但可以说适用于大多数编程方面的事情。然而,这里更有用的是服务分离如何帮助在生产中部署所述服务,而不是它如何帮助开发人员级别的测试。与生产中系统的运行寿命相比,后者仅在很短的时间内有用,其中操作人员可能会更改服务的托管方式。从 ALM 的角度来看,操作会在 SDLC 完成后继续进行。

虽然这里跑题了,但我们可以更进一步,将服务逻辑本身与服务的契约以及任何与 WCF 相关的. 正如 Thomas Erl 的《SOA 设计模式》一书中提到的-

门面逻辑位于合约和核心服务逻辑之间。这允许核心服务逻辑与合约保持分离。-服务立面

  • 保持 WCF 实现和 WCF 宿主进程分开允许您在以后更改它的托管方式
  • 高级:将 WCF 实现和服务处理逻辑分开,确保后者可以自由更改,而不会影响公开服务合同的用户
于 2014-07-03T14:17:41.873 回答
0

除了 Micky 的回答,我给你一些部署的例子。1. 如果您打算在 IIS 中托管服务,则不需要 Service Host 项目,因为 IIS/WAS/.NET 运行时会在第一个客户端请求时为您创建一个服务主机。2.如果你想在Windows服务或者控制台应用中托管服务,你可以在Window服务项目或者控制台应用项目中创建服务宿主,因为创建Service Host的代码只有几行,除非你有管理服务主机的复杂逻辑。

于 2014-07-03T23:17:49.783 回答