0

我想创建我的第一个 WCF 服务,但我不确定如何构建它。

该服务将接受从我的数据库中检索不同类型项目的请求:

List<Product> getProducts()
List<Module> getModules(Product)
List<Releases> getReleases(Product)
List<Feature> getFeatures(Product,Module)
//many more types of items to get etc...
//and then the equivalent functions to update those item types back in the database...

那么我应该将所有这些作为一个单一的服务合同来实现吗?

[ServiceContract]
public interface IMyService{}

public class MyService : IMyService{}

我理解这种方式我只需要托管一项服务,但是这是否会因试图为很多人提供他们可能提出的所有可能请求而陷入困境?

或者我应该为每种类型的项目制定不同的服务合同,并分别实施每个项目,以便我可以将它们中的每一个托管在不同的机器上,以减少可能因交通繁忙而导致的性能不佳?

[ServiceContract]
public interface IMyProductService{}
public class MyProductService : IMyProductService{}

[ServiceContract]
public interface IMyModuleService{}
public class MyModuleService : IMyModuleService{}

[ServiceContract]
public interface IMyUserService{}
public class MyUserService : IMyUserService{}

... etc etc ...
4

1 回答 1

1

我将拥有所有合同的单一实施。就像是:

public interface IUserService{}
public interface IYourModuleService{}
public interface IYourProductService{}
    public class YourService : IUserService, IYourModuleService, IYourProductService{}

这样,您还可以控制您的客户仅使用他们需要的合同,而且(除非您期望大量)您的实施设计应该是任何瓶颈的第一个停靠点,而不是合同设计。

您还可以使用所有“开箱即用”的 WCF 工具来控制音量和实例等 - 以简化您的流程。

简而言之 - 单一实现,多个服务合同。

于 2012-08-11T10:14:57.017 回答