遵循Marin Fowler关于分布式对象的第一部法律:
My First Law of Distributed Object Design: Don't distribute your objects
这是我在使用Web API解决方案时使用的典型设置:
问题是存在大量复制,因为实体,pocos和模型看起来几乎相同,例外的是可能包含序列化属性的模型。这总是很好用,像valueInjecter这样的库使得类型之间的转换变得微不足道,但是对于其他人来说这种推理背后的理由是很复杂的。有人可能认为模型可能与表结构不同,虽然这可能是真的,但大多数情况下模型直接映射到实体/ pocos。
那就是说,你会使用共享库而只有一个吗?
感谢。
答案 0 :(得分:0)
您的设计出现了问题:
API和服务之间的内容不是POCO。它应该是实体。
API和浏览器之间的内容不是模型。它应该是DTO。
您只需在设计中维护实体和DTO。这样做的原因很明确:域模型(实体+服务)用于业务方面。 DTO用于沟通。