Asp.Net MVC против Castle MonoRail
У меня есть опыт создания приложения с Asp.Net, но теперь рамки MVC становятся все более популярными. Я хотел бы попытаться создать новое многоязычное веб-приложение, используя Asp.Net MVC или Castle MonoRail, но я не знаю, какой из них подходит для меня. Мне не нравится механизм просмотра веб-форм, но мне нравится функция маршрутизации в Asp.Net MVC.
- Может ли кто-нибудь рассказывать о плюсах и минусах между ними?
- Какой вид ViewEngine лучше для переопределения основного шаблона?
Ответы
Ответ 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) выглядит довольно впечатляюще.