我应该在哪个层使用DataContracts?

时间:2011-03-08 04:14:35

标签: wcf architecture n-tier-architecture layer

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

或者我应该将它们放在业务或数据层中?

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

另一方面,这些数据交易和相关的业务规则不是也不应该被我的网络应用程序使用,而且纯粹与wcf网络服务本身有关。

1 个答案:

答案 0 :(得分:2)

从一个纯粹的SOA persective,他们应该有自己的层专门用于建模你想要暴露给外部世界的接口。

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

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

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