Я пытаюсь изучить Onion Architecture и, насколько я понимаю, я организовал свое решение следующим образом:
Домен
- Domain.Entities (бизнес-объекты)
- Domain.Interfaces (Интерфейсы для доменных служб и репозиториев)
- Domain.Services (Реализация для интерфейсов доменных служб)
Инфраструктура
- Infrastructure.Data (реализация для репозиториев и единицы работы с EF)
- Infrastructure.DependencyResolution (реализация для IoC с Unity)
UI
- UI.WebMVC
И вот мои вопросы:
1- Я прав с этими слоями или что-то упустил?
2- Что касается услуг, связанных с определенной технологией (например, ведение журнала), где должны быть их интерфейсы (Domain.Interfaces или Infrastructure.Interfaces)?
3- Насколько я понимаю, Служба домена обработает мой бизнес-вариант использования, так каковы преимущества, которые я получу от службы приложений
4- В чем разница между доменной службой и службой приложений и в каком проекте должны быть интерфейсы службы приложений?
5- Должен ли процесс авторизации пользователя быть частью служб приложений или доменных служб?