Итак, я хочу определить 2 порта (один для пользовательского интерфейса, другой для интеграции с сервисом Bus, для прослушивания событий от других сервисов).
Вы неправильно поняли понятие порта.То, что вы называете пользовательским интерфейсом и интеграцией сервисной шины, - это адаптеры.Это 2 адаптера для порта.Они используют порт.Они называют операции, предлагаемые портом.Порт является технологически независимым, независимым от механизма доставки.Порт - это просто интерфейс, предлагающий варианты использования вашего приложения.
Порт интерфейса пользователя (я не уверен, что его следует называть портом интерфейса, в основном это интерфейсы, где живут операции CreateNewUser, BlockUser, CheckIfUserExists)
Порты должны быть названы в соответствии с их назначением.Если операции предназначены для управления пользователями, я должен назвать это «userManagement».Или, если ваш BC назван таким образом, назовите порт просто «api» (хотя я предпочитаю полное имя).
, если я хочу реализовать адаптеры ... Как я могу добавить их в свойконсольное приложение?
Я думаю, что вы здесь не правы.Если под консолью вы подразумеваете CLI, то консоль - это еще один адаптер для порта.Вы не добавляете адаптеры к нему.
, если я хочу реализовать адаптеры для порта пользовательского интерфейса, используя различные технологии WCF и Owin.Как я могу добавить их в мое консольное приложение?
Я говорю вам, как я это делаю: адаптеры объявляют себя с именем (с пользовательской аннотацией).Основной компонент при начальной загрузке всей системы сканирует адаптеры и выбирает нужные вам для каждого порта, проверяя их имена.
То, чего я хочу достичь, - это одно приложение хоста и возможностьКак-нибудь подключите к нему адаптеры.
Я делаю это так: у меня есть многомодульный проект.Шестигранник - это один модуль, а каждый адаптер - это другой модуль.У меня есть другой модуль с именем "main", который собирает все вместе и запускает нужные вам адаптеры.Например, вы можете поместить нужные адаптеры для каждого порта в файл свойств.Вот как я это делаю.