MVP против MVC шаблонов проектирования для Интернета и мобильных устройств? - PullRequest
0 голосов
/ 15 февраля 2012

Для предстоящего проекта, я смотрю на MVP в качестве опции над MVC.Я хорошо знаком с MVC и люблю его, и просто пытаюсь понять, получу ли я что-нибудь, используя MVP.

Что я понял о MVP, так это то, что он использует ASP.Net view engine / MVC # (который яне особенно нравится), который использует ViewState - добавляет кучу дополнительного контента на визуализированную веб-страницу, а не встроенные функции маршрутизации (может быть записан отдельно в Global.asax).

MVC /Razor, с другой стороны, отображает очень чистый HTML.

Некоторые статьи, такие как эта , похоже, склоняются к использованию MVP для нескольких представлений, однако в свете MVC3 с jQuery MobileЕсть некоторые фантастические вещи, которые могут быть выполнены с этим MVC.

Как они сравниваются с тем, что в настоящее время доступно с MVP?Каковы некоторые плюсы / минусы или потенциальные ловушки использования MVP поверх MVC?

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

Я знаю, что вы будете недовольны следующим, но ищете варианты: Хотя это приложение предлагает все необходимые функции, при реализации этого решения, насколько сложно связать дополнительные приложения MVC(Я знаю, что выглядит некрасиво)?Если бы это было то, что мы должны были рассмотреть (объединяя оба), было бы лучше обернуть приложение в MVC (маршрутизация) и содержать приложение MVP внутри?

Причиной этого является пошаговое обновление функциипроцесс, где требуется реализовать новую функцию (которая построена с использованием инфраструктуры MVC; остальная часть системы - нет).В будущем планируется полностью изменить существующую структуру на MVC или MVP.

Спасибо.

1 Ответ

1 голос
/ 20 февраля 2012

Вы, кажется, путаете шаблоны с фреймворками здесь.

Как MVC, так и MVP являются шаблонами проектирования, ASP.net MVC и MVC #, с другой стороны, являются средами, которые реализуют шаблоны проектирования MVC / MVP.

Существует огромная путаница и множество противоречивой информации в Интернете о разнице между паттернами MVC и MVP и фактом, что Мартин Фаулер, парень, который сделал MVP популярным с тех пор, как "удалил" паттерн в пользу двух новых. Смотри здесь

Обе схемы существуют для того, чтобы помочь разделению проблем, что точно, но кроме того, что между ними действительно нет большой разницы, единственное, что я обнаружил, это то, что MVC имеет контроллер для виджета на экране, где как MVP - один на экран, хотя даже это правило нарушается, если у вас сложный экран. Я все еще не уверен и использую термины взаимозаменяемо.

Одна вещь, которую я вижу снова и снова, заключается в том, что в MVP представление отвечает за создание докладчика, однако это не является частью исходного дизайна. По-видимому, это связано с тем, что старые веб-фреймворки, такие как веб-формы asp.net, были ориентированы на страницы. У вас не было возможности изменить это, и именно страница (вид) создала докладчика. По сути, фреймворк мешает паттерну, и поэтому был сделан хак, чтобы подковать его. К сожалению, это, похоже, стало дефактным способом описания MVP.

В основном моя стена текста выше пытается сказать, что если вы хотите правильно выполнить MVC, используйте специально разработанную для этого среду, ASP.net MVC - хороший выбор, он является частью стека MS, хорошо поддерживается (MVC # не обновлялся с 2008 года) и если вы уже довольны этим, потеря производительности при попытке научиться чему-то другому не стоит того, imo

...