Мое понимание сервисов приложений заключается в том, что они связывают между доменом и пользовательским интерфейсом. Другими словами, они служат контроллеру для выполнения операций над доменом.Модель домена службы приложений DDD для просмотра сопоставления моделей
У меня есть следующий макет проекта в моем приложении:
- домена Ядра
- Инфраструктура
- Service Interfaces
- Web UI
- ViewModels
- Просмотров
- Контроллеры
- Услуги (Application Services)
Мои Service Interfaces
лежит вне проекта Web UI
. Затем в проекте Web UI
я реализую интерфейсы служб под Services
.
Однако эта структура немного ошибочна и создает круговую зависимость, когда мы применяем это на практике. Я попытался следовать архитектуре в этой ссылке. https://www.develop.com/onionarchitecture
Для данной услуги я хочу передать модель представления, выполнить операции над доменом на основе модели представления, а затем вернуть обновленную модель представления. Является ли этот подход неправильным?
Насколько я понимаю, что служба приложения по существу принимает модель представления в качестве параметра, обновляет некоторые детали в модели домена и представления, если это необходимо, а затем возвращает модель представления?
Или
ли служба приложений иметь дело только с C# и типов данных моделей предметной области в качестве параметра и возвращает те же тип данных? Другими словами, не получается или не задана какая-либо информация в модели представления. На самом деле не известно, что существует модель представления.
Мне просто нужно уточнить, что является лучшим подходом от строгого подхода DDD.
Службы приложений обычно не живут в слое представления (UI), для этой цели есть прикладной уровень. – plalx
Нужно ли создавать другой проект для реализации службы или размещать их в разделе «Службы», где лежат мои интерфейсы? –
Вы можете хранить все вместе в одном проекте, если вы выделяете каталог для каждого компонента/слоя. – MikeSW