Должны ли новые веб-приложения следовать шаблону MVC или MVP? - PullRequest
6 голосов
/ 08 октября 2008

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

Если вы не знакомы с MVC и / или MVP, хороший вопрос для проверки: «Что такое MVP и MVC и в чем разница?» . У него много хороших ответов, в том числе ссылки на различные сайты, которые разбивают каждый из них.

Ответы [ 8 ]

3 голосов
/ 08 октября 2008

MVP / MVC хорошо работает в веб-приложениях, потому что комбинация HTTP глагол + URL является очень хорошим способом определить, какое действие предпринять. Есть причины не использовать его, например, если ваша команда имеет большой опыт работы с другой платформой, но я бы обычно рекомендовал фреймворк MVP / MVC. Ваша заявка будет завершена быстрее с более высоким качеством.

2 голосов
/ 09 апреля 2012

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

MVC подходит для простых сценариев на стороне сервера. В MVC разработчики всегда стараются держать контроллер очень скудным. В основном контроллер предназначен только для выбора подходящей модели и отражения в представлении. Но в современных веб-приложениях часть View радикально изменилась и стала достаточно сложной, чтобы создать большой, толстый и грязный контроллер. Поэтому теперь нам нужно новое место для размещения сложной логики управления пользовательского интерфейса. Здесь приходит P из MVP , который является ведущим. Таким образом, докладчики несут ответственность за управление логикой для конкретного компонента пользовательского интерфейса. Не волнуйтесь, контроллер все еще здесь, он называется Application Controller . Что в конечном итоге отвечает за переключение между сравнительно большими компонентами приложения. Так что MVP также можно сказать MVPC (!!) . Кстати, это был мой способ понять MVP и, очевидно, не какое-либо основное правило.

Так что я уже склонен к MVP для сложных веб-приложений.

2 голосов
/ 08 октября 2008

Оба хороших варианта.

Я бы выбрал MVC, поскольку он имеет более широкое распространение и его легче понять и использовать для разработчиков (HTML / CSS).

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

1 голос
/ 10 февраля 2009

Ваш вопрос был "должен ли я использовать один из этих шаблонов проектирования".

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

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

Суть слабой связи заключается в том, что вы можете позже изменить свою БД или пользовательский интерфейс или повторно использовать бизнес-логику. Часто это никогда не происходит. Вы должны понимать, что для реализации любого из этих шаблонов потребуется больше времени и немного усложните код. Итак, я настоятельно рекомендую действительно обдумать это и взвесить ваши варианты. Зачастую вы можете предложить лучшее решение быстрее, используя очень простую архитектуру, которая выполняет работу и снижает сложность!

0 голосов
/ 27 февраля 2009

Мне нравятся обе модели. Моя лучшая практика - выбирать шаблон, который всегда лучше, чем НЕТ.

Я разработал много приложений по обоим шаблонам, и лично я чувствую, что когда вы являетесь разработчиком RAD и не очень хорошо разбираетесь с CSS и javascript (в основном разработчики winforms, которые хотят создать веб-приложение, без обид; ) Вам следует использовать шаблон MVP, поскольку его очень легко использовать с проектами веб-приложений.

Но когда вы знаете много CSS и javascript, вы должны рассмотреть шаблон ASP.NET MVC.

0 голосов
/ 25 января 2009

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

0 голосов
/ 25 января 2009

Я думаю, что вы должны. Их сложнее реализовать, особенно в мире MS, потому что они сделали все, чтобы подтолкнуть веб-формы и упростить создание веб-приложений.
Используя их, вы программируете прямо и чувствуете, что проделали большую работу. Но их становится медленнее и сложнее поддерживать после того, как ваш сайт становится больше.
Использование MVC и MVP позволяет разделить модель (базовые классы, представляющие домен, с которым вы работаете), контроллер и представления. Лучше всего то, что вы можете повторно использовать свою модель в других приложениях, таких как мобильные приложения или приложения для Windows. В этом случае они имеют больше общего, чем просто база данных, поэтому вы должны писать меньше кода. Вам просто нужно написать контроллеры и представления.
Я новичок в этом, но вижу преимущества, потому что когда мне нужно было что-то изменить в одном месте, что-то другое рухнуло в другом месте (так что вы также должны получить слабую связь с учётом и написанием юнит-тестов). Написание тестов невозможно в веб-формах.

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

0 голосов
/ 08 октября 2008

Это зависит от используемой вами платформы. Просто используйте то, что он поддерживает. Большинство веб-платформ, которые я видел, используют шаблон фронт-контроллера и называют его MVC или MVP.

...