Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wcf 数据契约还是客户机模型?_Wcf_Silverlight_Bdd_Datacontract - Fatal编程技术网

Wcf 数据契约还是客户机模型?

Wcf 数据契约还是客户机模型?,wcf,silverlight,bdd,datacontract,Wcf,Silverlight,Bdd,Datacontract,我目前正在编写一个中型/大型silverlight应用程序 我目前的架构如下 在服务器端,我使用实体框架ORM从现有数据库创建实体对象 我有WCF服务WHO方法将代表我的实体对象的数据契约传回客户端silverlight应用程序 我的问题是在收到silverlight端的Datacontract时,我应该吗 1) 在MVVM中将此DataContract用作我的模型 2) 将datacontract转换为要在MVVM中使用的客户端模型对象 选项1:我不确定将客户端的数据契约视为模型是否被认为是一

我目前正在编写一个中型/大型silverlight应用程序

我目前的架构如下

在服务器端,我使用实体框架ORM从现有数据库创建实体对象

我有WCF服务WHO方法将代表我的实体对象的数据契约传回客户端silverlight应用程序

我的问题是在收到silverlight端的Datacontract时,我应该吗 1) 在MVVM中将此DataContract用作我的模型 2) 将datacontract转换为要在MVVM中使用的客户端模型对象

选项1:我不确定将客户端的数据契约视为模型是否被认为是一种普遍的坏做法,因为它们是最后通牒WCF消息类型


选项2:此选项使我与服务器完全解耦,并允许我从行为驱动的方法开发代码。

您的评估是对的,WCF使用的数据契约可以被视为数据传输对象,是向服务传输数据和从服务传输数据的一种方式

另一方面,您的模型可能包含行为、业务规则和验证。所以我会选择方案2


这还将使您能够更轻松地管理服务和客户端应用程序中的更改,因为服务不会与服务的特定使用者耦合。

您是否考虑过使用基于Silverlight的WCF RIA服务?是的,但不幸的是,我们决定不使用Ria,因为这些服务只对Silverlight可用。