WCF图层

时间:2009-05-18 12:34:45

标签: c# wcf architecture

我最近开始使用WCF(是的,我知道我落后了:-))。问题是我必须如何构建它。

我习惯了DAL,BL和Presentation Layer。我正在用实体框架替换(排序)我的DAL。

所以到目前为止我有这个

DAL(实体框架) - > BL - > 合同(datacontract messagecontrol服务合同行为等) - > 服务实施 - > 客户端。

问题是bl和合约之间有一层,它将bl(没有更好的词)转换成数据合约。

实施例 DAL.Customer(实体框架) - > BL(规则) - >转换器(只需转换) - > Contracts.Customer

OR

DAL.Customer(实体框架) - > BL(规则) - >转换器(调用BL和转换。转换器实现服务合同) - > Contracts.Customer。

感谢

2 个答案:

答案 0 :(得分:1)

应该有一个薄的“层”,只是因为你并不真的需要BL层来理解你的契约,而你真的不想把你的BL对象作为契约暴露给世界其他地方。 / p>

当然,你可以这样做。您可以开发简单数据传输对象的数据协定。这些只包含数据而不包含任何行为,并且会暴露您希望全世界看到的数据部分。您的BL可以将自己限制为该模型,也可以从中继承以添加特定于BL的功能。

或者,只需拥有BL版本的真人版和现实版的“契约版”,并在它们之间进行转换。

答案 1 :(得分:0)

很多时候,您会看到BL和合约类型之间的相似之处。您可以使用一些快捷方式来帮助您使用优秀的AutoMapper来转换类型。这些工具可以帮助这一层保持“薄”。