Выбрать главу

Поддержка различных движков генерации разметки. Компоненты представления, входящие в поставку MVC Framework, могут быть легко заменены на написанные самостоятельно либо разработанные другими разработчиками. В проекте MVCContrib (http://www.codeplex.com/MVCContrib) доступны альтернативные движки представления, такие как Brail, NHaml, NVelocity и XSLT.

Полноценная поддержка всех возможностей платформы ASP.NET. Применяя MVC Framework, разработчик может использовать все возможности платформы ASP.NET точно так же, как и разработчик, использующий WebForms. MVC Framework не ограничивает использование стандартных служб ASP.NET, таких как Session, Cache, Membership, Profile, Roles и т. п.

Недостатки MVC Framework

Более высокий "порог входа" в технологию. Разработчику, только начинающему осваивать создание веб-сайтов, потребуется достаточно подробное изучение веб-технологий, таких как HTML, CSS и JavaScript, для успешного создания многофункциональных веб-приложений. Если технология WebForms во многом "экранирует" разработчика от веб-среды, предоставляя высокую степень абстракции над веб-страницами, то MVC Framework сразу же требует достаточно глубокого понимания веб-технологий.

Отсутствие механизма хранения состояния. MVC Framework не предлагает механизма хранения состояния, и разработчику необходимо реализовывать его самостоятельно, используя скрытые поля, cookie-файлы или хранение данных в URL.

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

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

Выбор подхода к разработке веб-приложения

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

Как уже было сказано ранее, такой выбор можете сделать только вы, основываясь на своих знаниях технологии WebForms и MVC Framework, исходя из требований того самого приложения, над которым вы размышляете. Тем не менее постараемся сформулировать список требований, который может пригодиться при выборе между WebForms и MVC Framework. Требования с краткими комментариями приведены в табл. 2.1. Большинство приведенных требований весьма условны и предназначены лишь для того, чтобы дать читателю пищу для размышлений.

Рассмотрев приведенные в табл. 2.1 требования, можно грубо определить, насколько MVC Framework может быть использована для решения конкретной поставленной задачи.

Нужно отметить еще один важный принцип, который может быть полезен при выборе технологии: предыдущий опыт разработки участников команды, которая будет работать над новым проектом. В случае если у членов команды был опыт создания приложений с использованием платформы PHP, Ruby, Perl и т. п., то очевидным выбором будет MVC Framework, однако если члены команды имеют большой опыт разработки с использованием WebForms или JSP, то переход на MVC Framework может быть для них достаточно длительным, поскольку работа с технологиями вроде WebForms вырабатывает определенный стиль кодирования, и для упрощения разработки и поддержки могут быть использованы различные архитектурные подходы (например, такие как Web Client Software Factory от команды Patters & Practices в Microsoft). MVC Framework навязывает общую архитектуру и подход к написанию кода веб-приложения, а привычки достаточно сложно изменить. Поэтому, если сроки сдачи проекта небольшие, а в команде в основном программисты, знакомые с WebForms, данный аргумент может пересилить все остальные, приведенные ранее.

Реализация подхода MVC в WebForms

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