Является ли ASP.net Model View Presenter стоящим времени? - PullRequest
17 голосов
/ 04 мая 2009

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

Причина, по которой я смотрю на шаблон MVP, заключается в том, что я заметил, что во всех моих проектах ASP.net Webform в коде много кода только для обработки событий, если у меня много серверного контроля в веб-форме, поэтому я искал способ уменьшить это и натолкнуться на шаблон MVP.

Стоит ли пытаться следовать шаблону MVP или просто переключиться на ASP.net MVC?

Ответы [ 5 ]

20 голосов
/ 05 мая 2009

Я бы порекомендовал прочесть следующие две ссылки, чтобы научиться работать с MVP и MVC:

Стоит ли переключаться?
Исходя из того, что вы мне сказали, я бы порекомендовал вам использовать модель Passive MVP, упомянутую в статье выше.

Мои основные предположения:

  1. Ваша работа с существующей кодовой базой приложений WebForms
  2. Для использования существующих функций необходимо использовать элементы управления ThirdParty .Net
  3. Вы работаете с существующими приложениями, и у вас нет времени на их разработку
  4. В любых веб-приложениях ASP.Net, над которыми вы будете работать в будущем, вы можете постепенно применять пассивный MVP и сразу получать преимущества TDD

Ваше мнение (codebehind + aspx) по сути становится тупым и просто выполняет простые задачи:

  • принять информацию, предоставленную докладчиком
  • отвечает на события и предоставляет информацию обратно докладчику

Я широко использовал эту модель для разработки веб-форм, и я не мог представить, что не смогу провести модульное тестирование кода моей модели и Presenter. Как только вы создадите базовую модель, которая не займет много времени и покажет возможности модульного тестирования, работа с веб-формами станет приятной.

Некоторые ссылки на материалы MVP, на которых основана модель, которую я использовал:

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

Надеюсь, это поможет, не стесняйтесь задавать любые вопросы.

16 голосов
/ 04 мая 2009

Если вы начинаете новый проект, тогда ASP.net MVC - лучший выбор. Но если вы просто хотите реорганизовать существующий проект, как вы только что сказали, тогда MVP - вариант, потому что нет простого способа конвертировать эти коды веб-форм в MVC.

3 голосов
/ 06 марта 2012

Я бы пошел Asp.Net MVC, если это новый проект, но я согласен, MVP может быть хорошим примером для устаревших проектов веб-форм.

Вот пример из моего блога: http://www.unit -testing.net / CurrentArticle / How-To-Use-Model-View-Presenter-С-Сеть САШ-WebForms.html

3 голосов
/ 04 мая 2009

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

2 голосов
/ 04 мая 2009

Мое личное мнение таково: если в коде много кода, есть другие способы, кроме принятия M-V-P, для его уменьшения, реорганизации и тестирования.

если ваша страница активно взаимодействует с пользователем (например, кнопки / ссылки включают / отключают, панели и элементы управления появляются / исчезают), M-V-P будет стоить хлопот.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...