УДК 004.738.5: 004.55: 004.4.2 Фаттахов Марат Уралович студент группы АСП-Б-07

advertisement
УДК 004.738.5: 004.55: 004.4.2
Фаттахов Марат Уралович
студент группы АСП-Б-07
Московский государственный горный университет
СРАВНЕНИЕ ОСНОВНЫХ АСПЕКТОВ СОВРЕМЕННЫХ
ПОДХОДОВ К РАЗРАБОТКЕ НА ASP.NET: MVC И WEBFORMS
COMPARSION OF THE KEY ASPECTS OF MODERN APPROACHES IN
DEVELOPING ASP.NET: MVC AND WEBFORMS.
На сегодняшний день WEB-порталы играют важную роль в
деятельности любого предприятия, как государственного, так и частного.
Современные порталы представляют собой информационные системы с
клиент-серверной архитектурой.
Существует множество технологий разработки WEB-порталов — PHP,
ASP, JSP и др. В последнее время широкое распространение приобрела
платформа .NET. Остановимся более подробно на технологии ASP.NET (ASP
– Active Server Page).
На момент своего появления ASP.NET стала огромным шагом вперед в
разработке, причем не только благодаря использованию совершенно новой
многоязыковой платформы управляемого кода .NET (которая и сама по себе
была значительной вехой), но и потому, что ее предназначением было
заполнение пробела между основанной на состоянии объектноориентированной разработкой Windows Forms и не поддерживающей
состояние, ориентированной на язык HTML веб-разработкой.
Через несколько лет появилась новая, совершенно иная технология с
точки зрения подхода к разработке - MVC. Microsoft выпустило её не в замен
WebForms, а как альтернативу. Сейчас компания занимается разработкой и
поддержкой обеих технологий. Рассмотрим подробнее каждую из
технологий, проведём сравнение, постараемся выявить преимущества и
недостатки.
Что такое Web Forms? Это возможность разрабатывать веб-приложения
также как и windows-приложения. Имеется набор контролов со своими
свойствами и событиями, и, что важно, значения свойств прозрачно
сохраняются между запросами к серверу. Технология включает в себя
следующие основные понятия:
 цикл обработки страницы – последовательность событий для
страницы и контролов;
 ViewState – хранилище для свойств контролов между запросами;
 Postback – отправка страницы на сервер с помощью POSTзапроса.
54
Технология MVC (Model View Controller) в отличие от WebForms,
является шаблоном разработки приложений, разделяющим модель(и
данные), логику их обработки и отображения[1]. Основные понятия здесь:
 Action (действие) – ему соответствует метод контроллера;
 ViewData – данные, которые View использует при отображения;
 Redirect(RedirectToAction) – передача управления другому Action.
Redirect (Переадресация) является одним из основным отличий от
WebForms. Каждое новое действие подразумевает либо переход по ссылке,
либо Переадресацию, причём не за счёт обычной ASP.NET переадресации, а
за счёт возвращаемого значения.
Использовать данные технологии можно по-разному, например
разрабатывать как медиа-, так и корпоративные сайты как на WebForms, так
и на MVC. К тому же существуют альтернативные способы их
использования (например: Ruby on Rails (MVC), выходящий за рамки данной
статьи) Рассмотрим традиционные подходы в рамках обеих технологий.
Тестирование. Для WebForms unit-тесты возможны, если немного
отойти от традиционного подхода и использовать слой логики (который
будет как-то привязан к странице)[4]. А вот логику переходов на другие
формы и взаимодействия контролов можно тестировать специальными
средствами для UI-тестов(труднее поддерживать чем unit-тесты). MVC, в
свою очередь, практически идеальная технология для unit-тестов, так как
контролы тестируются естественным образом, переходы тестируются за счёт
ActionResult, кототрый возвращается в методах контроллера, у
представления легко тестируется ViewData, для тестирования HTML можно
подменить Response(данные, отправляемые клиенту) или передать другой
TextWriter(что не так актуально, так как представление в MVC менее
значимо).
Формирование URL в WebForms и MVC происходит различным
образом. В Web Forms ключевые параметры обычно приходят как Get(а
иногда PostBack), поэтому:
 URL выглядит примерно так: http://site/member.aspx?id=1.
 Сайты плохо индексируется поисковыми системами.
 Если открыть записанный когда то URL, необязательно откроется
та же самая форма(особенно если используете одностраничную
модель)
На MVC ключевые параметры указаны в URL, для разных
контроллеров и действий разные URL, поэтому:
 URL выглядит примерно так: http://site/member/details/1/.
 Сайты хорошо индексируется поисковыми системами.
 Если открыть записанный когда-то URL, откроется та же самая
форма (очень удобно для поддержки и тестирования)
Ход обработки страницы имеет существенные отличия. Для WebForms
имеется последовательность событий для страницы и контролов на ней(Init,
Load и т.п.) вызываемые в определённой последовательности[2]. Но,
55
несмотря на то, что порядок вызовов заранее определён, в больших проектах
со сложными контролами отследить это довольно сложно, что и создаёт
определённые трудности при разработке. Что касается MVC то, в ней
используется предельно простая последовательность, которой управляете вы:
при переходе по URL – вызов action (т.е. метода контроллера) с нужными
параметрами, далее обработка параметров, получение данных и
дополнительная логика, и переход на другой action или отображение View.
Качество кода (понятность) сильно зависит от программиста. Разметка
страницы довольно наглядна у обеих технологий. Бизнес-логика у
приложений разработанных по технологии WebForms не всегда очевидна,
часто бывает смешана с отображением и работой с базой данных.
Обработчики событий только усложняют её. Контроллеры в MVC позволяют
отделить логику от представления, и в связи с этим, разобраться в логике
приложения становится значительно проще[3].
Подводя итоги, можно выделить следующие особенности WebForms:

технология быстрого написания простых приложений;

для более сложных приложений есть различные framework’и;

из-за чужеродной для web-приложений концепции, как правило,
качество и скорость работы сложных приложений оставляет желать лучшего.
MVC обладает привычной схемой работы для тех кто разрабатывал
web-приложения(запрос - ответ):

позволяет удобно использовать unit-тестирование;

упрощает понимание бизнес-логики;

генерирует
качественный
HTML-код
для
поисковых
систем(SEO);

в связи с недавним появлением, в интернете сложно найти
готовый компонент для требуемых нужд.
Невозможно сказать «да» одной и «нет» другой технологии. Выбор
технологии должен зависеть от задачи и каждое конкретное приложение
может быть написано как одним, так и другим способом. Фактически, можно
использовать даже смешанный подход, написав часть приложения с
использованием WebForms, а часть с помощью MVC.
Литература
1. Интернет-ресурс: http://vasenin.org/forum/29-ASP-NET/100- Достоинств
2. Интернет-ресурс: http://www.techdays.ru/videos/1121.html
3. Интернет-ресурс: http://habrahabr.ru/blogs/net/47249/
4. Дино Эспозито Программирование с использованием Microsoft
ASP.NET 3.5. – М.: Русская Редакция, Питер, 2009. – 1008 с.
56
Аннотация
Производится сравнение (разработка, тестирование, поисковая
оптимизация) основных аспектов современных подходов к разработке на
ASP.NET: MVC и WebForms.
Basic aspects of modern ways of development on ASP.NET: MVC and
WebForms are being compared (developing, testing and search optimization).
Ключевые слова
разработка, тестирование, ASP.NET, MVC, WebForms,
developing, testing, ASP.NET, MVC, WebForms
57
Download