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

Могу ли я использовать ASP.NET MVC вместе с обычными веб-формами ASP.NET

У меня по запросу от клиента построен огромный сайт с веб-формами ASP.NET. Проблема в том, что я нахожу веб-формы ASP.NET несколько неинтуитивными (мой личный вкус). Так что я хотел бы сделать, это использовать MVC, но я не могу ожидать, что мой клиент заплатит за мое время за полную переписку (и у него не будет времени).

Так что я спрашиваю, могу ли я использовать ASP.NET MVC и Web-формы одновременно и постепенно использовать MVC все больше и больше? Любые советы?

4b9b3361

Ответ 1

Обновление 2014:

Visual Studio 2013 приближает нас к одному ASP.NET. Theres no MVC проекта или проекта Web Forms, это просто ASP.NET. Если вы хотите смешивать веб-формы и веб-API, или MVC и SignalR, вперед!Вас поощряют и поддерживают. Новые функции и функциональность с помощью NuGet без нарушения существующих приложений.

VS 13

Итак, теперь поощряется смешивание Web Forms и MVC (которое в значительной степени работает без проблем), и границы запутываются. Я предполагаю, что MS признала необходимость разрешить проектам медленно мигрировать в MVC или просто переносить порции по мере необходимости и получать лучшее из обоих миров.


Проект MVC:

Использование MVC с веб-формами довольно долгое время, безусловно, возможно и отличным выбором. Новые функциональные возможности и страницы могут быть легко добавлены в страницы MVC с хорошим архитектурным дизайном, таким как DDD (Service Repository, Dependency Injection и т.д.), И старые вещи могут оставаться такими, какие есть. Объединение MVC внутри страницы webforms также отлично работает, хотя могут быть некоторые незначительные проблемы с проверкой JS. Я бы очень рекомендовал его.

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

  • Вы можете создать проект MVC и просто скопировать все страницы Webforms, например. папка. (возможно, просто обновить проект, я бы предположил)
  • Настройка маршрутизации для игнорирования запросов с указанным именем папки в URL-адресе. Таким образом, MVC и веб-формы могут использоваться вместе без проблем в URL-адресах.
  • Страницы Asp.net WebForms aspx могут находиться внутри MVC, если они не размещены внутри папки /Views.
  • Пойдите с помощью Razor поверх старого синтаксиса, вы можете легко настроить HTML-помощники и сделать его более чистым.
  • Проверяйте стандарты и соглашения MVC, контроллер должен быть очень легким. Это не код, который может содержать столько логики, сколько вам нужно.
  • В представлениях не должно быть больше логики представления (нет бизнес-логики)
  • Все новое = > MVC
  • Ресурсы, web.config и т.д. можно использовать как
  • Меню не используют старые файлы Sitemap в MVC

Использование MVC внутри веб-страницы .aspx:

Нижеприведенный текст призван продемонстрировать, как вы можете использовать MVC на странице веб-форм. (Например, внутри MyPage.aspx). Вы можете использовать действия/представления MVC внутри веб-форм, например. ajax, чтобы заполнить часть страницы или некоторые div.

Веб-формы, содержащие MVC, отлично работают, по крайней мере, при добавлении вызова ajax внутри HTML для заполнения div из MVC.

Внутри .aspx

..html & webforms code

<div id="fillMeFromMVC">
  <script type="text/javascript">
   $.ajax(... call an MVC action to fill 
      the "fillMeFromMVC" div that this script sits inside of);
 </script>
</div>

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

WebForms против MVC:

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

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

Дальнейшее чтение:

Веб-формы и MVC (проект кода)

Разница между ASP.NET WebForms и ASP.NET MVC (блог)