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.