将业务层和数据层结合在一个 WCF 服务中的优缺点
Posted
技术标签:
【中文标题】将业务层和数据层结合在一个 WCF 服务中的优缺点【英文标题】:Pros and Cons of combining the business layer and the Data Layer in one WCF service 【发布时间】:2015-02-10 23:25:59 【问题描述】:我有一个应用程序使用 3 层 2 层业务模型,即 Presentation、Business 和 Data Layers 以及 Application 和 Service Tiers .我们已经决定在其自己的层上使用 WCF 服务来处理所有数据层请求 (CRUD)。我现在的问题是是否将业务层与 WCF 服务中的数据层结合起来,然后 UI 调用处理所有业务和数据操作的服务。
我反对这个想法,因为我认为服务应该是一个愚蠢的服务,它只处理 CRUD 操作。业务层应该在应用端,但封装在自己的层中,也是唯一访问数据层的层。
我可能很傻,但我希望互联网对此事有发言权,以及任何可能的利弊。
感谢所有回复!
【问题讨论】:
【参考方案1】:如果其他表示层(例如网站)可能需要访问业务层和数据层,那么在服务端创建以下层是有意义的:
-
服务端点:一个简单的数据传递,负责将传入的请求(采用您选择的技术)转换为业务层可以理解的请求。
业务层:您的域对象和业务服务以及运行业务所需的规则。该层调用您的数据层,对服务端点一无所知。
数据层:将业务领域对象简单转换为与您交互的任何对象所需的对象;无论是数据库还是第三方服务端点。
现在,您拥有了一个很好的、可维护且可部署的微服务,该微服务特定于您的问题空间中的特定领域。
查看Martin Fowler's article on microservices 了解有关该主题的更多详细信息。
【讨论】:
以上是关于将业务层和数据层结合在一个 WCF 服务中的优缺点的主要内容,如果未能解决你的问题,请参考以下文章