每个WCF服务的新的ServiceHost?

首先,我运行一个应该包含很多fun​​cionality的Windows服务。将有一个业务层,来自这个业务层的结果将通过WCF发送到表示层。

我不知道如何结构所有这些function。

所以我的问题是:

1.我应该创build一些Facade模式类来覆盖所有的服务类,并把这个Facade类放到一个ServiceHost中。 或者只是为每个服务类创build一个ServiceHost实例? 喜欢这个

host1 = new ServiceHost(typeof(MyService1)); host2 = new ServiceHost(typeof(MyService2)); 

2.我的服务级别应该如何细化? 每个实体或每个聚合根或每个function块?

这个通信将通过net.pipe运行。

有一个在单个Windows服务下运行多个服务主机的例子: http : //thegrenade.blogspot.com/2009/08/hosting-multiple-wcf-services-under.html

和一个相关的问题在这里: 你可以在一个单一的Windows服务主机多个WCF进程?

让你的界面成为你的指南。 定义您计划通过WCF公开的接口。 这将定义你需要多少服务类,从而定义你需要多少个ServiceHost实例。

一个ServiceHost只能托管一个服务(实现)类 – 这是一个给定的,你不能改变。

但是一个服务(实现)类可以实现任意数量的服务契约(接口)。

但是,为了实现关注点分离的原则,我没有看到有很多令人信服的理由来拥有一个庞大的“SuperDuperServiceClass”,它实现了服务合同的船载 – 我喜欢保留与彼此无关的东西分开 – 使得从长远来看更容易管理它。

你有什么理由拒绝为单一服务提供一台服务主机?