0
有没有一种巧妙的方式来构建我的WCF服务,这样我就可以实现一次服务并让它为不同的调用者返回不同的数据协定? (即移动客户端)WCF移动合同策略
我们已经开发出了一组桌面应用程序使用的服务,现在正在构建应用程序的移动版本。问题是返回的数据传输对象(DTO)太大,并且包含不必要的移动应用程序成员。随着它通过移动网络,我们希望削减这些以提高性能,但是服务的实施将是相同的。
想法,我们到目前为止有:
- 设置 EmitDefault为false,然后未映在 DTO移动呼叫者的所有属性(我们使用automapper这样也许能够做一些事情 与多个映射配置)
- 用于桌面的继承DTO类型,使用KnownType属性扩展基本移动类型。
- 只是建立一个单独的服务完全是,但要确保所有的逻辑是在一个共享的业务服务层(这应该是已经)
有谁知道是否有任何指导那里的这一要求?
为响应而欢呼,问题在于您实际上无法共享合同,因为它们也指定了数据类型的方法。如果可能的话,我试图避免这种情况,因为它看起来像重复执行相同服务两次的代码很多,但只是使用具有属性子集的不同数据传输对象。 – 2012-04-10 13:58:15
这是一个两难的问题。当你说“有一部分属性”时,你的意思是什么?您公开给移动应用程序的数据合同是否有所不同? – stephenl 2012-04-10 23:10:11
是的,移动应用程序将使用相同的服务,但只显示不多的信息,所以它只需要数据合同中的一些属性。但出于性能方面的原因,我们希望减少停止额外的数据,而不是在客户端忽略它。 – 2012-04-11 08:17:10