Я создаю одну сборку на архитектурный слой. (WinUI.exe, BusinessWorkflow.dll, BusinessComponent.dll и т. Д.
Затем по одному физическому файлу на класс.
Так что это "вертикаль".
Пространства имен, концептуально, идут горизонтально, группируя функциональные возможности уровня домена вместе. Вся информация о клиенте отправляется в пространство имен «Клиент», например, «Заказы» входят в «Accounting.AccountsPayable», например.
Поскольку каждая сборка ссылается только на одну, расположенную под ней, - архитектурно, ваш смысл хорошо ограничен соответствующими ссылками в вашей доменной модели.
(Приходится соглашаться с вышесказанным - последовательность важна.