首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WCF服务设计问题

WCF服务设计问题
EN

Stack Overflow用户
提问于 2010-01-29 19:14:13
回答 2查看 144关注 0票数 3

根据您的实际经验,是否可以使用一个方法定义服务契约,该方法将接受某个对象作为请求的形式,并返回作为该请求的结果的其他对象。我的意思是,与创建、删除、编辑和搜索客户的方法不同,我会将这些活动封装在DataContracts中,接收到此类DataContract后,服务将执行相应的操作。但是服务接口应该很简单:

代码语言:javascript
复制
interface ISomeService
{
  IMessageResult Process(IMessageRequest msg);
}

因此,IMessageRequest将命名为OperationType = OperationTypes.CreateCustomer,其余字段将为服务提供足够的信息,以便它可以在数据库或其他位置创建客户对象或记录。而IMessageResult可能有一些字段,其中包含一些代码,用于指示客户是否已创建。

我试图通过这种设计实现的是一种能力,可以轻松地将IMessageRequest委托给客户端甚至不知道的其他内部服务。我看到的另一个好处是,如果我们必须在客户上添加一些操作,我们只为该操作提供额外的DataContract,而不需要在服务接口端更改任何东西(我希望不惜一切代价避免这种情况,我的意思是不是新的操作,而是更改服务接口:)

那么,你怎么看?它是处理复杂业务流程的好方法吗?什么是pitfals,什么是更好的。

如果我复制了其他一些帖子,并且我的问题有一些答案,请给我提供链接,因为我没有找到它们。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-01-29 19:24:06

简而言之:是的,这可能是一个非常好的想法(我已经以这样或那样的形式实现了几次)。

这种方法的一个很好的起点是Davy Brion在他所说的request/response layer上的帖子。他将他最初的想法和想法整合到一个非常有用的开源软件项目Agatha中,这是我在写这篇文章时在一个客户网站上提出的。

票数 2
EN

Stack Overflow用户

发布于 2010-01-30 00:52:03

这正是我们在我工作的地方所做的。它工作得很好,对所有开发人员来说都很容易理解,并且很容易连接新的方法/类/等。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2161480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档