【问题标题】:Which layer should I have my DataContracts?我应该在哪一层拥有我的 DataContracts?
【发布时间】:2011-03-08 04:14:34
【问题描述】:

我应该将它们放在 wcf 客户端应用程序中吗?

或者我应该把它们放在业务层还是数据层?

一方面,数据的序列化和反序列化,我可能需要与其他数据对象交互,因此我应该将业务逻辑放在业务或数据层中。

另一方面,这些数据合同和相关的业务规则不是也不应该被我的 Web 应用程序使用,并且纯粹与 wcf Web 服务本身相关。

【问题讨论】:

    标签: wcf architecture n-tier-architecture layer


    【解决方案1】:

    从纯粹的 SOA 角度来看,他们应该有自己的层专门用于对您想要向外部世界公开的接口进行建模。

    更重要的是,如果业务逻辑很重要,您可以将数据合同 (DC) 移动到单独的程序集中并在客户端和服务之间共享。它为您带来了几个好处:

    • 无需在客户端上为 DC 创建代理类
    • 您可以轻松共享 DC 内部逻辑

    如果您想在服务器端添加客户端不知道的额外逻辑,您仍然可以通过组合或子类化(甚至扩展方法)来扩展类。

    【讨论】:

      猜你喜欢
      • 2012-07-04
      • 2014-08-20
      • 1970-01-01
      • 2013-08-03
      • 1970-01-01
      • 2022-09-30
      • 1970-01-01
      • 2011-01-08
      • 1970-01-01
      相关资源
      最近更新 更多