我有一个业务层,它有一些常见的类型可以将数据传输到服务层(到目前为止很好),但是,我还有一个表示层,需要访问BL中的公共类型,我不会这样做。我想将BL类暴露给PL。
我正在考虑在BL中创建一个共享库并使其可供所有层访问,或者在SL中创建新类并从BL类继承它们。
解决此问题的最佳方法是什么。 我的SL是一个WCF项目,将作为服务托管。 PL主要是Web Forms和MVC。
答案 0 :(得分:1)
分享业务的堆栈有多远的古老问题 对象。
您希望拥有服务图层,但又不想反复映射对象 - >这表明了很多事情:
对象的三个“层”听起来比实际更复杂,许多工具可以帮助解决这个问题(例如AutoMapper),但通常复杂性来自于应用程序在本质上很简单但仍然有很多这样的层;否则你会清楚地看到好处。
是的,我把这个问题简化了很多,整个讲座都是关于“共享对象”。实际上还有很多其他的东西可以发挥作用,简化事物或完全改变上下文(例如OData服务,或者在客户端上使用动态类型语言等)。