Подтвердить что ты не робот

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

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

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

Ответ 1

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

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

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

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

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

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

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

Ответ 2

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. Никто не может считаться "Лучшим", личным фаворитом является "Искра". Подробнее об искрах: http://dev.dejardin.org/documentation/syntax

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

Ответ 3

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

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

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

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

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

Ответ 4

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

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