Ответ 1
Обновление 2014:
Visual Studio 2013 приближает нас к одному ASP.NET. Theres no MVC проекта или проекта Web Forms, это просто ASP.NET. Если вы хотите смешивать веб-формы и веб-API, или MVC и SignalR, вперед!Вас поощряют и поддерживают. Новые функции и функциональность с помощью NuGet без нарушения существующих приложений.
Итак, теперь поощряется смешивание 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 могут использовать одну и ту же бизнес-логику. Веб-формы могут быть вредными, когда код находится на странице и привязан к пользовательскому интерфейсу (без разделения проблем). С твердой архитектурой и немного усилий, которые можно уменьшить, хотя.
Дальнейшее чтение: