Оба являются шаблонами, пытающимися отделить презентационную и бизнес-логику, отделяя бизнес-логику от аспектов пользовательского интерфейса
Архитектурно, MVP - это подход, основанный на использовании Page Controller, где MVC - подход на основе Front Controller. Это означает, что в стандартном веб-формате MVP жизненный цикл страницы просто усиливается путем извлечения бизнес-логики из кода позади. Другими словами, страница является одним из обслуживающих HTTP-запросов. Другими словами, MVP IMHO является эволюционным типом расширения веб-формы. MVC с другой стороны полностью изменяет игру, потому что запрос перехватывается классом контроллера до загрузки страницы, бизнес-логика выполняется там, а затем в конечном результате контроллера обрабатывает данные, только что сбрасываемые на страницу («вид»). В этом смысл, MVC (по крайней мере, мне) много смотрит на Supervising Controller вкус MVP, улучшенный с помощью механизма маршрутизации
. Оба из них позволяют TDD и имеют недостатки и недостатки.
Решение о том, как выбрать один из них, должно быть основано на том, сколько времени было потрачено на создание веб-формы веб-формы ASP NET. Если бы вы считали себя хорошим в веб-формах, я бы предложил MVP. Если бы вы чувствовали себя не так комфортно в таких вещах, как жизненный цикл страницы и т. Д. MVC мог бы быть здесь.
Вот еще одна ссылка для блога, дающая немного более подробную информацию по этой теме