首页 文章

WCF Business Objects或DataContracts

提问于
浏览
0

我有三个项目:

  • WCF服务项目(接口和实现)

  • 使用WCF服务的aspx Web项目(客户端)

  • 类库项目,它包含我的业务对象(由WCF项目和客户端共享)

我在WCF服务实现类文件中有一个方法,它从SQL检索数据的通用列表(引用包含业务对象的项目),使用System.Web.Script.Serialization.JavaScriptSerializer序列化数据并将结果返回为串 .

Web客户端获取此字符串并将其反序列化为相应的业务对象(引用包含业务对象的项目)

这是一个内联网应用程序,我想确保我正确地这样做 .

我的问题是:

  • 我应该使用DataContracts而不是业务对象吗?不确定何时使用DataContracts以及何时使用业务对象 .

  • 如果我使用DataContracts,我应该不使用System.Web.Script.Serialization.JavaScriptSerializer吗?

任何澄清将不胜感激 .

1 回答

  • 0

    当然没有一个答案 . 我认为问题在于你是否想要首先使用业务对象,否则我的第四点几乎涵盖了它 .

    如果业务对象看起来像数据 Contract 那么会使用它们,即它们是一堆公共属性,并且不包含子/孙子等的集合 .

    如果业务对象包含您不需要的大量数据,请不要使用它们 . 例如,使用数百个实体填充网格,以获取特定于该网格的数据协定 .

    如果业务对象包含您必须在Web服务中复制的验证逻辑等,请使用它们 .

    如果您打算使用数据协定来完全膨胀业务对象,请使用业务对象 .

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

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

    如果业务对象需要“知道”它们的位置(Web服务器或应用服务器),请不要使用它们

    不是您的情况,但是:如果要构建用于数据输入的富客户端,请使用业务对象 .

    这就是现在,我会看到是否有更多的事情发生在我身上 . :)

相关问题