Вы можете реализовать свой бизнес-уровень (то есть модель) с вашими сущностями, агрегатами, репозиториями и сервисами. Службы вызывают хранилища, которые извлекают данные из вашего DAL в виде сущностей.
Это можно установить в отдельном отдельном проекте, который является не чем иным, как DLL.
Далее, получите ваше приложение MVC, которое на самом деле является вашим уровнем представления, и пусть оно использует ваш проект бизнес-уровня. контроллеры будут работать с вашими Сервисами и перекачивать данные, сгенерированные этими Сервисами, в ViewData, которые затем добавляются в ваши Представления.
Контроллеры должны иметь дело только с проблемами маршрутизации, такими как отображаемые представления, основанные на вводе данных пользователем из форм, строк запросов, файлов cookie, сеансов и т. Д.
Сообщество "пуристов MVC" вызвало бурю негодования по поводу обоснованности использования Oxite в качестве хорошего примера MVC. Суть в том, что бизнес-логика не должна содержаться в контроллерах, что, я уверен, вы увидите в ходе реорганизации Oxite в ближайшие месяцы.