В основном я организую свои проекты следующим образом:
- Solution.Core
- Solution.Configuration
- Solution.Services
- Решение. Презентация
- Solution.Web
Более подробную информацию об этом типе структуры можно найти на Arc wiki
Все сервисные интерфейсы и доменные объекты переходят в Core проект. Службы * Проект 1022 * содержит реализацию Службы приложений . Контроллеры и Модели просмотра в Презентация проекта. Если моему контроллеру нужна служба, я ссылаюсь на его интерфейс в конструкторе контроллера и подключаю его к реальной реализации через контейнер IoC / DI.
Рабочие процессы не будут содержать только бизнес-логику, поэтому я инкапсулирую бизнес-логику в виде небольших сервисов / команд и вызываю их из рабочих процессов. Это оставляет рабочие процессы для проекта Services .
Реализации служб WCF должны быть в Службах Проект и интерфейсы в Core .
Таким образом, он должен выглядеть следующим образом: «Контроллер»> «Служба»> «Рабочий процесс»> Использование других служб для получения результата.
Для служб WCF необходимо настроить конечную точку, и она должна выглядеть как Сервис> Рабочий процесс> Использование других служб для получения результата.