Сделал ли ASP.NET MVC Web Forms устаревшей платформой? - PullRequest
10 голосов
/ 23 марта 2009

На прошлой неделе на Mix '09 была выпущена финальная версия ASP.NET MVC 1.0.

Некоторые из заявленных преимуществ этой структуры:

  • Четкое разделение интересов
  • Тестируемость - поддержка разработки через тестирование
  • Детальный контроль над HTML и JavaScript
  • Интуитивно понятные URL

Теперь Microsoft старается рекламировать это как «альтернативу, а не замену веб-форм ASP.NET», но, учитывая вышеупомянутые преимущества, мне интересно:

  1. Сколько времени пройдет, пока "классические" веб-формы ASP.NET не станут "устаревшими" фреймворками?
  2. Если вы сегодня начали разработку нового веб-проекта .NET, почему вы решили использовать веб-формы вместо предложения ASP.NET MVC?

Ответы [ 5 ]

4 голосов
/ 23 марта 2009

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

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

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

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

Я думаю о веб-формах, как то, как VB1 изменил способ создания приложений Windows на рабочем столе. По сей день RAD-способ создания приложения все еще существует и никогда не исчезнет.

3 голосов
/ 23 марта 2009

Имейте в виду, что MVC STILL использует WebForms для своего механизма просмотра по умолчанию. Конечно, вы можете заменить его другим, но WebForms по-прежнему является его основной частью.

Кроме того, не все предпочитают жестко контролировать HTML или маршрутизацию. Это не мое отношение, но некоторые люди просто хотят, чтобы их работа была выполнена с минимальными усилиями.

А файлы .asmx не являются технически частью "старой" модели? Я могу с уверенностью сказать, что многие люди не хотели бы, чтобы они уходили.

Тем не менее, я лично вижу, что ASP.net MVC станет главным Web Engine для ASP.net в будущем, хотя пока не в .net 4.0.

2 голосов
/ 07 апреля 2009

Вы спрашиваете, когда недавно выпущенная веб-платформа ASP.NET MVC заменит веб-формы, которые существуют уже семь лет.

Если бы мы взывали к ASP.NET MVC в течение последних семи лет, то до выпуска ASP.NET MVC прошло бы не семь лет. Дело в том, что не все видят в этом необходимость. Многие из нас создавали сложные масштабируемые веб-приложения в течение большей части этих семи лет.

Мы даже знали, как сделать их тестируемыми и отделить представление от бизнес-логики и доступа к данным. ASP.NET MVC может обеспечить это разделение, но я сделал это, используя стандарты кодирования и обзоры кода, и сказав, что «для этого нет модульного теста» и «вытащить эту бизнес-логику из интерфейса». *

Кроме того, если бы мне действительно требовалось больше контроля над HTML, я бы написал свой собственный элемент управления для генерации HTML.

1 голос
/ 23 марта 2009

Я не верю, что WebForms когда-либо выйдут на пенсию.

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

Обе платформы будут продолжать развиваться. Для обычных веб-сайтов и любителей HTML / CSS MVC - это путь, в сложных приложениях вам понадобится объектно-ориентированная архитектура и искусственная обработка событий, даже если она абстрагирует вас от HTTP-состояния без состояния.

Итак, подбери то, что лучше для тебя.

P.S. Отказ от веб-форм в целом поставит под угрозу будущее многочисленных проектов и компаний по всему миру. Люди Microsoft не хотели бы стать объектом ненависти и спусковым механизмом, который начал третью мировую войну.

0 голосов
/ 23 марта 2009

В WebForms по-прежнему найдется место для тех, кто хочет иметь веб-приложение без псевдо-состояния, которое они могут легко собрать, перетаскивая. Для тех, кто не должен или не хочет понять, как работает HTTP. Это лучшее в RAD для веб-приложений.

ASP.NET MVC, с другой стороны, позволяет гораздо более точный контроль за счет большей ответственности. Вы получаете полный контроль над своим HTML, однако это означает, что вы должны самостоятельно санировать / кодировать свой вывод. По большей части ваше приложение должно быть полностью не сохраняющим состояния, а некоторым разработчикам ASP.NET WebForms / Windows WinForms сложно обдумать это.

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

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