Я читал несколько вещей о ASP.NET MVC, SOLID и т. Д., И я пытаюсь найти простой «рецепт» для приложений ASP.NET MVC малого и среднего размера, который бы использовал эти понятия все вместе; проблема, которая меня больше всего беспокоит, - это слишком сложные контроллеры, похожие на файлы с выделенным кодом в веб-формах, со всеми типами бизнес-логики.
Я рассматриваю следующую архитектуру для небольшого приложения, управляемого данными:
- Контроллеры: обрабатывают только запросы, вызывают соответствующую службу и возвращают результат действия в View;
- Модели: POCO, обрабатывают всю бизнес-логику, авторизацию и т. Д. Зависит от репозиториев, полностью игнорируя постоянную инфраструктуру.
- Репозитории: внедрить
IRepository<T>
, использовать внедрение зависимостей и где будет находиться мой код БД; только получает и возвращает POCO.
Я рассматриваю возможность предоставления услуг между контроллерами и моделями, но если они просто передадут вызовы методов, я не уверен, насколько это будет полезно.
Наконец, должны быть модульные тесты, охватывающие код модели, и модульные тесты + интеграция, охватывающие код репозитория (следуя практике «красно-зеленых», если это возможно)
Мысли