WCF合同设计;一个大的或几个小合同?

时间:2011-10-27 11:30:24

标签: c# wcf

我有一个使用WCF与后端数据库通信的Web应用程序。我已经掌握了一切,但我想知道将相当大的服务合同分成几个合同是否更好。

目前,服务合同是一个包含所有操作的通用文件。我知道我可以将它分解为与业务逻辑中的数据对象相关联的较小合同,即Person对象具有PersonContract等。

我只是担心Web应用程序必须引用几个WCF服务而不是一个,因此会受到影响。无论如何都会有几个较小的合约影响业绩,无论是消极还是积极?

感谢。

1 个答案:

答案 0 :(得分:4)

IMO单一责任原则(SRP)和Interface Segregation原则(SOLID中的“S”和“I”)仍适用于WCF服务合同。

重构的本质在很大程度上取决于您提供的服务类型,例如

  • 数据服务=>您通常会围绕主要业务实体整合每个Web服务。
  • 企业业务服务=>通常会围绕主要业务流程主题(例如索赔处理或订单处理服务)整合服务组

但总的来说,不要害羞重构您的服务(特别是如果您可以预见将来添加的新操作),并且还要抓住机会重构和重用接口中的任何常见主题。

编辑:抱歉 - w.r.t.关于表现的问题没有回答。如果您确实发现多个服务的开销有问题,您可能会牺牲一个/几个服务,每个服务都有许多接口,如此SO post here。通过客户端上的代理,外观或服务代理类型模式,您可以“隐藏”事实上您实际上只与一个/少数服务对话。