Visual Studio服务参考和自动生成的代理类 - 为什么不将它们传递给您的类/项目?

时间:2014-03-07 22:08:27

标签: c# wcf

我的开发方法一直是从Visual Studio服务引用的自动生成的代理类(在WCF项目中)中获取数据,并使用它来保护我自己的自定义业务对象。然后,业务对象将从一个类传递到另一个类,在一个大型解决方案中投射到项目,而不是由Visual Studio创建的自动生成的类。

我受到了挑战:为什么要这么麻烦?为什么不通过自动生成的类,如果我们所做的只是一个愚蠢的数据转换?你知道我得到了24克拉的争论获胜答案。

有任何帮助吗?为什么不绕过那些代理类并节省时间?

2 个答案:

答案 0 :(得分:2)

  1. 它是一个抽象层。您不希望将业务逻辑直接与服务绑定。如果您决定不使用WCF,如果服务端发生更改,该怎么办?这与你为DTO做的原因相同。

  2. 您可能想要编写自定义代理

  3. 您希望能够在不需要WCF包装器的情况下测试业务对象

  4. 自动映射器使这几乎无痛。

答案 1 :(得分:0)

从域驱动设计

了解反腐败层的概念
  

反腐败层(ACL)是另一种鼓励的DDD模式   您可以创建有效防止非域概念的守门员   从泄漏到你的模型。他们保持模型清洁。

     

从本质上讲,存储库实际上是一种ACL。他们保留SQL   或模型外部的对象关系映射(ORM)构造。        ACL是一种很好的技术,用于介绍Michael Feathers在他的书“Working Effectively With Legacy Code”一书中所称的内容。

     

接缝是一个可以开始切割一些遗留代码的区域   并开始引入变化。找到接缝,以及隔离   您的核心域,在使用DDD技术时非常有价值   重构和收紧代码中最高价值的部分。

http://msdn.microsoft.com/en-us/magazine/dd419654.aspx