Есть ли что-то в MVC, что не может быть реализовано в веб-форме - PullRequest
1 голос
/ 09 июля 2019

Я проводил исследования в Интернете о вещах в MVC, которые могут быть реализованы через веб-форму. Я нашел много статей и хотел бы объединить вещи.

1 слабо связанная архитектура в MVC может быть реализована в веб-форме с помощью аналогичной структуры папок для веб-форм. то есть, сохраняя aspx в папке просмотра, модели в модели и пользовательский контроллер в папке контроллера. Нечто похожее на представление aspx в MVC 2 и 3 с использованием представлений aspx.

2 Маршрутизация URL MVC может быть реализована путем создания перезаписи URL в веб-формах.

3 модульное тестирование в MVC также может быть реализовано, если мы создадим сервис, который удобен для модульного тестирования и использует этот сервис в веб-формах.

4 Внедрение зависимости также может быть достигнуто с помощью веб-формы.

5 Простота MVC для поддержки внешних библиотек jQuery также может быть реализована с помощью веб-API в веб-форме.

6 Проблема состояния просмотра и привязки событий к элементам управления на стороне сервера веб-формы также может быть устранена, если мы используем элементы управления HTML в веб-формах. (Гораздо проще после webform 4 в .net framework 4.5)

7 мы можем легко связаться с .webform для контроллера MVC и наоборот, если в проекте есть как веб-формы, так и MVC.

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

Спасибо

1 Ответ

1 голос
/ 09 июля 2019

Вопрос о том, «может ли вещь из Y быть реализована с использованием X», обычно тривиален - базовый язык, C #, полон по Тьюрингу, поэтому вы можете реализовать все, что реально может быть реализовано в любой технологии, использующей его. Вы также можете реализовать что-либо из ASP.NET MVC или Webforms в этом отношении, используя обычный старый C или Assembly. В основном вы утверждаете, что вы можете смоделировать возможности ASP.NET MVC в Webforms, написав тонну стандартного кода. Ну, вы могли бы, очевидно - вы могли бы сделать то же самое, используя C, не так ли?

Кроме того, что касается пункта 1, я не считаю "реализацию подобной структуры папок" убедительным аргументом в пользу слабосвязанной архитектуры. Структура папок вряд ли архитектура. MVC существует, потому что он позволяет легче разделять проблемы. Webforms из коробки не поддерживает MVC. Вы отправляете запрос прямо на страницу, контроллера нет. Структура папок не решит эту проблему. Чтобы реализовать MVC, вам придется очень постараться и написать много кода, в основном, написать фреймворк поверх фреймворка. Это то, что мы обычно называем «изобретать велосипед».

Вопрос сводится к эргономике и долгосрочной поддержке. В Webforms много магии происходит под капотом, что отнимает контроль и усложняет реализацию архитектурных шаблонов, и больше не разрабатывается. Основное внимание уделяется Razor Pages и ASP.NET Core MVC. Если вам нравится работать с веб-формами, вы, вероятно, найдете Razor Pages лучшим выбором. Обе эти платформы являются более современными и позволяют писать меньше кода для достижения чистой, слабо связанной архитектуры.

Как примечание к современным технологиям, jQuery примерно такой же современный, как и веб-формы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...