Главная страница   /   1.4. Кто должен использовать ASP.NET MVC (ASP.NET MVC 4

ASP.NET MVC 4

ASP.NET MVC 4

Адам Фриман

1.4. Кто должен использовать ASP.NET MVC

Как и с любой новой технологией, факт существования ASP.NET MVC не является веской причиной для того, чтобы работать с ним. Здесь мы хотим сравнить MVC Framework с наиболее очевидными альтернативами. Мы постарались быть максимально объективными для двух человек, которые пишет книгу о MVC Framework, но мы знаем, что есть предел нашей объективности. В следующих разделах представлены сравнения с другими технологиями. При выборе фреймворка для разработки веб приложения, вы также должны рассмотреть навыки вашей команды, принять во внимание работу, связанную с переносом существующих проектов, и ваше понимание существующих технологий.

Сравнение с ASP.NET Web Forms

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

  • Web Forms работает с представлением, как с сохраняющим состояние (являющимся stateful), добавляя абстрактный слой для HTTP и HTML. Используя View State и функции обратного вызова (postback) для создания эффекта сохранения состояния (statefulness). Благодаря этому возможна разработка drag-and-drop в стиле Windows Forms, то есть вы вставляете UI виджеты в шаблоны и заполняете кодом обработчики событий.
  • MVC же включает в себя истинную природу HTTP, работая с ним, а не борясь против. MVC Framework требует понимания, как веб приложения работают на самом деле. Благодаря этому вы ощутите, что представляет собой простой, мощный, современный подход к написанию веб приложений с чистым кодом, который легче расширить и поддерживать в течение долгого времени без странных осложнений и болезненных ограничений.

Есть, конечно, случаи, когда Web Forms, по крайней мере, можно так же хорошо, и, наверное, даже лучше применять, чем MVC. Очевидным примером являются небольшие приложения для интранет, которые в основном привязаны непосредственно к таблицам базы данных. Сильные стороны drag-and-drop программирования Web Forms могут перевесить его слабые стороны, когда вам не нужно беспокоиться о пропускной способности или поисковой оптимизации.

Если же вы пишете приложения для Интернета или большие интранет приложения, вас привлечет хорошая пропускная способность, лучшая совместимость с браузерами и более продуманная поддержка автоматизированного тестирования, что и предлагает MVC.

Переход от Web Forms к MVC

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

Сравнение с Ruby on Rails

Rails стал эталоном, с которым сравниваются другие веб платформы. Для разработчиков и компаний, которые живут в мире Microsoft .NET, гораздо легче принять и обучиться ASP.NET MVC, в то время как разработчики и компании, которые работают с Python или Ruby на Linux или Mac OS X найдут более легкий путь к Rails. Маловероятно, что вы захотите перейти от Rails на ASP.NET MVC или наоборот. Между этими двумя технологиями существуют некоторые реальные различия.

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

ASP.NET MVC Framework фокусируется на обработке веб запросов в MVC паттерне с помощью контроллеров и действий. Он не имеет встроенного ORM инструмента, встроенных средств автоматизированного тестирования или системой управления переносом баз данных. Это потому что у .NET платформы уже есть огромный выбор возможностей для выполнения этих функций, и вы можете использовать любую из них. Например, если вы ищете инструмент ORM, вы можете использовать NHibernate, Subsonic, Microsoft Entity Framework или одно из многих других зрелых имеющихся решений. Такова роскошь .NET платформы, хотя это не обозначает, что данные компоненты не так тесно интегрированы в ASP.NET MVC, как эквиваленты в Rails.

Сравнение с MonoRail

MonoRail является более ранней платформой для веб приложений .NET MVC, созданной в рамках проекта с открытым исходным кодом Castle, и эта платформа развивается с 2003 года. Во многих отношениях MonoRail выступал в качестве прототипа для ASP.NET MVC. MonoRail продемонстрировали, как подобная Rails MVC архитектура может быть выстроена для ASP.NET и предоставил модели, методы и терминологию, которые используются в реализации Microsoft.

Мы не видим в MonoRail серьезного конкурента. Это, пожалуй, самая популярная. NET платформа для веб приложений, созданная за пределами Redmond, и в свое время она получила широкое распространение. Тем не менее, с момента запуска ASP.NET MVC, о проекте MonoRail слышно нечасто. Импульс энтузиазма и новаторства в мире .NET веб разработки в настоящее время сосредоточен на ASP.NET MVC.