[英]wcf service and asp .net presentation layer
我有 wcf 服务,它负责数据库交互和业务逻辑。 它还具有用于业务对象的 class 库。 我想要 wcf 服务返回对象列表。 我是否应该为我的 asp .net 项目(正在使用服务)创建另一个 class 业务对象库,以便 asp .net 项目可以理解 object 类型?
您应该在服务和 asp.net 项目之间共享 class object 库。 这就像您整个项目的“中间件”。 这将避免不必要的重复。 基本上,只需将所有业务对象移动到不同的项目并将其包含到 wcf 和 asp.net 解决方案中。
并不真地。 当您通过 visual studio 使用添加服务引用添加对 web 服务的引用时,您将获得每个 object 的代理类,以在 web 服务中使用
服务的标准做法是返回DTO而不是业务对象:在表示层中使用您的业务对象会将其与业务逻辑紧密耦合,并且大多数时候您不希望这种耦合。 还要记住,您通过网络发送的所有内容都应该是可序列化的,您的业务对象可能是可序列化的,也可能不是可序列化的。
所以我会说是的,你很可能想用 DTO 创建一个不同的库,并将其中的类用作数据契约。 重复并不是真正的问题,因为它保证了合同的一定稳定性,并且可以使用AutoMapper等工具将您的业务对象 map 发送到 DTO。
让我们考虑在表示层 (ASP.NET) 和服务层之间共享一个公共业务 class 库的方法的优点和缺点。
优点:
缺点:
将此与创建 DTO 库进行比较:
优点:
缺点:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.