Хабы: C#
Предположим вам надо написать десктопное приложение, где будет свое состояние с набором коллекций и других свойств. Объекты для отображения могут храниться древовидно, содержать различные свойства со своей логикой и.т.д.
Для быстрой реализации этого, надо, как минимум, создать 3 проекта: проект с формочками, проект с доменное логикой, там где будут манипуляции с объектами: вставкой, удалением и.т.д. И проест с инфраструктурой: работой с бд, файловой системой и.т.д.
Зависимости проектов будут такими: проекты с формочками и инфрой с бд будут зависеть от проекта с доменными моделями, там где основное поведение и бизнес логика приложения.
Формочки используют интерфейсы с методами из доменного проекта, а инфра реализует доменные интерфейса для доступа к данным, работе с фалами и другие взаимодействия, которые не важны в бизнес логике.
Итого так реализуется основное ядро чистой архитектуры. Но что дальше?
Дальше встает вопрос можно ли использовать доменные объекты в представлении? Много кто считает нет. У этого есть свои обоснования, например, различные "свои" привязки к представлению, такие как атрибуты.
Читать далее