Процесс принятия решения для меня довольно прост. Все новые разработки будут сделаны с ASP.NET MVC. Существующие сайты, которые нуждаются в незначительных модификациях, останутся веб-формами. Существующие сайты, которые нуждаются в серьезных изменениях, будут кандидатами для перехода на MVC.
Основная причина, по которой я переключаюсь, связана с тестируемостью и дизайном. Веб-сайты IMO MVC значительно более тестируемы. Я могу протестировать все, кроме логики представления, с помощью модульных тестов, и, используя и тестируя расширения HtmlHelper, я могу даже протестировать достаточное количество логики представления. С WebForms мне пришлось перепрыгивать через множество обручей, чтобы протестировать код, и в результате я оставил большую часть приложения для ручного тестирования.
Я также чувствую, что архитектура просто лучше с точки зрения дизайна. Из-за четкого разделения интересов менее соблазнительно вставить бизнес-логику в неправильное место (например, представление). Это значительно упрощает понимание и понимание приложения. Я также могу повторно использовать даже просмотр кода с меньшими усилиями, потому что у меня нет лишних кусочков логики из других слоев, которые мешают.
Единственный реальный недостаток, который я вижу в настоящее время, заключается в том, что он не настолько зрелый, и у вас еще нет такого количества компонентов, которые можно использовать повторно. Я ожидаю, что со временем все изменится. Кроме того, даже несмотря на то, что есть возможность смешивать MVC с WebForms, я не рассматриваю модернизацию существующих приложений как жизнеспособную альтернативу, если не будет проделана значительная другая работа. Опять же, только мое мнение, но я бы предпочел начать с нуля с MVC, чем пытаться заставить существующее приложение работать с ним. Я полагаю, это будет зависеть от размера приложения, но все, что имеет значительное количество страниц, будет иметь много исключений маршрутизации.