【发布时间】:2018-10-30 09:21:58
【问题描述】:
我想将六边形架构应用于我的userManagement boundedContext。所以我想定义 2 个端口(一个用于UI,另一个用于serviceBus 集成,用于侦听来自其他服务的事件)。
问题是我是否想使用不同的技术为UI port 实现adapters(我不确定它应该被称为UI port,基本上这是CreateNewUser, BlockUser, CheckIfUserExists 操作所在的接口)使用不同的技术WCF 和 欧文。如何将它们添加到我的控制台应用程序?
假设我想使用 WCF 实现 Soap adapter 并使用 Owin 休息。在许多示例中,我看到人们为每个驱动适配器创建单独的控制台应用程序,即:MyDDD.UserManagement.Api.Rest.Host 和MyDDD.UserManagement.Api.Soap.Host。我想要实现的是一个主机应用程序以及以某种方式将适配器连接到它的能力。请分享您的想法!
【问题讨论】:
-
你想同时使用它们还是互相替代?
-
两个我都需要。
-
我删除了答案,尝试提供一个更好的答案;)您对控制台应用程序是什么意思?据我了解,您希望拥有一个具有 UI 和服务总线的应用程序,并且它们都应该使用相同的应用程序服务,对吗?
-
consoleAppication 是指 .NET 中的项目类型。即 ClassLibrary 或 ConsoleApplicaion(可执行文件)。是的,我想要一项具有一个 UI 端口的服务(不是 UI 客户端应用程序)。现在,有一个团队开发了一个 Web 客户端应用程序,他们需要一个 rest api 来与我的服务进行通信。还有另一个团队创建了一个 WPF 应用程序,但他们想使用 WCF (Soap) 与我的服务进行通信。所以我想从我的服务中公开 2 个适配器。他们都将调用我的应用程序层。如果可能的话,我想要这个可配置的。动态添加或删除此适配器
-
知道了。您是否有理由要动态添加/删除这些实现?架构约束?我看不出这样做有什么大的优势。更有可能增加更多不必要的复杂性。
标签: architecture domain-driven-design restful-architecture ddd-service hexagonal-architecture