我目前正在撰写Mid / Large silverlight应用程序。
我目前的架构如下。
在服务器端,我有使用实体框架ORM从现有数据库创建的实体对象。
我有WCF服务,方法将表示我的实体对象的Datacontracts传回客户端silverlight应用程序。
我的问题是我应该收到银光一侧的Datacontract 1)在MVVM中使用此DataContract作为我的模型 2)将datacontract转换为客户端模型对象以在MVVM中使用。
选项1:我不确定将客户端的Datacontracts视为模型是否被认为是一般的不良做法,因为它们是ultimatley WCF消息类型。
选项2:这种选择使我能够完全脱离服务器,并允许我从行为驱动的方法开发我的代码。
答案 0 :(得分:2)
您的评估是正确的,用于WCF的数据合同可以被视为数据传输对象,它是向服务传输数据和从服务传输数据的一种方式。
另一方面,您的模型可能包含行为,业务规则和验证。所以我会选择2。
这还可以让您更轻松地管理服务和客户端应用程序中的更改,因为该服务不会与服务的特定使用者耦合。