将我的Web应用程序域图层类库引用到WCF服务应用程序是不错的做法。
这样做可以让我轻松访问我的域模型上已有的类,这样我就不需要重新定义WCF服务使用的类似类
另一方面,我不喜欢它在应用程序和服务之间产生的耦合,我很好奇它是否会给我带来长期困难。
我还认为为我的WCF应用程序设置专用类会更有效,因为这些类只包含服务将使用的成员而不包含任何其他成员。如果我使用我的域层中的类,那么类中将有许多字段不会被服务使用,并且会导致不必要的数据传输。
如果你能从你的经历中给我你的想法,我将不胜感激
答案 0 :(得分:4)
不,不是。实体都是关于行为的。 数据合同就是......数据。另外正如你所提到的,你不想把它们结合在一起,因为它会削弱你很快对变化做出反应的能力。
答案 1 :(得分:4)
答案 2 :(得分:2)
我个人对直接通过WCF直接传递域对象感到皱眉。正如Krzysztof所说,这是关于数据合同而不是关于你通过网络传递的行为的合同。
我通常这样做:
将“数据合同”的概念纯度放在一边,如果您开始传递实体,则设置您的共享实体,以便在WCF边界的每一侧拉入不同的设计方向。你不可避免地会遇到只属于一方的行为,甚至更糟糕的是 - 必须公开概念上做同样事情的方法,但是对于WCF边界的每一方以不同的方式。从长远来看,它可能会非常混乱。