Мне бы очень хотелось, чтобы это также было разъяснено, поскольку я обнаружил, что верно противоположное, и я считаю, что stackoverflow.com является свидетельством пригодности MVC для приложений, управляемых данными.
Я не удосужился прочитать вторую ссылку, но утверждения в первой не соответствуют действительности, и многие из них кажутся мне неправильными. Тем не менее, заявленных недостатков WebForms будет достаточно, чтобы я не смог использовать их для приложений, интенсивно использующих данные:
- Логика пользовательского интерфейса связана с кодом, и поэтому ее трудно отделить.
- Сложнее провести модульное тестирование, поэтому сложно использовать TDD.
- Большие размеры страниц из-за управления состоянием просмотра.
Заявленные слабые стороны MVC довольно хрупкие:
- Не управляемый событиями, поэтому людям, знающим только веб-формы Asp.Net, может быть сложно обдумать это.
- Поддержка сторонней библиотеки управления не так сильна.
- Нет ViewState (это тоже сила).
Первый из них можно рассматривать как плюс, так и минус. Второе неверно, поскольку приложения MVC могут использовать традиционные серверные элементы управления, если они того пожелают, а также использовать богатую библиотеку клиентских элементов управления и библиотек. Третий, ну, я не думаю, что мне даже нужно говорить с этим ...
Вы должны быть осторожны, когда читаете подобные статьи в Интернете - они звучат авторитетно и всесторонне, но где мясо? Почему проблема с указанными недостатками? Недостаточно просто высказать мнение как факт. Они должны быть подкреплены метриками, например, при использовании платформы x над y, разработчики, незнакомые с любой из этих платформ, смогли завершить приложение на 30% быстрее, или платформа x привела к сокращению на 25% строк кода или меньшему количеству уровней косвенности, или что угодно.
Идея о том, что RAD является плюсом, требует тщательного изучения: RAD работает быстро, пока вы не захотите сделать что-то, для чего не был разработан определенный элемент управления, и тогда вы столкнетесь с кирпичной стеной. Это негерметичная абстракция , и когда она терпит неудачу, вы внезапно сталкиваетесь со всей сложностью понимания структуры проектирования и кода данного элемента управления. Это может быть серьезным препятствием, и исходный код для этих элементов управления не всегда доступен.