Как мне структурировать простое приложение ASP.NET MVC? - PullRequest
10 голосов
/ 09 декабря 2008

Я читал несколько вещей о ASP.NET MVC, SOLID и т. Д., И я пытаюсь найти простой «рецепт» для приложений ASP.NET MVC малого и среднего размера, который бы использовал эти понятия все вместе; проблема, которая меня больше всего беспокоит, - это слишком сложные контроллеры, похожие на файлы с выделенным кодом в веб-формах, со всеми типами бизнес-логики.

Я рассматриваю следующую архитектуру для небольшого приложения, управляемого данными:

  • Контроллеры: обрабатывают только запросы, вызывают соответствующую службу и возвращают результат действия в View;
  • Модели: POCO, обрабатывают всю бизнес-логику, авторизацию и т. Д. Зависит от репозиториев, полностью игнорируя постоянную инфраструктуру.
  • Репозитории: внедрить IRepository<T>, использовать внедрение зависимостей и где будет находиться мой код БД; только получает и возвращает POCO.

Я рассматриваю возможность предоставления услуг между контроллерами и моделями, но если они просто передадут вызовы методов, я не уверен, насколько это будет полезно.

Наконец, должны быть модульные тесты, охватывающие код модели, и модульные тесты + интеграция, охватывающие код репозитория (следуя практике «красно-зеленых», если это возможно)

Мысли

Ответы [ 4 ]

8 голосов
/ 09 декабря 2008

У Иана Купера недавно была хорошая статья именно об этом:

Жировой контроллер

3 голосов
/ 16 декабря 2008

Простой рецепт: (* представление ) Уровень представления с использованием ASP.NET, ( контроллер ) Code Behinds или AJAX Services Layer, ( модель ) Уровень служб приложений , Уровень бизнес-модели и уровень доступа / доступа к данным.

Конечно, вы можете нарезать и нарезать кубиками множество способов справиться со сложностями, чтобы создать четко читаемое и понятное приложение.

Для недавней беседы на эту тему, которую я считаю очень хорошей, ознакомьтесь с этой недавно опубликованной книгой: Microsoft .NET: Разработка приложений для предприятия .

2 голосов
/ 09 декабря 2008

Роб Конери имеет лучший ответ ИМО.

Ознакомьтесь с его приложением MVC Storefront , которое поставляется с полным исходным кодом и видеоуроками .

2 голосов
...