申请类型: 在后端使用RDBMS的3层Web应用程序
开发平台
客户端:Silverlight 3 / WPF 服务:具有基本Http绑定的WCF Web服务
问题定义: 尝试开发一个将客户端业务处理和数据密集型对象传递给客户端的应用程序。在客户端屏幕中查看和编辑对象后,应将它们传递到服务器端的服务以进行保存。问题是,由于数据量相当大,我不想将整个对象再次传递回服务。例如: - 如果每行有10行10列的集合,则只更新2列。我应该只能传递数据。
问题: 这是一个很好的做法,如果是,那么最好的方法是实现
尝试了解决方案 我尝试了两种解决方案 1:让具有事件代理的setter更改通知 2:使用自定义数据类型
答案 0 :(得分:0)
如果您正在使用由VS自动生成的WCF Web服务,那么您几乎不得不传输已知的类;因此,要传输较小的信息块,您需要专门为此目的定义一些新类。我认为这些对象通常称为DTO(数据传输对象)。因此,对于具有10 x 10矩阵的场景,您的DTO可能包含{x,y,value}三元组的列表。
如果您正在使用REST Web服务(并自行编写),那么您可以完全避免使用DTO类,只需创建足以传达信息的XML模式;例如,具有以下形式的子元素的顶级元素:
<Deltas>
<Delta x="3" y="9"> ...value subelementgoes here </Delta>
... more Delta elements
</Deltas>
然后,您的REST服务必须执行增量更新服务器端数据库记录的工作。您可能需要为每种数据类型使用不同的REST URL。
HTH
比尔