Шаблон MVC позволяет создавать приложения, различные аспекты которых разделены, но достаточно тесно взаимодействуют друг с другом. Эта схема указывает расположение каждого вида логики в приложении. Пользовательский интерфейс располагается в представлении. Логика ввода располагается в контроллере. Бизнес-логика находится в модели. Связь между основными компонентами приложения MVC также облегчает параллельную разработку.
Принципы и особенности:
- Идеален для параллельной разработки:
Так как приложение разбивается на три части (M-V-C), а каждая из этих частей также подразделяется на файлы, становится возможной параллельная разработка разных частей приложения разными разработчиками или командами, практически не пересекаясь в работе, что позволяет работать автономно и без конфликтов.
- URL Routing
Routing позволяет гибко кастомизировать пути, реализовать правильный REST-like routing “из коробки”, а также он более дружелюбен по отношению к поисковым роботам.
- Позволяет применить TDD (Test Driven Development — разработка через тестирование) удобно, без особых усилий и “из коробки”.
- HTML Helper’ы
Предполагается, что Views содержат в себе только HTML-код, без использования программных методов. Для этого существуют HTMLHelper-методы, которые позволяют “обернуть” любой код в одну функцию, а затем вызвать во View только эту функцию, тем самым, поддерживая View чистыми, понятными и без излишнего кода и переменных.
- CRUD “из коробки”
ASP.NET MVC позволяют сгенерировать ресурс (сама модель, а также соответствующие View, Controller и assets — js, css, etc.) с полным набором CRUD-операций, что намного ускоряет процесс создания ресурса.
- Использование Shared View
ASP.NET позволяет использовать один и тот же View-ресурс в разных View, внедряя его, тем самым, позволяет избавиться от дубликатов в коде шаблона.
Структура проекта веб-приложения MVC
По умолчанию проекты MVC содержат следующие папки:
- App_Data — физическое хранилище данных.
- Content — рекомендуемое расположение для добавления файлов содержимого
- Controllers — рекомендуемое расположение для контроллеров.
- Models — предназначена для классов, которые представляют модель приложения для веб-приложения MVC. Эта папка обычно содержит код, который определяет объекты и логику взаимодействия с хранилищем данных.
- Scripts — рекомендуемое расположение для файлов скриптов, поддерживающих приложение.
- Views — рекомендуемое расположение для представлений.
В дополнение к перечисленным выше папкам веб-приложение MVC использует код в файле Global.asax для установки глобальных параметров маршрутизации URL-адресов по умолчанию, а также использует файл Web.config для настройки приложения.