Имеет ли смысл группировать все интерфейсы вашего уровня домена (модули, модели, объекты, доменные службы и т.д.) на уровне инфраструктуры? Если нет, имеет ли смысл создавать "общий" проект/компонент, который группирует их все в общую библиотеку? В конце концов, определение "Уровень инфраструктуры" включает в себя "разделяемые библиотеки для слоев домена, приложения и интерфейса пользователя".
Я подумываю о разработке моей кодовой базы вокруг уровней DDD: пользовательский интерфейс, приложение, домен, инфраструктура. Это создало бы 4 проекта с уважением. Я хочу сказать, что вы ссылаетесь на уровень инфраструктуры на уровне домена. Но если вы определяете интерфейсы в проекте "Уровень домена", скажем, для IPost, тогда у вас будет ссылка на ссылку, когда вам нужно будет ссылаться на проект "Уровень домена" из проекта "Инфраструктура", когда вы определяете метод IPostRepository.Save(IPost post), Следовательно, идея "определить все интерфейсы в общей библиотеке".
Возможно, репозитории не должны ожидать сохранения объекта (IPostRepository.Save(IPost post), но вместо этого ожидайте параметры объекта (это может быть длинный набор параметров в Save()). Учитывая, это может быть идеальной ситуацией, которая показывает, когда объект становится слишком сложным, и дополнительные объекты Value должны быть рассмотрены в нем.
Мысли?