ASP.NET MVC и приложения для работы с данными - PullRequest
1 голос
/ 30 октября 2009

Я изучаю ASP.NET MVC уже около месяца, и я, конечно, продал его преимущества, но я понимаю, что это применимо не во всех ситуациях.

В нескольких местах я читал, что ASP.NET MVC не идеален для приложений с интенсивным использованием данных:

  • Пример 1 : «Приложение, управляемое данными - жизнь была бы НАМНОГО проще при использовании WebForms, если приложение сильно загружено данными»
  • Пример 2 : книга Ника Берарди предлагает вам использовать веб-формы, если ваше приложение "перегружено данными"

Может ли кто-то уточнить, почему ASP.NET MVC плохо подходит для приложений с большими объемами данных и почему веб-формы более уместны? Кроме того, где можно провести черту между приложениями, насыщенными данными, и другими приложениями? Мы говорим о количестве данных (миллионы записей) или о больших моделях данных?

Ответы [ 3 ]

9 голосов
/ 30 октября 2009

Мне бы очень хотелось, чтобы это также было разъяснено, поскольку я обнаружил, что верно противоположное, и я считаю, что stackoverflow.com является свидетельством пригодности MVC для приложений, управляемых данными.

Я не удосужился прочитать вторую ссылку, но утверждения в первой не соответствуют действительности, и многие из них кажутся мне неправильными. Тем не менее, заявленных недостатков WebForms будет достаточно, чтобы я не смог использовать их для приложений, интенсивно использующих данные:

  • Логика пользовательского интерфейса связана с кодом, и поэтому ее трудно отделить.
  • Сложнее провести модульное тестирование, поэтому сложно использовать TDD.
  • Большие размеры страниц из-за управления состоянием просмотра.

Заявленные слабые стороны MVC довольно хрупкие:

  • Не управляемый событиями, поэтому людям, знающим только веб-формы Asp.Net, может быть сложно обдумать это.
  • Поддержка сторонней библиотеки управления не так сильна.
  • Нет ViewState (это тоже сила).

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

Вы должны быть осторожны, когда читаете подобные статьи в Интернете - они звучат авторитетно и всесторонне, но где мясо? Почему проблема с указанными недостатками? Недостаточно просто высказать мнение как факт. Они должны быть подкреплены метриками, например, при использовании платформы x над y, разработчики, незнакомые с любой из этих платформ, смогли завершить приложение на 30% быстрее, или платформа x привела к сокращению на 25% строк кода или меньшему количеству уровней косвенности, или что угодно.

Идея о том, что RAD является плюсом, требует тщательного изучения: RAD работает быстро, пока вы не захотите сделать что-то, для чего не был разработан определенный элемент управления, и тогда вы столкнетесь с кирпичной стеной. Это негерметичная абстракция , и когда она терпит неудачу, вы внезапно сталкиваетесь со всей сложностью понимания структуры проектирования и кода данного элемента управления. Это может быть серьезным препятствием, и исходный код для этих элементов управления не всегда доступен.

2 голосов
/ 30 октября 2009

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

Однако ORM (такие как L2Sql, EF и Subsonic), связыватели моделей и генераторы форм (я не могу найти ссылку сейчас) в значительной степени связывают эти аргументы.

Честно говоря, я его не покупаю.

1 голос
/ 30 октября 2009

Я полагаю, что эти авторы говорят о возможности перетаскивания элементов управления данными на страницу, таких как GridViews, FormViews и другие объекты с привязкой к данным.

Скажем, у вас есть база данных для вашего ИТ-отдела, с таблицей для компьютеров, таблицей для принтеров, одной для программного обеспечения и т. Д. Интерфейс для этого - очень простая система управления данными, по сути прославленный MS Access.

Вместо того чтобы писать элегантное веб-приложение с красивым HTML и библиотекой классов, вы можете просто создать быстрое / грязное приложение WebForms, перетаскивая источники данных и элементы управления на страницу в Visual Studio.

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