Литмир - Электронная Библиотека

Заключение

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

ГЛАВА 2

MVC Framework и WebForms

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

Известный факт, что возможность выбора порождает проблему этого самого выбора — поэтому с появлением на платформе ASP.NET подхода к созданию веб-приложений MVC Framework у разработчиков возникает логичный вопрос — какой подход выбрать и какой подход будет наиболее оправдан при создании очередного веб-приложения. Не хотелось бы расстраивать читателя, жаждущего быстрого ответа на вопрос, какой подход избрать — WebForms или MVC Framework, но все же придется это сделать — ответом на вопрос, стоит ли выбрать MVC Framework для вашего следующего веб-приложения, является вся эта книга.

Существует необозримое множество технологий (и для разных задач лучше подходит та или иная технология) и сделать правильный выбор позволяет только достаточное знание возможностей, преимуществ и недостатков рассматриваемых технологий.

В этой главе проводится краткое сравнение технологий MVC Framework и WebForms, демонстрируется реализация подхода MVC на основе WebForms, что может быть полезно разработчикам, знакомым с WebForms, для того чтобы быстро освоиться с концепцией MVC, а также предлагаются некоторые советы по выбору той или иной технологии.

Сравнение WebForms и MVC Framework

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

Технология WebForms

Технология WebForms в ASP.NET была создана для того, чтобы сделать веб-разработку максимально простой для разработчика, знакомого с созданием клиентских приложений на Windows-платформе. По большому счету, создание WebForms мало отличается от создания настольных приложений — элементы управления, использующие механизмы обработки пользовательских действий и хранения состояния, позволяют применять для разработки визуальный подход. Разработчику достаточно разместить элементы управления на странице и определить логику их совместной работы, без необходимости глубокой работы с разметкой HTML и стилями CSS.

Технология WebForms значительно снизила "порог входа" в веб-разработку. Как в свое время появление визуальных средств разработки вроде Visual Basic дало возможность разработчикам разного уровня создавать приложения различной сложности, так появление технологии WebForms привело к быстрому росту количества динамических веб-приложений. Прежде всего, за счет возможности быстрого изучения технологии и быстрого старта разработки полнофункциональных приложений.

Модель расширения WebForms позволила большому количеству компаний разрабатывать собственные элементы управления, которые позволили существенно упростить и ускорить разработку веб-приложений. Кроме того, декларативный подход технологии WebForms позволяет очень просто преобразовывать классические веб-приложения для использования новейших технологий, таких как Ajax и Silverlight.

Преимущества WebForms

Высокая скорость разработки. Благодаря декларативному использованию компонентов и визуальному созданию веб-страниц, достигается высокая скорость разработки функционала веб-приложений. Использование готовых компонентов, интегрируемых между собой, позволяет очень быстро создать работающий прототип приложения, которое в дальнейшем дорабатывается до желаемого результата.

Большое количество готовых компонентов. В состав .NET Framework входит несколько десятков компонентов для реализации наиболее частых сценариев, а готовые компоненты третьих компаний позволяют сократить время на разработке и отладке собственных решений.

Богатая поддержка средствами разработки. Поддержка WebForms визуальными инструментами разработки, такими как Visual Studio и Expression Web, предоставляет возможность визуального проектирования интерфейса и создания базовых связей между элементами управления. Значительная часть разработки интерфейса приложения может быть выполнена веб-дизайнером, без привлечения разработчика.

Автоматическое управление состоянием. Состояние элементов управления на стороне клиента поддерживается автоматически, и разработчику нет необходимости отслеживать инициализацию всех элементов управления страниц между отправками данных на сервер (postback).

Событийная модель элементов управления. Механизмы обработки клиентских событий позволяют создавать обработчики событий на стороне сервера, разбивая общий код логики взаимодействия веб-страницы с пользователем на небольшие логические блоки.

Высокая степень абстракции над HTML-разметкой. Разработчику нет необходимости работать со страницей на уровне HTML-разметки. Элементы управления создают необходимую разметку во время генерации разметки для конечного пользователя. Кроме того, абстракция над разметкой позволяет генерировать разметку в зависимости от браузера, используемого для доступа к веб-приложению, что особенно важно для приложений, используемых на мобильных устройствах.

Простота изучения технологии. Общий набор концепций, делающий разработку веб-приложений похожей на разработку настольных приложений, и высокая степень абстракции над нижележащими технологиями позволяют быстро приступить к созданию веб-приложений.

Возраст технологии. В современном быстро меняющемся мире десяток лет — это уже очень много. За время существования WebForms было выработано множество методик создания веб-приложений, продуманы различные сценарии использования технологии и накоплен большой опыт в сообществах разработчиков.

Недостатки WebForms

Связка разметки и логики страницы. Разметка страницы, определенная в ASPX-файле, жестко привязана к коду логики, определенному в codebehind-файле, поскольку на основании разметки генерируется частичный класс, являющийся частью класса, определенного в code-behind-файле. В терминах MVC получается, что логика компонентов контроллера и представления смешиваются. Особенно в случае использования элементов, декларативно работающих с данными, таких как SqlDataSource/DataGrid, смешивается бизнес-логика, логика интерфейса и работы с данными.

Отсутствие полного контроля над конечной разметкой страницы. Поскольку в технологии WebForms генерация HTML-кода отдана на уровень элементов управления, разработчик не имеет полного контроля над финальной разметкой страницы, загружаемой в браузер пользователя. В большинстве случаев это не является проблемой, пока не возникает необходимости создавать большое количество клиентского кода, работающего с моделью документа HTML-страницы — в этом случае создание обходных путей может занять недопустимо много времени.

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

6
{"b":"971383","o":1}