ASP.Net MVC против ASP.Net Forms - PullRequest
       12

ASP.Net MVC против ASP.Net Forms

8 голосов
/ 12 октября 2009

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

Рассматриваете ли вы перенос ваших текущих проектов в тот или иной?

Ответы [ 3 ]

13 голосов
/ 02 сентября 2010

ASP.NET Web Forms и MVC - это две веб-платформы, разработанные Microsoft - оба они являются хорошим выбором. Ни одна из веб-фреймворков не должна быть заменена другой, и не планируется их объединение в одну фреймворк. Непрерывная поддержка и разработка выполняются Microsoft параллельно, и ни одна из них не исчезнет.

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

Веб-формы ASP.NET:

  • Разработка поддерживает состояние • Создает иллюзию, что веб-приложение знает о том, что делал пользователь, подобно приложениям Windows. То есть Делает функциональность «мастера» немного проще для реализации. Веб-формы отлично скрывают большую часть этой сложности от разработчика.
  • Быстрая разработка приложений (RAD) • Возможность просто «прыгнуть» и начать предоставлять веб-формы. Это оспаривается некоторыми из сообщества MVC, но подталкивается Microsoft. В конце концов, все сводится к уровню знаний разработчика и тому, что ему удобно. Модель веб-форм, вероятно, имеет меньшую кривую обучения для менее опытных разработчиков.
  • Большой набор инструментов управления • ASP.NET Web Forms предлагает гораздо более мощный и надежный набор инструментов (веб-элементы управления), тогда как MVC предлагает более примитивный набор элементов управления, опирающийся больше на расширенные клиентские элементы управления с помощью jQuery (Javascript).
  • Пожилые • Он существует с 2002 года, и имеется множество информации по вопросам, проблемам и т. Д. Предлагает больше стороннего контроля - необходимо учитывать имеющиеся у вас наборы инструментов.

ASP.NET MVC:

  • Разделение концернов (SoC) • С технической точки зрения организация кода в MVC очень чистая, организованная и детальная, что упрощает (надеюсь) масштабирование веб-приложения с точки зрения функциональности. Продвигает отличный дизайн с точки зрения разработки.
  • Упрощенная интеграция с инструментами на стороне клиента (многофункциональные инструменты пользовательского интерфейса) • Более чем когда-либо веб-приложения становятся все более богатыми, чем приложения, которые вы видите на своих рабочих столах. MVC дает вам возможность более легко и легко интегрироваться с такими инструментами (такими как jQuery), чем в веб-формы.
  • Поисковая оптимизация (SEO) Дружественные / Без сохранения состояния • URL-адреса более удобны для поисковых систем (то есть mywebapplication.com/users/ 1 - получить пользователя с идентификатором 1 против mywebapplication / users / getuser.aspx (идентификатор передан в сеансе)). Точно так же, поскольку MVC не имеет состояния, это устраняет головную боль пользователей, которые порождают несколько веб-браузеров из одного окна (конфликты сеансов). В том же духе MVC придерживается веб-протокола без сохранения состояния, а не «борется» с ним.
  • Хорошо работает с разработчиками, которым нужна высокая степень контроля • Веб-формы ASP.NET автоматически генерируют большую часть необработанного HTML-кода, который вы видите при визуализации страницы. Это может вызвать головную боль для разработчиков. С MVC у вас есть полный контроль над тем, что отображается, и никаких сюрпризов. Еще более важно то, что HTML-формы, как правило, намного меньше веб-форм, что может означать повышение производительности, что следует серьезно рассмотреть.
  • Разработка через тестирование (TDD) • С помощью MVC вы можете легче создавать тесты для веб-приложений. Дополнительный уровень тестирования обеспечит еще один уровень защиты от неожиданного поведения.

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

8 голосов
/ 12 октября 2009

WebForms - это абстракция, которая скрывает механику Интернета от разработчика. Это позволяет разработчикам настольных компьютеров относительно легко перенести свои навыки в Интернет. Хотя в действительности это достигается частично, в практических сценариях обычно не проходит много времени, прежде чем абстракция нарушается, и приходится прибегать к грязным обходным путям. Модульное тестирование является сложным, потому что логика обработки взаимодействия с пользователем тесно связана с пользовательским интерфейсом. HTML, создаваемый типичным приложением WebForms, далеко не оптимален. Он обычно раздутый, трудно читаемый и содержит много контента, который присутствует только для того, чтобы абстракция работала, например, viewstate, огромный массив информации, помогающий абстракции создавать иллюзию состояния для разработчика, даже если сеть является средой без сохранения состояния.

MVC, однако, охватывает механику сети. Основные операции, выполняемые в веб-запросе и ответе, представляются разработчику в виде простых абстракций. MVC имеет четкое разделение проблем. Модель просто представляет бизнес-объекты или объекты, с которыми связана система, с методами для извлечения и хранения экземпляров этих объектов. Контроллер принимает веб-запрос, выполняет операции с моделью, а затем передает модель представлению. Представление является чисто средством визуализации для представления модели пользователю и предоставления элементов интерфейса, которые позволяют пользователю сформулировать следующий запрос для передачи контроллеру. Такое разделение проблем позволяет проводить сравнительно простое модульное тестирование. Разработчик имеет полный контроль над созданным HTML-кодом, и нет необходимости в наличии других артефактов (например, viewstate).

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

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

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

Вы можете найти много различий, преимуществ в ASP.Net MVC по сравнению с обычным ASP.Net

Приложения. если не любезно, зайдите на страницу стека.

Самое большое преимущество использования ASP.Net MVC по сравнению с веб-формами

причина выбора концепции MVC для вашего приложения зависит от многих факторов

  1. Зачем нужна ваша заявка? форум, средство отчетности или веб-сайт интранета

  2. Хотите ли вы следовать шаблону проектирования или нет?

    если да, то будет ли это MVC или любым другим ??

  3. Нужна ли вам модульность для будущих улучшений?

  4. Нужен ли вам полный контроль над вашим кодом?

  5. Лучшая поддержка в части тестирования с точки зрения разработчика должна быть или нет?

Если вы уверены в этих вещах, вы можете перейти к модели инфраструктуры MVC.

В противном случае лучше продолжить работу с ASP.Net Web.apps, поскольку он включает в себя все последние версии

.

показывает, что нужно текущей отрасли.

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