ASP.NET MVC против фабрики программного обеспечения веб-клиента (WCSF) - PullRequest
15 голосов
/ 10 сентября 2008

Недавно я провел небольшое исследование различных типов архитектур Model View, и мне нужно решить, какую из них использовать для будущей внутренней разработки. Поскольку в настоящее время я работаю в магазине Microsoft, обладающем навыками ASP.NET, мне кажется, что я могу выбрать между ASP.NET MVC и WCSF (возможно, монорельсовая дорога исключена, поскольку не будет поддерживаться Microsoft).

После прочтения платформы ASP.NET MVC, используя WCSF в качестве критерия , я поднял следующие пункты:

  • ASP.NET MVC не может использовать веб-элементы управления, которые полагаются на обратную передачу, тогда как WCSF может.
  • У вас больше контроля над URL-адресами на сайте ASP.NET MVC, а не на сайте WCSF.
  • Сайт ASP.NET MVC, вероятно, будет легче протестировать, чем эквивалентная версия WCSF.
  • Похоже, что WCSF все еще использует код для управления событиями пользовательского интерфейса при некоторых обстоятельствах, но ASP.NET MVC этого не позволяет.

Каковы другие соображения?
Что я неправильно понял?
Есть ли кто-нибудь, кто использовал оба фреймворка и в любом случае имеет совет?

Ответы [ 7 ]

15 голосов
/ 10 сентября 2008

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

Вы должны думать о WCSF как о руководстве по использованию существующей инфраструктуры WebForms, особенно о представлении Model-View-Presenter, которое поможет обеспечить разделение интересов. Это также увеличивает тестируемость полученного кода.

У вас больше контроля над URL-адресами на сайте ASP.NET MVC, а не на сайте WCSF.

Если вы можете выбрать 3.5 SP1, вы можете использовать новую систему маршрутизации с традиционным сайтом WebForms. Маршрутизация не ограничивается MVC. Например, взгляните на динамические данные (которые также поставляются с 3.5 SP1).

Сайт ASP.NET MVC, вероятно, будет легче протестировать, чем эквивалентная версия WCSF.

Это так, потому что он использует новые классы абстракций для HttpContext, HttpRequest, HttpResponse и т. Д. Нет ничего более проверяемого в шаблоне MVC, чем шаблон MVP. Они оба являются экземплярами «Раздельного представления», и оба повышают тестируемость.

Похоже, что WCSF все еще использует код для управления событиями пользовательского интерфейса при некоторых обстоятельствах, но ASP.NET не позволяет этого.

В Model-View-Presenter, поскольку внешний мир взаимодействует с представлениями (т. Е. URL указывает на представление), представления, естественно, будут реагировать на эти события. Они должны быть максимально простыми: позвонить докладчику или предложить события, на которые докладчик может подписаться.

Model-View-Controller преодолевает это ограничение, взаимодействуя с контроллерами внешнего мира. Это означает, что ваши взгляды могут быть намного «тупее» в отношении непрезентационных вещей.

Что касается того, что вы должны использовать, я думаю, что ответ сводится к тому, какой из них лучше всего соответствует целям вашего проекта. Иногда предпочтение отдается WebForms и богатому доступному стороннему поставщику управления, а в некоторых случаях грубая простота и детализированное управление HTML предпочтут MVC.

6 голосов
/ 17 декабря 2009

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

2 голосов
/ 04 февраля 2009

Мы выбрали WCSF, выполнив точно такую ​​же оценку. Мы чувствовали, что шаблон MVP дал нам больше возможностей, т.е. возможность использовать серверные элементы управления. Наша команда разработчиков в основном состоит из программистов из множества дисциплин, таких как C ++, Biztalk, Web и т. Д., Но все они были сосредоточены в основном на разработке типов MS, поэтому обучение принятию шаблонов было не таким уж большим для нашей команды.

Мы более чем довольны нашим выбором.

1 голос
/ 25 января 2012

Сайт ASP.NET MVC, вероятно, будет легче протестировать, чем эквивалентный Версия WCSF.

Это правда, потому что он использует новые классы абстракций для HttpContext, HttpRequest, HttpResponse и т. Д. Там нет ничего по своей природе более проверяемый шаблон MVC, чем шаблон MVP. Они оба являются экземплярами «Отдельной презентации», и оба увеличивают проверяемость.

Вероятно, это спорно, но есть литература предложить используя дизайн модели MVP легче модульного тестирования затем модель MVC дизайн, если у вас есть взгляды, которые упакованы с логикой. Подводя итог, можно сказать, что в модели проектирования MVP Presenter обрабатывает работу, которую может выполнять представление в модели проектирования MVC. Логика, которая может содержаться в MVC View, не облегчает модульное тестирование. Вот некоторые ссылки на литературу, которую я читал, которая охватывала бы эту концепцию, и причины, по которым держать ваш свет View лучше по многим причинам, включая облегчение модульного тестирования.

http://martinfowler.com/eaaDev/uiArchs.html

http://martinfowler.com/eaaDev/SupervisingPresenter.html

http://martinfowler.com/eaaDev/PassiveScreen.html

1 голос
/ 17 декабря 2009

MVC - намного более простая парадигма и больше похожа на то, как все другие фреймворки занимаются веб-разработкой. WebForms просто слишком много перепрыгивают через обручи и слишком много уровней абстракции, чтобы попытаться достичь простоты. ИМХО, через несколько лет MVC станет архитектурой ASP.NET по умолчанию, поскольку все больше и больше людей осознают простоту и легкость разработки и тестирования, которые она приносит с нами. Я занимаюсь разработкой MVC уже полтора года и даже не подумал бы вернуться к WebForms с новым проектом.

1 голос
/ 09 октября 2008

Вы также можете учитывать фоны ваших разработчиков (если таковые уже были определены).

Если они имеют строгий опыт работы с asp.net, они будут чувствовать себя более комфортно в WCSF (хотя, по моему опыту, им все же потребовалось несколько недель, чтобы по-настоящему освоиться с MVP).

Если они имеют происхождение из java / rails или ранее использовали другие архитектуры MVC, то, очевидно, они там будут счастливее (и, по моему опыту, очень насмешливо относятся ко всему, кроме MVC).

0 голосов
/ 10 сентября 2008

Почему бы не присоединиться к Нортвинду и посмотреть, что лучше всего подходит вам и вашей ситуации?

...