WCF移动合同的策略

时间:2012-04-05 09:29:48

标签: wcf mobile soa datacontract

是否有一种巧妙的方法来构建我的WCF服务,这样我可以实现一次服务并让它为不同的调用者返回不同的数据协定? (即移动客户)

我们已经开发了一组服务,这些服务由桌面应用程序使用,现在正在构建应用程序的移动版本。问题是返回的数据传输对象(DTO)太大并且包含移动应用程序的不必要成员。随着它通过移动网络我们希望削减这些以提高性能,但服务的实现将是相同的。

我们到目前为止的想法:

  • 设置 EmitDefault为false,然后不映射所有属性 DTO适用于移动呼叫者(我们使用的是自动播放器,因此可以做一些事情 具有多种映射配置)
  • 桌面的继承DTO类型,使用KnownType属性扩展基本移动类型。
  • 完全建立一个单独的服务,但要确保所有逻辑都在共享的业务服务层(应该已经存在)

是否有人知道此要求是否有任何指导?

1 个答案:

答案 0 :(得分:0)

我个人会将实现分开。正如您所指出的,每组客户端 - 移动和桌面 - 都有不同的要求。您可以共享服务合同,只需拥有不同的实现/服务。这将允许为每个客户端专门化服务,并使其更容易扩展,修改和测试。