我想在我的userManagement
boundedContext
中应用六边形体系结构。所以我想定义2个端口(一个用于UI
,另一个用于serviceBus
集成,以监听来自其他服务的事件)。
问题是我是否要为adapters
实施UI port
(我不确定它应该被称为UI port
,基本上就是CreateNewUser, BlockUser, CheckIfUserExists
操作所在的接口)使用不同的技术 WCF 和 Owin 。如何将它们添加到我的控制台应用程序?
假设我想使用 WCF 实施Soap adapter
,并使用 Owin 休息。在许多示例中,我看到人们为每个驱动适配器创建单独的控制台应用程序,即:MyDDD.UserManagement.Api.Rest.Host
和MyDDD.UserManagement.Api.Soap.Host
。我想要实现的是一个主机应用程序和以某种方式连接适配器的能力。请分享您的想法!
答案 0 :(得分:1)
所以我想定义2个端口(一个用于UI,另一个用于serviceBus) 集成,监听来自其他服务的事件。)
你错过了端口的概念。您称之为UI和服务总线集成的是适配器。它们是端口的2个适配器。他们使用端口。他们称之为港口提供的业务。该端口与技术无关,独立于交付机制。该端口只是一个提供应用程序用例的界面。
UI端口(我不确定它应该被称为UI端口,基本上就是这个 接口CreateNewUser,BlockUser,CheckIfUserExists 正常运营)
应根据其目的命名端口。如果操作是用于管理用户,我应该将其称为“userManagement”。或者,如果您的BC以这种方式命名,请将端口称为“api”(我更喜欢有意义的名称)。
如果我想实现适配器......如何将它们添加到我的控制台 应用?
我认为你错了。如果通过控制台表示CLI,则控制台是该端口的另一个适配器。你没有添加适配器。
如果我想使用不同的UI端口实现适配器 技术WCF和Owin。如何将它们添加到我的控制台应用程序中?
我告诉你我的方式:适配器声明自己的名字(带有自定义注释)。引导整个系统时,主要组件扫描适配器,并通过检查其名称为每个端口选择所需的适配器。
我想要实现的是一个主机应用程序和连接能力 以某种方式适应它。
我是这样做的:我有一个多模块项目。六边形是一个模块,每个适配器是另一个模块。我有另一个名为“main”的模块,它们一起构建并运行你想要的适配器。例如,您可以将每个端口所需的适配器放在属性文件中。这就是我这样做的方式。