ASP.NET MVP против ASP.NET MVC - PullRequest
       3

ASP.NET MVP против ASP.NET MVC

9 голосов
/ 07 декабря 2010

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

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

Здесь очень много поддержки Sharepoint. Насколько я понимаю, Sharepoint - это в основном ASP.NET, использующий MVP.

Другие хотят использовать обычный ASP.NET, используя более новый стиль MVC.

Мне также сказали, что они не могут хорошо играть вместе.

Похоже, что Sharepoint (и ASP.NET MVP) станет победителем. Прежде чем мы пойдем в этом направлении, я хотел спросить:

Если мы решим основывать следующие 5-10 лет наших усилий по разработке на Sharepoint (то есть ASP.NET и MVP), от чего мы отказываемся? И это большое дело или просто «приятно иметь», которые мы теряем.

(Должно быть довольно сложно заставить руководство сменить направление.)

Ответы [ 5 ]

11 голосов
/ 07 декабря 2010

Что бы ни случилось, WebForms в какой-то момент превратится в большой безобразный беспорядок.Если вам нужно использовать веб-формы, не используйте модель обратной передачи и цикла lify-цикла - используйте aspx-страницы с докладчиками для запросов get и иметь обработчик или пустой aspx для каждого сообщения.Так будет больше похоже на MVC

9 голосов
/ 07 декабря 2010

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

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

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

Если у вас в основном новички в разработке, Webforms могут быть лучше. Если у вас есть более опытные разработчики, даже если они новички в asp.net, MVC может быть лучшим выбором.

Если вы создаете ориентированные на данные приложения со сложными взаимосвязями, то MVC может быть лучшим выбором.

Существует множество причин, по которым вы можете выбрать одну или другую, и это всегда "зависит от ...".

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

2 голосов
/ 09 ноября 2012

Если вы выполняете постбэк страницы для обработки событий, я бы предложил MVP, так как Presenter будет содержать обработчики событий для всех версий представления (различные пользовательские интерфейсы, такие как веб-страницы, iPhone, Android, формы Windows), с единообразным поведением. Другими словами, вам не нужно записывать управляющие события в коде для каждого представления. По крайней мере, они бы ничего не делали, кроме как вызывали метод обработчика событий Presenter или вызывали событие, которое обрабатывает Presenter.

Если вы создаете веб-приложения и интенсивно используете Ajax для обновления страниц с одним или несколькими веб-представлениями и кросс-браузерной библиотекой JavaScript, такой как jQuery, я бы порекомендовал MVC.

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

2 голосов
/ 07 декабря 2010

Я был сильным сторонником разделения интересов (SOC), встроенного в программное обеспечение, независимо от того, используете ли вы MVVM, MVC или MVP, все три шаблона довольно хороши. Поскольку это полностью относится к ASP.NET, я бы сказал, что вы должны использовать MVC3.

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

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

Из MVC, MVC2 и MVC3 набор функций, который поставляется с MVC3 и механизмом просмотра Razor, является наиболее надежным. Вы получаете все улучшения, которые пришли с MVC2 вместе с гораздо более чистыми представлениями, которые позволяет вам создавать движок представления Razor, кроме того, вы получаете глобальные фильтры действий и запеченные шаблоны на стороне клиента jQuery (я уверен на 90%).

Я бы также подошел к MVC очень похоже на MVVM, где у меня было бы 3 различных набора сущностей, модели моего представления, сущности моего домена и физические модели базы данных. (Последний набор может или не может быть сущностями домена, я начал понимать, что попытка заставить ваши чистые доменные сущности работать со слоем базы данных может быть неоптимальной на продвинутых этапах)

0 голосов
/ 13 января 2011

По моему опыту, строго соблюдаемый шаблон MVP был намного лучше для ориентированных на данные сложных LOB-приложений.

MVP предлагает больше разделения, так как ваши докладчики не знают о веб-ориентированных концепциях. Покрытие кода также увеличивается, так как у вас нет условного кода в представлениях. У нас есть несколько приложений, в которых презентатор используется между веб-приложениями и приложениями Windows. Ваш докладчик ссылается на полную абстракцию представления, asp.net MVC полагается на абстракции зависимых представлений (HttpContextBase и т. Д.)

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

Есть несколько надежных платформ для поддержки MVP в веб-формах:

http://www.codeguru.com/csharp/.net/net_general/patterns/article.php/c15173

webformsmvp dot com.

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