Ответ 1
В последнее время у Иана Купера была хорошая статья:
Я читал несколько вещей об ASP.NET MVC, SOLID и т.д., и я пытаюсь выяснить простой "рецепт" для небольших приложений ASP.NET MVC, которые бы поставили эти понятия вместе; проблема, с которой меня больше всего беспокоит, заканчивается контроллерами, которые являются слишком сложными и похожими на файлы с кодом в веб-формах, причем в них используется вся бизнес-логика.
Я рассматриваю следующую архитектуру для небольшого приложения, управляемого данными:
IRepository<T>
, используйте инъекцию зависимостей и где мой db-код будет находиться; только получает и возвращает POCO.Я рассматриваю возможность предоставления услуг между контроллерами и моделями, но если они будут просто передавать вызовы методов, я не уверен, насколько это было бы полезно.
Наконец, должны быть модульные тесты, охватывающие код модели, и тесты с модулем + интеграции, охватывающие код репозитория (по возможности "красно-зеленая" практика, если это возможно)
Мысли?
В последнее время у Иана Купера была хорошая статья:
Простой рецепт: (представление) Уровень представления с использованием ASP.NET, ( контроллер) Код Behings или AJAX Services Layer, ( модель) Уровни приложений, уровень бизнес-модели и уровень доступа к данным Persistance/Data.
Конечно, вы можете нарезать и нарезать множество способов справиться со сложностями, чтобы создать четко читаемое и понятное приложение.
Для недавнего дискурса по этому вопросу, который я нашел очень хорошим, ознакомьтесь с этой недавно опубликованной книгой: Microsoft.NET: приложения для архивирования для Enterprise.
Эти пошаговые руководства весьма полезны:
Пошаговое руководство: создание базового проекта MVC с помощью модульных тестов в Visual Studio
Смотрите также: aspnet-mvc-structuring-controllers
Rob Conery имеет лучший ответ IMO.
Посмотрите его приложение MVC Storefront, которое поставляется с полным исходный код и видеоуроки.