.net WCF服务设计困境

.net WCF服务设计困境,.net,web-services,wcf,.net,Web Services,Wcf,我将要设计新的WCF服务,需要有关我正在努力解决的问题的建议。我们有一个很大的物体叫做区域,这个区域有很多街道和道路。街道和道路有一些子对象。因此,服务消费者可以要求 创建新区域 将新街道添加到现有区域 将新子对象添加到现有街道 从区域中删除街道 ... 所以,我应该创建一个方法来获取区域,并决定需要在该方法后面添加/更新/删除哪个对象。我认为这就是所谓的基于消息的设计 或 我应该创建许多方法来满足经典WCF接口的每个请求吗?基于您定义的服务场景,我建议考虑将WCF数据服务作为通过新服务公开数据

我将要设计新的WCF服务,需要有关我正在努力解决的问题的建议。我们有一个很大的物体叫做区域,这个区域有很多街道和道路。街道和道路有一些子对象。因此,服务消费者可以要求

创建新区域 将新街道添加到现有区域 将新子对象添加到现有街道 从区域中删除街道 ... 所以,我应该创建一个方法来获取区域,并决定需要在该方法后面添加/更新/删除哪个对象。我认为这就是所谓的基于消息的设计


我应该创建许多方法来满足经典WCF接口的每个请求吗?

基于您定义的服务场景,我建议考虑将WCF数据服务作为通过新服务公开数据的机制。MSDN中的以下代码片段提供了其他信息:

WCF数据服务通过使用开放数据协议OData为Web或intranet创建和使用数据服务。OData使您能够将数据公开为可由URI寻址的资源。这使您能够通过使用表示性状态传输REST的语义来访问和更改数据,特别是GET、PUT、POST和DELETE的标准HTTP谓词。本主题概述了OData定义的模式和实践,以及WCF数据服务在基于.NET Framework的应用程序中利用OData所提供的功能


关于,

我不确定它是否被称为基于消息的设计,我也不是设计专家。但是作为您服务的客户端,我希望使用经典的WCF接口方法。因为有特定的工作,我会寻找做这些工作的方法。否则,我会因为在每项工作中使用相同的方法而感到困惑


通过使用不同的方法对任务进行编码,您也将提高可维护性。在客户端和服务端。

我会选择多种方法,它们将为您提供更好的控制和异常处理以及可测试性。这是一个REST接口比SOAP WCF DataContract更简单、更直观的经典示例。如果您正在启动一项新服务,我建议您检查WebAPI。阅读此示例,看看您是否认为它更直观: