Categories: ASP.NETРазное

ASP.NET MVC и ASP.NET Web Forms

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

ASP.NET Web Forms

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

Элементы управления генерируют html-код, а обработка событий происходит с помощью postback’ов. С одной стороны это позволяет быстро добавлять элементы и события к ним, а с другой стороны может генерировать излишний html-код, на который не всегда можно повлиять. Так же с этим связана ещё одна проблема, зачастую логика интерфейса переплетена с остальным кодом, что может вызвать проблемы при поддержке этого кода или масштабирование продукта.

Резюмируя

ASP.NET Web Forms идеально подходит для быстрой разработки и запуска продукта. Время на разработку элементов управления практически не требуется, почти всё есть “из коробки”, а чего нет, то можно скачать. Порог вхождения для разработчиков достаточно низкий, особенно для тех, кто имел дело с WinForms (используется такая же модель событий).

ASP.NET MVC

ASP.NET MVC появился позже, чем Web Forms. Microsoft пересмотрели подход, и в основу легла концепция MVC (model-view-controller). Здесь уже не найти горы готовых элементов управления и серверных событий элементов управления. Но благодаря всему этому ASP.NET MVC обрела дополнительную гибкость.

Все элементы управления создаются вручную или с помощью специальных html-хелперов. Минимум генерируемого кода, а значит элементы управления можно самостоятельно кастомизировать. На смену postback’ов пришли обычные формы.

Разделение ответственности достигается благодаря концепции MVC. Мы можем полностью изменить интерфейс, не меняя ни строчки кода в модели или контроллере, чего сложно было достигнуть в Web Forms. Как следствие, в проект проще внедрить тестирование кода, что положительно сказывается на количестве ошибок.

Резюмируя

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

Руслан Раянов

Recent Posts

Что такое Customer Development (кастдев)? #понятия_веб_разработки #вебликбез

https://falconspace.ru/blog/bazovye-voprosy-i-ponyatiya-v-sfere-sozdaniya-veb-proektov - Основы веб-разработки. Базовые понятия для владельца сайта

12 часов ago

Что такое Целевая аудитория? #понятия_веб_разработки #вебликбез

https://falconspace.ru/blog/bazovye-voprosy-i-ponyatiya-v-sfere-sozdaniya-veb-proektov - Основы веб-разработки. Базовые понятия для владельца сайта

1 день ago

Что такое Концепция сайта? Что такое Бриф на разработку сайта? #понятия_веб_разработки #вебликбез

https://falconspace.ru/blog/bazovye-voprosy-i-ponyatiya-v-sfere-sozdaniya-veb-proektov - Основы веб-разработки. Базовые понятия для владельца сайта

2 дня ago

Каким должен быть личный кабинет информационной системы?

Вероятно, у вас есть сайт и вы подумываете, что было бы неплохо внедрить в него…

3 дня ago

Что такое Итерация, этап, спринт? #понятия_веб_разработки #вебликбез

https://falconspace.ru/blog/bazovye-voprosy-i-ponyatiya-v-sfere-sozdaniya-veb-proektov - Основы веб-разработки. Базовые понятия для владельца сайта

6 дней ago

Что такое Рейт эстимейт почасовая ставка? #понятия_веб_разработки #вебликбез

https://falconspace.ru/blog/bazovye-voprosy-i-ponyatiya-v-sfere-sozdaniya-veb-proektov - Основы веб-разработки. Базовые понятия для владельца сайта

1 неделя ago