Когда ваш уровень домена или бизнес-уровень (как вы хотите его называть) полностью отделен от вашего пользовательского интерфейса, как он собирает информацию, необходимую для выполнения запроса?
Например, предположим, что пользовательский интерфейс выдает запрос на добавление строки в заказ на покупку, а бизнес-правила определяют, что по какой-то причине вам нужен код авторизации. Как уровень домена сообщает это обратно? Вернуть какой-нибудь код ответа, указывающий, что требуется авторизация? Запустить событие «Нужна авторизация» и посмотреть, ответит ли кто-нибудь? Принять какой-нибудь IAuthorizationProvider, который будет реализовывать пользовательский интерфейс?
Все это кажется нормальным, но я борюсь с взрывом возможных вещей, которые могут понадобиться бизнесу. Просто продолжая пример заказа на покупку, что если некоторым элементам нужен цвет? Некоторым нужен идентификатор декларации об опасных материалах? Некоторым нужно простое «это редко, вы уверены?». Список можно продолжать и продолжать. Такое ощущение, что вы решили, что эта информация определенно относится к слою домена. В одноуровневом приложении вы просто откроете диалоговое окно и получите то, что вам нужно. Как вы делаете это в правильно слоистом приложении?