Шаблон архитектуры Model-View-Controller (MVC) разделяет приложение на три основных компонента: модель, представление и контроллер.
- Модели. Объекты моделей являются частями приложения, реализующими логику для домена данных приложения.Объекты моделей часто получают и сохраняют состояние модели в базе данных.В небольших приложениях эта модель подразумевает концептуальное, а не физическое разделение.
- Представления. Представления служат для отображения пользовательского интерфейса приложения. Пользовательский интерфейс обычно создается на основе данных модели. .
- Контроллеры. Контроллеры осуществляют взаимодействие с пользователем, работу с моделью, а также выбор представления, отображающего пользовательский интерфейс. В приложении MVC представления только отображают данные, а контроллер обрабатывает вводимые данные и отвечает на действия пользователя.
Шаблон MVC позволяет создавать приложения, различные аспекты которых разделены, но достаточно тесно взаимодействуют друг с другом. Связь между основными компонентами приложения MVC также облегчает параллельную разработку. Например, один разработчик может создавать представление, другой — логику контроллера, а третий — бизнес-логику модели.
MVP: Данный паттерн опять-таки состоит из трех компонентов.
Только посмотрев на приведенную схему становится ясно, что представлению нет надобности подписываться на изменения модели, теперь контроллер, переименованный в Presenter дает знать представлению об изменениях. Данный подход позволяет создавать абстракцию представления. Реализовать данный паттерн можно при помощи вынесения интерфейсов представления. У каждого представления будут интерфейсы с определенными наборами методов и свойств, необходимых презентеру, презентер в свою очередь инициализируется с данным интерфейсом, подписывается на события представления и по необходимости подсовывает данные. Данный подход позволяет разрабатывать приложения с использованием методологии TDD (Test-driven development). Данный паттерн так же можно применить к ASP.NET.