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

Является ли ASP.NET MVC плохим выбором для крупного корпоративного проекта?

Мы собираемся начать крупное корпоративное приложение. Я серьезно рассматриваю использование ASP.NET MVC, потому что:

  • Нам нужно использовать технологию Microsoft (логика biz - это все С#)
  • Производительность критична.
  • Я бы хотел как можно больше проверить

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

Должен ли я пересматривать веб-формы или придерживаться моей кишки и использовать ASP.NET MVC?

Связанный:

Должен ли я создать следующее веб-приложение в ASP.NET MVC? https://stackoverflow.com/info/521388/from-webforms-to-asp-net-mvc

4b9b3361

Ответ 1

ASP.NET WebForms очень похож на Winforms и позволяет RAD (быстрая разработка приложений). Это очень быстро, чтобы получить что-то в нерабочее время. Проблема с этим заключается в том, что тестирование может быть серьезной болью, и если оно используется для чего-либо публичного, это может означать некоторые серьезные проблемы с ViewState. WebForms может содержать состояние, создающее такие вещи, как волшебник, который нужно использовать.

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

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

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

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

Ответ 2

Веб-формы ASP.NET являются тяжеловесными и оставляют на ваших веб-страницах хрупкий материал, как в html/javascript, так и в сериализованном представлении. Я помню свой первый веб-сайт ASP.NET, в результате которого GC был взорван из-за того, что все непродолжительные объекты были регидратированы из этого богобоязненного виджета. О, когда я был молод и наивен (т.е. 2 ​​года назад)... У вас должно быть очень хорошее понимание веб-форм для создания из них масштабируемых веб-сайтов. Возможное? Определенно. Легко? Нет.

ASP.NET MVC сложнее кодировать изначально, но SO гораздо проще разрабатывать, чем веб-формы. Самые трудные вещи, которые нужно изучить, это: 1) соглашения, а также "магические строки", 2) HTML-код + aline ASP и 3) html-формы.

С MVC вы не можете избавиться от государственного кошмара, который так распространен для разработки веб-форм, а это означает, что ваши веб-страницы являются мета-наркоманами. Это также означает, что вам нужно немного закодировать свое состояние. Код также намного проще и масштабируется МНОГО лучше, чем традиционные веб-формы, imho.

Кроме того, тестирование с помощью ASP.NET практически невозможно, из-за жестко закодированных и немаркированных зависимостей, запеченных в рамках. ASP.NET MVC заменил все это на элементы System.Web.Abstractions, которые являются макетными обертками вокруг этих плохо спроектированных и непроверенных объектов.

Запустите, не ходите, в MVC.


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

Если, с другой стороны, вы кодируете, как ранний человек, против модели веб-форм ASP.NET(например, Response.Write() в Page_Load), применяются мои комментарии.

Можете ли вы написать код для тестирования ASP.NET? Конечно. Можете ли вы сделать это без включения специального кода тестирования, который вы или кто-то еще написал? Конечно. Если у вас есть TypeMock.

Ответ 3

ASP.NET MVC не является проблемой для Enterprise, но не ASP.NET, Silverlight и т.д. Это все технологии пользовательского интерфейса. Большая часть вашей логики приложения должна существовать в библиотеках под слоем пользовательского интерфейса, так что практически любой пользовательский интерфейс может использоваться.

  • Нам нужно использовать технологию Microsoft
  • Производительность критична.
  • Я бы хотел как можно больше проверить

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

Ответ 4

Нет. Одна вещь, которую ASP.NET MVC имеет в ASP.NET Web Forms с точки зрения производительности, заключается в том, что она не использует дерево управления. Дерево управления потребляет много серверной памяти и сохраняет сборщик мусора очень занятым на страницах со многими элементами управления. Я бы сказал, что вы получите превосходную производительность от ASP.NET MVC. Единичные аспекты тестирования - это настоящая победа.

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

Ответ 5

Придерживайтесь своей кишки. ASP.NET MVC помогает облегчить тестирование, потому что почти весь API происходит от интерфейсов.

Ответ 6

Использовали WebForms в течение многих лет и никогда им не нравились. Теперь используйте Asp.Net MVC в течение нескольких лет, и это намного лучше. Конечно, рекомендуем рекомендовать MVC.

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

Ответ 7

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

Ответ 8

"С MVC вы не можете уйти с кошмаром состояния, который так распространен для разработки веб-форм, а это означает, что ваши веб-страницы являются мета-наркотиками slim"

Обновлено для этой цитаты!

Ответ 9

Мое мнение: используйте веб-формы ASP.NET.

Отключить ViewState в Web.Config.

Нет необходимости сохранять состояние, потому что все, что вам действительно нужно, находится в объекте Request. Используйте Javascript в сочетании с AJAX для получения данных, чтобы отобразить на стороне клиента пользовательский интерфейс.

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

Потребовалось некоторое время, чтобы настроить достойную среду для этого рабочего метода, но в конечном итоге он будет править.

У меня скорее нет кода спагетти, такого как MVC. Был там с PERL/PHP и классическим ASP.

Ответ 10

Все, что я прочитал о asp.net MVC, говорит, что он способен обслуживать больше запросов страниц, чем веб-формы asp.net.

У меня есть некоторые сомнения относительно его стабильности и безопасности. Оба они связаны с тем, что он даже не выпущен, и даже с RC мы увидели некоторые изменения в структуре. Я уверен, что с течением времени будет больше изменений, и все будет найдено. Это новое, так что на самом деле для него нет "лучших практик", и нет большого опыта в детализации небольших проблем или ошибок, с которыми вы могли столкнуться.

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

Ответ 11

Если вы можете использовать хранимые процедуры, вам не нужен большой средний уровень, такой как созданные MVC. Все, что вам нужно сделать, это передать XML в ваши сохраненные procs через простой обработчик HTTP, получить результаты от сохраненного proc и преобразовать результаты в JSON. MVC и другие материалы среднего уровня служат только для зарабатывания денег для компаний, которые продают IDE, например VS.