@VZVZ
Reverse-Engineer, Software Developer, Architect

Как можно спорить на тему «ASP.NET WebForms против ASP.NET MVC»? Ведь эти технологии ПЕРЕСЕКАЮТСЯ?

Как можно спорить на тему "ASP.NET WebForms против ASP.NET MVC"? Ведь эти технологии ПЕРЕСЕКАЮТСЯ?

Будучи таким же нубом в ASP.NET, как и эти споруны, я думал, что в ASP.NET WebForms доступен только движок представлений ASPX (с кучей готовых контролов, компонентов и WYSIWYG), а в ASP.NET MVC - только новый движок представлений Razor, в котором всех этих плюшек нету.

Потом с некоторым удивлением обнаружил, что в MVC 3 и выше - на самом деле предоставляется 2 движка на выбор, а в MVC 2 и вовсе один только ASPX, т.к. Razor еще просто нет.

Сегодня я создал приложение ASP.NET MVC 2, открыл Index.aspx - и опять удивился, обнаружив там наличие вкладки "Design".

Окончательно меня добило то, что я увидел, когда ПЕРЕШЕЛ на эту вкладку! Вместо набора лишь дефолтных тэгов HTML (как я себе это представлял), я увидел там же самый набор "готовых контролов и компонентов", что и в WebForms, и вполне полноценный WYSIWYG для всего этого...
Кинул туда кнопку Button, запустил, всё работает... Попробовал добавить событие Click - тоже норм добавилось, пусть и не очень удобно, что добавилось прямо в файл aspx с помощью script runat="server", но ДОБАВИЛОСЬ же, и IntelliSense для C# там есть.
Усомнился, решил перепроверить, создал приложение ASP.NET WebForms - увы, всё то же самое: и контролы, и код, и практически никаких отличий.

Вывод: сравнивать "ASP.NET WebForms vs ASP.NET MVC" - абсурд.
Правильно - сравнивать "ASPX vs Razor". А уж MVC или не MVC - это уже архитектура. Не удивлюсь, если обнаружится, что через определенные костыли можно приспособить Razor без MVC, как штатно делается с ASPX.
  • Вопрос задан
  • 1891 просмотр
Пригласить эксперта
Ответы на вопрос 4
@dmitryKovalskiy
программист средней руки
Вы курнули чтоли? что за бред. Вы путаете технологии генерации страницы, цикл обработки запроса клиента , архитектуру в конце концов с одной стороны - и просто два разных шаблонизатора. Razor и ASPX - просто шаблонизаторы, вы можете и свой написать в теории. А вот WebForms и MVC в корне различные технологии. У них различно все начиная от концепции. Их можно использовать одновременно в одном приложении и на одном сайте, но это плохая практика и оправдана она только при миграции с WebForms на MVC
Ответ написан
yarosroman
@yarosroman
C# the best
Поделитесь шишками.

Технологии абсолютно разные, даже архитектура приложения разная. Единственное у них общее, это одно, ядро для обработки запросов и связи с IIS. Все. В WebForms грубо говоря, контролы, через канал связанны с обработчиками событий на сервере. В MVC главное это контроллеры с набором действий, которые могут вам отдавать код через шаблонизатор, файл или сериализованные данные. То, что обе технологии завязаны на System.Web можно в одном приложении применять обе технологии. О том, что это вещи разные, говорит то, что в новом ASP.NET 5 (не путать с версиями MVC) MS выпилили WebForms полностью, те создав MVC проект, вы не добавите в него ASPX файл.

Странная логика у вас, не читая ничего, имея скромные навыки в этих технологиях, просто создав проект, добавив пару файлов, вы сделали вывод. Странно, очень даже
Ответ написан
@mletov
Хоть в ASP.NET MVC проектах и можно создавать файлы .aspx и .ascx, тем не менее, для asp.net mvc они - инородные тела, артефакты из WebForms.

>>>А уж MVC или не MVC - это уже архитектура
Чисто теоретически, можно реализовать паттерн MVC на WebForms, но это уже извращение

В ASP.NET MVC вообще нет таких понятий, как "контрол" и "событие". Точнее может есть, но не в том контексте, что Web Forms или Win Forms

Ваши рассуждения почему-то напомнили мне анекдот:
- Когда были с женой в Париже, ходили во французский ресторан
- Ну и как?
- Макдональдс как Макдональдс

Так и вы, внедряете в MVC технологии WebForms, а потом говорите, что разницы никакой
Ответ написан
У вас крайне странная логика. Вам "позволили" удобства ради добавить в проект страницу на старом шаблонизаторе, и вы считаете, что это значит что WebForms это есть MVC? Я из описанных вами опытов увидел именно это.
Да, MVC это архитектура, но ASP.NET MVC это прежде всего название технологии в целом, т.е. всей инфраструктуры и классов, обеспечивающих написание таких приложений. И шаблонизатор - это даже не главное, что стоит за понятием ASP.NET MVC
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы