Какая платформа обеспечивает более быструю разработку, веб-формы ASP.NET или MVC? - PullRequest
6 голосов
/ 08 ноября 2008

Есть ли очевидный прирост производительности при разработке с использованием веб-форм или MVC?

Ответы [ 12 ]

9 голосов
/ 08 февраля 2010

Когда вы имеете дело с производительностью ASP.NET MVC по сравнению с ASP.NET Web Forms, рассмотрите этих двух разработчиков.

  1. Общий .NET Developer , имеющий большой опыт написания приложений для WinForms и WebForms.
  2. Универсальный разработчик веб-приложений , который может писать код на C #, но знает HTML, CSS и jQuery / MooTools / etc, как свои пять пальцев.

Generic .NET Developer будет наиболее эффективен при написании кода в исходных ASP.NET Web Forms . Это потому, что они очень хорошо знают модели событий (так как они отражены между WinForms и WebForms) и смогут быстро создать сайт, используя эту ментальную модель.

  • MVC будет иметь большую кривую обучения, потому что это полный отход от его существующих знаний "Как работает сеть" . Вот камни преткновения, которые этот разработчик найдет в MVC:
    • Необходимость изучать HTML и CSS до такой степени, чтобы они понимали, что происходит и как вещи взаимодействуют друг с другом.
    • Изучение javascript и как перезвонить на сервер для ajax.
    • Выясните, как поддерживать состояние, обнаружив, что куки не безопасны, и что у сеанса есть определенные «ошибки».

Generic Web Application Developer будет наиболее эффективным в ASP.NET MVC , потому что среда отражает то, как они думают о веб-приложениях - нет событий, нет состояния приложения и т. Д. Они уже знают, как написать хороший HTML и стилизовать его с помощью CSS, они знают, как написать ajax-вызов обратно на сервер.

  • Веб-формы не являются хорошей моделью для этого разработчика, поскольку это отклонение от его существующих знаний "Как работает сеть" . Это камни преткновения, которые этот разработчик найдет в ASP.NET Web Forms:
    • Потребуется время, чтобы понять, как работает жизненный цикл страницы.
    • ViewState вызовет много проблем, заставит страницу раздуться.
    • Обычно требуется много взлома HttpRequest для исправления всего плохого кода, который выходит из определенных элементов управления WebForm.
    • Изучение того, как обращаться с обратными вызовами AJAX вместо того, чтобы просто использовать имеющиеся у них знания о том, как вызывать URL из jQuery.

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

Я разработчик № 2, я написал веб-приложения (большинство из них небольшие) на Ruby on Rails, Django, ASP.NET Web Forms и ASP.NET MVC. Знание веб-разработки между этими 3 средами практически взаимозаменяемо (за исключением необходимости знать язык хостинга - ruby, python, c #).

Самое неприятное, что я нахожу в ASP.NET Web Forms, это то, что он пытается сделать слишком много для разработчика (такие вещи, как состояние приложения, веб-события), вывод кода часто не воспроизводится хорошо с веб-стандартами, веб-формы 2.0 связаны непосредственно с переходным XHTML 1.0. Все, что находится за пределами быстрых и грязных строк DataGrid и Form to CRUD в базе данных, обычно причиняет больше боли и страданий по сравнению с записью в ASP.NET MVC.

7 голосов
/ 08 ноября 2008

С MVC вы никогда не тратите время, пытаясь понять, почему ItemDataBound и ItemCommand не запускаются, когда вы ожидаете этого.

Если вы думаете, что это сэкономит ваше время, то MVC, вероятно, для вас.

7 голосов
/ 08 ноября 2008

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

5 голосов
/ 08 ноября 2008

На данный момент, WebForms, более зрелый. Я хотел бы, например, чтобы валидация (на стороне клиента и сервера) имела лучшую поддержку в MVC. Однако я полностью ожидаю, что со временем это улучшится. Лучшее в MVC, с моей точки зрения, это то, что MVC делает мой код намного более тестируемым. Я оставлял много кода непроверенным с WebForms просто потому, что было слишком сложно протестировать код. Теперь я могу написать модульные тесты для всей логики моего контроллера.

Даже если в конечном итоге окажется, что MVC несколько медленнее (и я предполагаю, что этого не произойдет), улучшенная тестируемость того стоит. В конце концов, я вернусь к этому времени, так как будет меньше времени возвращаться и исправлять неисправный, непроверенный код позже.

3 голосов
/ 01 февраля 2010

Когда я слышу термин «быстрое развитие», я обнаруживаю, что люди обычно используют его в контексте «как быстро я могу разработать новое решение». Есть много факторов, которые необходимо учитывать, прежде чем можно будет найти разумный ответ.

  • Насколько знаком разработчик с фреймворком?
  • Насколько всеобъемлющий дизайн?
  • Насколько сложны требования?
  • Насколько стабилен фреймворк?

Впервые я связался с ASP.NET MVC незадолго до выпуска 1.0. До этого я был очень хорошо знаком с ASP.NET WebForms, но все равно был разочарован процессом разработки в целом. Я знал о целях, связанных с разделением интересов, и знал, что четкое разделение невозможно с WebForms, не противореча тому, что было создано фреймворком.

Со времени работы с ASP.NET MVC я очень быстро обнаружил, что по ряду вещей я скучаю по лодке. В то время как WebForms позволяет вам создавать вещи «быстрее», вы в основном становитесь заложниками реализации Microsoft, а не позволяете вам легче усваивать установленные стандарты (такие как JavaScript, CSS и AJAX) в средах, в которых нет Microsoft. Кроме того, создание новых инструментов, моделей поведения и функциональных возможностей не должно быть мотивировано продажами и прибыльностью, а потому, что этого требуют технологические требования сообщества разработчиков. Я работаю над этим текущим проектом MVC с апреля. Мне очень нравится работать с этим фреймворком, и я очень рекомендую его всем и всем, кто заинтересован в переходе с WebForms. Изучение фреймворка занимает немного времени, но как только вы его понимаете, вы буквально удивляетесь, почему вы не смогли бы так поступить с самого начала.

Вы можете быстрее создавать приложения с помощью WebForms, но, если вы хотите, чтобы веб-сайты выглядели профессионально, вам придется вкладывать средства в библиотеки компонентов, которые по-прежнему будут требовать изучения этих установленных стандартов для их правильного использования. Если завтра мой 11-летний сын проявит интерес к изучению веб-разработки, учитывая выбор WebForms или MVC, я бы выбрал MVC. При этом я по-прежнему буду направлять его к изучению JavaScript, jQuery и AJAX еще до того, как он коснется MVC, потому что понимание этих структур делает понимание почти всех остальных намного проще.

Лично я не сторонник "быстрого развития". Я провел свою карьеру в качестве корпоративного разработчика и рассматривал внутреннее развитие как инвестицию. Я бы предпочел тратить на 20% больше времени на проектирование и разработку, чем сокращать проект на 20%, просто чтобы уложиться в нереальный срок. Каждый доллар, «сэкономленный» при первоначальной разработке, легко обойдется вам по меньшей мере в 1,5 доллара из-за затрат на обслуживание, переобучение и архитектурных изменений в связи с новыми требованиями. Но не все думают так, как я, поэтому ... мой простой ответ - MVC.

3 голосов
/ 10 ноября 2008

Я нахожу MVC гораздо более естественным для веб-разработки. Как отмечал предыдущий автор, вы, несомненно, сэкономите время, не сталкиваясь со странными ошибками, возникающими в процессе выполнения страницы веб-форм.

Кроме того, возможность написания модульных тестов для вашей логики намного быстрее (и с гораздо меньшей зависимостью от мошенничества!) Является большим преимуществом.

Наконец, я обнаружил, что при использовании инфраструктуры MVC гораздо легче писать сценарии css и client, поскольку вы можете указывать свои собственные идентификаторы для элементов HTML.

1 голос
/ 10 ноября 2008

Я думаю, что в конечном итоге MVC станет явным победителем для веб-разработчиков. Однако ASP.Net сохранит очень важную роль, потому что всегда найдутся парни .NET, которые считают себя веб-разработчиками, которые действительно являются парнями .NET winform. ASP.NET без MVC позволяет вам быстро собрать все вместе, но вы можете легко получить ужасный, ужасный, безобразный HTML, CSS и javascript. MVC открывает двери для чудесности, но требует от разработчиков более дисциплинированного подхода.

0 голосов
/ 09 ноября 2011

Я использую ASP.NET с тех пор, как первая бета-версия была вручена на конференции профессиональных разработчиков в Орландо в 2000 году. Поэтому, очевидно, мне гораздо удобнее работать с WebForms, потому что именно с этого я и начал. Большинство всех возражений против WebForms можно преодолеть с помощью разумных механизмов разработки. Но, хотя WebForms предоставляет инфраструктуру для RAD в сети, мне также нравится MVC. MVC все еще созревает, и я уверен, что он станет еще лучше. Суть в том, «где вы находитесь» в шкале времени обучения и какой у вас предыдущий опыт. Вы должны сделать это определение для себя. Если вы новичок, у вас есть роскошь исследовать оба.

0 голосов
/ 05 августа 2011

Очень странно, почему так много людей думают, что в Web Froms невозможно получить чистый HTML, использовать jquery (и jquery ajax), написать css (?). Вы всегда должны перетаскивать элементы управления с панели инструментов, тогда как на самом деле вы можете написать их так же, как в MVC.

Жизненный цикл страницы Webforms, viewstate, привязка данных, панели обновления также требуют времени, чтобы узнать, хотите ли вы написать хороший код. Кажется, что большинство людей не тратят время на это, поэтому они говорят, что WebForms "не так хороши".

Пока я зрелый разработчик Web Froms, я пытаюсь изучать MVC (просто для удовольствия), и неплохо писать сложные сайты. Но, как я вижу сейчас, основная проблема с MVC заключается в том, что вам приходится писать много кода, действительно много !!!

0 голосов
/ 02 октября 2010

WOW. Я использую элементы управления ASP.NET почти 5 лет, и теперь я слышу об этом новом ребенке в блоке - MVC

Полагаю, MVC был создан для того, чтобы разработчики php переходили. Я не вижу никакой другой ОСНОВНОЙ причины для этого. Но я не знаю MVC, поэтому не слушайте меня. Вот только я угадываю.

Я довольно быстро разбираюсь в формах ASP.NET ASP.NET и привязке данных. Когда я наклонюсь к MVC, я вернусь и сделаю комментарий

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