УДК 004.738.5: 004.55: 004.4.2

студент группы АСП-Б-07

Московский государственный горный университет

Сравнение основных аспектов современных подходов к разработке на : MVC и WebForms

Comparsion of the key aspects of modern approaches in developing : MVC and WebForms.

На сегодняшний день WEB-порталы играют важную роль в деятельности любого предприятия, как государственного, так и частного. Современные порталы представляют собой информационные системы с клиент-серверной архитектурой.

Существует множество технологий разработки WEB-порталов — PHP, ASP, JSP и др. В последнее время широкое распространение приобрела платформа. NET. Остановимся более подробно на технологии (ASP – Active Server Page).

На момент своего появления стала огромным шагом вперед в разработке, причем не только благодаря использованию совершенно новой многоязыковой платформы управляемого кода. NET (которая и сама по себе была значительной вехой), но и потому, что ее предназначением было заполнение пробела между основанной на состоянии объектно-ориентированной разработкой Windows Forms и не поддерживающей состояние, ориентированной на язык HTML веб-разработкой.

Через несколько лет появилась новая, совершенно иная технология с точки зрения подхода к разработке - MVC. Microsoft выпустило её не в замен WebForms, а как альтернативу. Сейчас компания занимается разработкой и поддержкой обеих технологий. Рассмотрим подробнее каждую из технологий, проведём сравнение, постараемся выявить преимущества и недостатки.

НЕ нашли? Не то? Что вы ищете?

Что такое Web Forms? Это возможность разрабатывать веб-приложения также как и windows-приложения. Имеется набор контролов со своими свойствами и событиями, и, что важно, значения свойств прозрачно сохраняются между запросами к серверу. Технология включает в себя следующие основные понятия:

·  цикл обработки страницы – последовательность событий для страницы и контролов;

·  ViewState – хранилище для свойств контролов между запросами;

·  Postback – отправка страницы на сервер с помощью POST-запроса.

Технология MVC (Model View Controller) в отличие от WebForms, является шаблоном разработки приложений, разделяющим модель(и данные), логику их обработки и отображения[1]. Основные понятия здесь:

·  Action (действие) – ему соответствует метод контроллера;

·  ViewData – данные, которые View использует при отображения;

·  Redirect(RedirectToAction) – передача управления другому Action.

Redirect (Переадресация) является одним из основным отличий от WebForms. Каждое новое действие подразумевает либо переход по ссылке, либо Переадресацию, причём не за счёт обычной переадресации, а за счёт возвращаемого значения.

Использовать данные технологии можно по-разному, например разрабатывать как медиа-, так и корпоративные сайты как на 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]. Но, несмотря на то, что порядок вызовов заранее определён, в больших проектах со сложными контролами отследить это довольно сложно, что и создаёт определённые трудности при разработке. Что касается 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. *****/videos/1121.html

3.  Интернет-ресурс: http://*****/blogs/net/47249/

4.  Дино Эспозито Программирование с использованием Microsoft 3.5. – М.: Русская Редакция, Питер, 2009. – 1008 с.

Аннотация

Производится сравнение (разработка, тестирование, поисковая оптимизация) основных аспектов современных подходов к разработке на : MVC и WebForms.

Basic aspects of modern ways of development on : MVC and WebForms are being compared (developing, testing and search optimization).

Ключевые слова

разработка, тестирование, , MVC, WebForms,

developing, testing, , MVC, WebForms