Asp.Net MVC vs Castle MonoRail - PullRequest
       12

Asp.Net MVC vs Castle MonoRail

27 голосов
/ 14 ноября 2008

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

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

Ответы [ 4 ]

27 голосов
/ 03 февраля 2009

Говоря как сторонник монорельса, я должен сказать, что вы, вероятно, должны пойти на 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 - победитель.

10 голосов
/ 14 ноября 2008

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, что является большим преимуществом, которого, по моим сведениям, нет у всех альтернативных движков представления.

7 голосов
/ 13 мая 2009

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

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

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

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

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

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

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

...