Подтвердить что ты не робот

ASP.NET MVC vs WebForms: сравнение скорости и архитектуры

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

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

Что вы, ребята, думаете? Кто-нибудь сравнивал скорость и производительность? И ASP.NET MVC лучше для приложений большого масштаба, чем ASP.NET WebForms?

Короче говоря, между этими двумя вариантами выбора, которые вы бы выбрали для крупномасштабного корпоративного приложения?

4b9b3361

Ответ 1

  • Скорость разработки: WebForms
  • Производительность: MVC
  • Простота использования: WebForms (обычно)
  • Тестирование модулей: MVC (обычно)

Ответ 2

Этот сайт является лучшим примером производительности и масштабирования ASP.net MVC

Некоторые функции, которые я считаю необходимыми для Enterprise и какие MVC обеспечивают,

  • Модульное тестирование - хотя для его реализации требуется время, чтобы сэкономить много времени в будущем

  • Разделение проблем - это действительно улучшает скорость разработки и модификации

  • Производительность - так как MVC и Webforms используют тот же ASP.net, что и базовая среда, и MVC легче и соответствует HTTP, он дает лучшую производительность

Ответ 3

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

У меня нет ссылок на сравнение производительности со мной, но я был бы очень удивлен, если их там не было. Даже у microsoft, вероятно, есть некоторые.

Ответ 4

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

что он не такой гибкий, как WebForms

Это просто глупо. Вы можете делать что угодно. Они оба невероятно гибкие. С точки зрения гибкости MVC, вероятно, является очевидным победителем здесь, так как вы легко можете получить ориентированное на ориентацию программирование (AOP) с помощью ActionFilters. Другая причина, по которой MVC, вероятно, является победителем здесь, заключается в том, что инъекция зависимостей рассматривается в MVC. У вас может быть инверсия вложений управления и зависимостей в WebForms, но для этого требуются сложные реализации с использованием шаблона Model-View-Presenter.

Приложение MVC будет медленнее, чем приложение веб-форм.

Это неверно, как указано. Любое приложение может быть написано медленнее, поскольку это сложный процесс, включающий многие аспекты для достижения конечного продукта. Однако, с точки зрения скорости сырья. Веб-формы значительно быстрее. fooobar.com/info/57441/...

он более легкий вес, потому что нет жизненного цикла страницы, viewstate и т.д. Он должен, таким образом, быстрее загружаться

Это также недопустимый оператор. Жизненный цикл страницы не имеет значения во всех аспектах, поскольку в MVC есть жизненные циклы в отношении контроллеров и фильтров действий. Просмотр состояния интересен... если вы решите набирать 100 и 1000 килобайт данных в состояние просмотра, требуя, чтобы каждый обратный вызов серверу имел запрос 1 МБ-5 МБ, да, очевидно, будет быстрее делать почти что-либо по-другому. Это не ошибка веб-форм, тем не менее, веб-формы позволяют легко попасть в яму отказа с помощью viewstate.

ASP.NET MVC лучше для приложений с большим масштабом, чем ASP.NET WebForms?

Нет. Однако ответ на этот вопрос "ASP.NET WebForms для приложений большого масштаба, чем ASP.NET WebForms?" Ответ также Нет. Ответ отрицательный, потому что ответ всегда зависит от. В каждой структуре есть плюсы и минусы, и вам нужно их измерять, нет окончательных ответов.

Если вы создаете сайт, управляемый контентом, у которого должно быть самое быстрое время загрузки страницы, например www.microsoft.com, тогда вы может очень хорошо выбрать веб-формы.

который вы бы выбрали для крупномасштабного корпоративного приложения?

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

В терминах крупномасштабного приложения вы выбираете практически бессмысленный. Крупномасштабные приложения построены на очереди. Они будут использовать инструменты, такие как MSMQ, либо напрямую, либо через служебную шину, например: Mass Transit, Azure Service Bus или NServiceBus. Только с очередью вы можете достичь масштаба, чтобы обрабатывать миллионы запросов, как это делают Amazon, Ebay и любой другой крупный игрок.