Asp.Net MVC против Castle MonoRail

У меня есть некоторый опыт создания приложений с помощью Asp.Net, но теперь фреймворки MVC становятся более популярными. Я хотел бы попробовать создать новое многоязычное веб-приложение, используя Asp.Net MVC или Castle MonoRail, но я не знаю, какое из них мне подходит. Мне не нравится механизм просмотра веб-форм, но мне нравится функция маршрутизации в Asp.Net MVC.

  • Может ли кто-нибудь рассказать о плюсах и минусах между ними?
  • Какой ViewEngine лучше подходит для переопределения главного шаблона?

person Vorleak Chy    schedule 14.11.2008    source источник
comment
Нет лучшего, это субъективный и аргументированный вопрос, я предлагаю вам перефразировать плюсы и минусы x vs y и самому выбрать лучший.   -  person Pop Catalin    schedule 14.11.2008


Ответы (4)


Как сторонник монорельса, я должен сказать, что вам, вероятно, следует выбрать ASP.NET MVC. Честно говоря, тот простой факт, что ASP.NET MVC станет архитектурой по умолчанию в течение трех лет, вероятно, должен изменить его. Это уравнение было другим год назад просто потому, что архитектура по умолчанию имела серьезные проблемы с производительностью по сравнению с MonoRail.

Если вы хотите поговорить о технических преимуществах и недостатках:

  • ASP.NET AJAX - это беспорядок (избегайте этого), но теперь у них есть jQuery. Фактически, поддержка jQuery лучше, чем в любой другой среде. Конечно, вы полностью получите это только с интеграцией IDE со стандартным механизмом просмотра.
  • Есть некоторые эстетические улучшения (например, способ передачи информации о модели намного чище и очевиднее, чем у монорельса).

Кроме того, не отказывайтесь от стандартного движка просмотра. Вам не нужно вводить в него элементы управления, как это было с ASP.NET, вы можете закодировать его очень похоже на Brail, только используя C # вместо Boo.

Есть вещи, которые просто уродливы * количество методов, которые принимают объект в качестве параметра. Удачи в поиске документации о том, чего именно они ожидают. * Любовь Microsoft к абстрактным классам вместо интерфейсов. У них есть свои причины, но мне это все равно не нравится.

Кроме того, во многих отношениях MonoRail остается более совершенной платформой. Например, в ASP.NET нет абстракции для проверки или разбиения на страницы. Кроме того, на самом деле нет никакой помощи для привязки к модели. У помощников очень мало функциональных возможностей по сравнению с их эквивалентами на монорельсовой дороге.

Однако в целом я считаю, что ASP.NET MVC - победитель.

person Julian Birch    schedule 03.02.2009
comment
Глядя на это три года спустя, удивительно, как мало изменилось. Монорельс потерял большинство своих разработчиков, но ASP.NET MVC до сих пор фактически не достиг паритета функций. Razor - это улучшение, но синтаксис механизма просмотра на самом деле не так уж и важен. - person Julian Birch; 23.01.2012
comment
Что вы думаете о MVC 5 и ASP.NET в целом теперь, когда Visual Studio 2013 имеет окончательную первоначальную версию? - person Sameer Singh; 22.10.2013
comment
Я никогда не отвечал на этот вопрос, потому что в последнее время я особо не занимаюсь этой стороной дела. Тем не менее, у меня сложилось впечатление, что Microsoft продолжает прыгать через акулу с функциями, которые вам не нужны. Однако, поскольку MVC построен на основе простых вещей (в отличие от WebForms), вы всегда можете просто игнорировать хлам. Это звучит негативно, но на самом деле это намного лучше, чем было, когда я писал этот ответ. Поддержка Async, WebSockets и Gulp - это все, за что я бы давно убил. - person Julian Birch; 12.10.2015

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

Основная сила ASP.NET MVC - это механизм маршрутизации, честно говоря, MonoRail имеет в значительной степени эквивалентный механизм маршрутизации, и с некоторыми изменениями вы можете использовать механизм маршрутизации ASP.NET MVC с MonoRail, поскольку механизм маршрутизации на самом деле не находится в ASP. .NET MVC, но в System.Web.Routing (выпущено в .NET 3.5 SP1). ASP.NET MVC и интеграция с Visual Studio также являются плюсом и, вероятно, станут лучше, когда мы приблизимся к RTM версии v1.

Проект MvcContrib содержит отличные движки просмотра, такие как Spark, NHaml и Brail. Никто не может считаться «Лучшим», личный фаворит - Spark. Подробнее об искре: http://dev.dejardin.org/documentation/syntax

Механизм WebForms имеет intellisense, что является большим преимуществом, которого, насколько мне известно, нет во всех альтернативных механизмах просмотра.

person Torkel    schedule 14.11.2008
comment
Для движка представления NVelocity также доступен базовый intellisense (через проект CVSI - jonorossi.com/ projects / cvsi) - это довольно примитивно, но, как правило, это все, что вам нужно в ваших представлениях. - person Bittercoder; 21.01.2009
comment
Мы ищем Spark для использования здесь, на Stack Overflow - пока что он выглядит как отличный движок просмотра! - person Jarrod Dixon♦; 20.04.2009

Помимо предполагаемой популярности и поддержки со стороны Microsoft, ASP.NET MVC по-прежнему не хватает некоторых основных функций, которые Monorail имеет в течение долгого времени, таких как организация контроллера (области), собственные ViewComponents и фильтры, которые могут использовать IoC для определения наиболее важных из них.

У меня есть несколько больших приложений, которые используют все эти функции, и мне было трудно перенести их на ASP.NET MVC.

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

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

А пока я буду постепенно портировать свои MR-приложения в MVC, на всякий случай.

person Sephiroth    schedule 13.05.2009

  1. Я думаю, что MVC победит. Его набор функций очень похож, но он будет более «популярным» из двух (и, следовательно, обычно более широко поддерживается, документируется и расширяется сообществом разработчиков). Кроме того, для меня важен новый ViewEngine (Razor) .. и улучшения IDE, которые, на мой взгляд, повышают ценность выбора MVC вместо монорельса.

  2. Я использовал почти все стандартные ViewEngines, но в итоге свернул свой собственный (создал для него OpenSource Project) с использованием потрясающего механизма шаблонов StringTemplate. ST - это настоящее разделение проблем, ИМО. В результате я обнаружил, что пишу лучшие приложения с НАМНОГО меньше супа из тегов. Я также выбросил краткое введение и справочное руководство, если вы выбираете пинать шины на двигателе. Мне очень повезло с проектами, которые я развернул с его помощью. При этом Razor (MVC 3) выглядит довольно впечатляюще.

person jamisonLikeCode    schedule 13.02.2009
comment
Джеймисон, не могли бы вы подробнее остановиться на №1? Я обнаружил, что конец вашего ответа отклоняется от первоначального вопроса (без обид, я рад видеть механизм просмотра строковых шаблонов для asp.net msmvc) - person smoothdeveloper; 24.01.2010
comment
Вовсе не предназначено для рекламы. Извиняюсь за формат. Просто расширял предпочтение движка StringTemplate. - person jamisonLikeCode; 27.09.2010