2008-11-14 2 views
27

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

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

Нет «лучшего», это субъективный и спорный вопрос, я предлагаю вам перефразировать «плюсы и минусы x vs y» и выбрать тот, который лучше всего себя. – 2008-11-14 13:55:23

ответ

27

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

+3

Глядя на это три года спустя, удивительно, как мало изменилось. Монорельс потерял большинство своих разработчиков, но ASP.NET MVC по-прежнему не добился паритета характеристик. Улучшение Razor, но просмотр синтаксиса двигателя на самом деле не является большой сделкой. – 2012-01-23 19:45:28

10

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

+0

Существует также базовый intellisense для механизма просмотра NVelocity (через проект CVSI - http://www.jonorossi.com/projects/cvsi/) - его «довольно рудиментарный», но в целом это все, что вам нужно в ваших представлениях , – Bittercoder 2009-01-21 03:20:50

+2

Мы смотрим на Spark для использования здесь в Stack Overflow - это похоже на отличный механизм просмотра! – 2009-04-20 04:11:30

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

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

7

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

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

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

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

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

Смежные вопросы