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

本文关键字:合同 几个 一个 WCF | 更新日期: 2023-09-27 18:12:28

我有一个使用WCF与后端DB通信的web应用程序。我已经把所有的东西都准备好了,但是我想知道是否把我相当大的服务合同分成几个合同会更好。

目前,服务契约是包含所有操作的单一通用文件。我知道我可以把它分解成更小的契约,这些契约与业务逻辑中的数据对象相关联,例如,一个Person对象有一个PersonContract等,

我只是担心web应用程序将不得不引用几个WCF服务而不是一个,并因此而受苦。拥有几个较小的合同会对性能产生消极或积极的影响吗?

谢谢。

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

在我看来,单一职责原则(SRP)和接口隔离原则(SOLID中的"S"answers"I")仍然适用于WCF服务契约。

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

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

但总而言之,不要羞于重构你的服务(特别是如果你能预见到将来会添加新的操作),也要抓住任何机会重构和重用接口中的任何公共主题。

编辑:抱歉-关于性能的问题没有回答。如果您确实发现多个服务的开销有问题,您可以使用一个或几个服务,每个服务使用许多接口,就像这里的SO帖子一样。使用客户机上的代理、facade或服务代理类型模式,您可以"隐藏"您实际上只与一个/几个服务对话的事实。