为什么要将WCF ServiceContracts限制为10-20 OperationContracts?

时间:2010-03-17 15:32:36

标签: wcf

我见过建议(Juval Lowy等人),服务合同应该“不超过20个成员......十二个可能是实际限制”。为什么?看来,如果你想提供一个服务作为一个相对较大的数据库(50-100个表)的接口,你将只在CRUD中超越它。我已经提供了大量其他服务,提供了数百个“OperationContracts”...... WCF有什么特别之处吗?这里有什么我想念的吗?

3 个答案:

答案 0 :(得分:2)

可能是你不应该在SOA世界中公开CRUD ......这个想法是暴露业务流程。单独的CRUD操作导致了一个特殊的慢速和粒度界面。看看RIA Services / ASTORIA如何做CRUD的事情。

我不认为这是技术限制。这个想法是一个服务定义了业务运营所需的所有合同(订单管理,账户管理),而且不应该太复杂。

答案 1 :(得分:1)

我认为这与SOA的原则有关。许多人认为使用数百个OperationContracts的服务作为设计不佳的服务,即使技术上正确。

您不应该简单地为一堆表公开Web界面。相反,服务应该暴露与引导下的那些表交互的抽象操作(可能映射到业务流程)。

答案 2 :(得分:0)

我过去见过类似的建议,我认为这取决于谁将使用您的服务。 如果像我一样,您正在编写它以将应用程序链接到远程数据源,那么您可以编写的最抽象的接口仍将包含数据库中每个逻辑对象的“get”和“save”方法。 我的最新项目有一份服务合同,里面有246份操作合同。这是一个文件和猪的清真编辑,但客户端代码是整洁的,它更容易使用。它不像任何人,但我会看到它。

简而言之,这两种方法都没有技术或性能影响。选择最合适的项目。

相关问题