首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WCF业务对象或DataContracts

WCF业务对象或DataContracts
EN

Stack Overflow用户
提问于 2013-04-01 18:07:57
回答 1查看 792关注 0票数 0

我有三个项目:

  • WCF服务项目(接口和实现)
  • 使用WCF服务的aspx web项目(客户端)
  • 包含我的业务对象的类库项目(由WCF项目和客户端共享)

我在WCF实现类文件中有一个方法,该方法从SQL检索数据的一般列表(引用包含业务对象的项目),使用System.Web.Script.Serialization.JavaScriptSerializer序列化数据,并以字符串的形式返回结果。

web客户端接受此字符串并将其反序列化回适当的业务对象(引用持有业务对象的项目)。

这是一个内部网应用程序,我想确保我做的是正确的。

我的问题是:

  • 我应该使用DataContracts而不是业务对象吗?不确定何时使用DataContracts,何时使用业务对象。
  • 如果我使用的是System.Web.Script.Serialization.JavaScriptSerializer?,是不是应该使用DataContracts?

如有任何澄清,将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-01 18:31:31

当然,没有一个答案。我认为问题是,首先您是否想使用业务对象,否则我的第四点就会很好地讨论它。

如果业务对象看起来像数据契约,即它们是一组公共属性,并且不包含子代/孙辈的集合等,那么一定要使用它们。

如果业务对象包含一些您不需要的数据,就不要使用它们。例如,使用数百个实体填充网格,就会请求特定于该网格的数据契约。

如果业务对象包含验证、逻辑等,则请使用这些对象,否则您将不得不在web服务中复制这些对象。

如果您只是要使用数据契约来完全膨胀业务对象,那么一定要使用业务对象。

如果您想从非.net代码中使用该服务接口,请不要使用业务对象。

如果必须大规模配置业务对象序列化,则不要使用业务对象。

如果业务对象需要“知道”它们在哪里,就不要使用它们(web服务器或应用服务器)

不是您的情况,而是:如果您正在构建一个用于数据输入的富客户端,请使用业务对象。

就现在来说,我会看看是否还有更多的事情发生在我身上。:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15748905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档