WCF – 域对象和IExtensibleDataObject
典型场景我们在内部使用旧版
XML Web Services来在服务器场和多个分布式本地客??户端之间进行通信.没有第三方参与,只有我们自己和我们的客户使用我们自己的应用程序.
我们正在考虑从XML WS转向基于WCF /基于对象的模型,并一直在尝试各种方法.其中一个涉及通过线路直接传输域对象/聚合,可能调用它们上的DataContract属性. 通过使用DataMembers上的Order属性使用IExtensibleDataObject和DataContract,我们应该能够处理简单的属性版本控制问题(请记住,我们控制所有的客户端,并且可以轻松地强制更新它们). 然而,我不断听说我们应该通过电线使用专用的,仅传输数据传输对象(DTO). 为什么?真的还有理由这样做吗?我们在服务器端和客户端使用相同的域模型,当然只有在被视为正确和“必要”时,才能预先收集集合.集合属性通常利用服务定位器原理和IoC来调用基于Nhibernate的“服务”来直接(在服务器端)提取数据,以及客户端上的WCF“服务”客户端与WCF服务器场通信. 那么为什么我们需要使用DTO? 解决方法
根据我的经验,DTO最有用的是:
>严格定义将通过电线发送的内容,并具有专门用于该定义的类型. 在您的场景中,这些设计功能可能并不重要.我已经使用WCF与严格的DTO和共享的域对象,并在这两种情况下,它的功能很棒.我通过电线发送域对象时注意到的唯一的事情是,我倾向于发送更多的数据(以意想不到的方式),然后我需要.这可能是因为我没有任何其他的WCF经验;但是如果你选择去那条路线,那么你一定要谨慎. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |