Ищем современное сравнение между ASP.NET MVC и MonoRail

Я перешел из Ruby on Rails, и мне нужно создать веб-приложение C#. В настоящее время я смотрю на ASP.NET MVC и MonoRail. Большинство сравнений, которые я нахожу, относятся к 2008-2009 годам, когда ASP.NET MVC был еще новым, и большинство аргументов против MVC заключалось в том, что он слишком сырой, не такой совершенный, как MonoRail.

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


person Idan Arye    schedule 06.08.2012    source источник
comment
Хотя это широкий вопрос. ASP.NET MVC стабилен и прекрасно работает. Текущая версия — MVC 3.0 и требует .net framework 4.0, поддерживает страницы Razor и страницы ASPX.   -  person Rajesh    schedule 06.08.2012


Ответы (2)


Я оценивал MonoRail года четыре назад и по сравнению с сегодняшним mvc3 это основные отличия (imho)

  • Механизм шаблонов Razor в качестве MVC по умолчанию. Пользоваться им одно удовольствие, а для монорельса по умолчанию стоит NVelocity. Я проверил веб-сайт Castleproject, и там есть план модернизации монорельса...
  • Значительно больше документации по MVC3, и на сегодняшний день — может быть, это моя вина — я не могу найти онлайн-документацию на сайте Monorail.
  • Areas, Partials, Razor чрезвычайно интегрированы в VS2010. И если вам это не нравится, вы можете подключить и использовать разные механизмы шаблонов.
  • MVC3 имеет лучшую интеграцию с Ajax/Jquery, ненавязчивую проверку формы.
person Max Lambertini    schedule 06.08.2012

Последние несколько лет я работаю с обоими фреймворками. Первоначально мы остановились на монорельсе, когда вышел mvc, так как мы чувствовали, что он сырой. ИМХО MVC3 сейчас находится на этапе, когда он более зрелый, чем Monorail 2, с лучшей поддержкой, большим количеством документации и регулярно выходящими новыми версиями.

  • Razor более мощный, чем nvelocity, и имеет отличную поддержку Visual Studio, которой не хватает nvelocity.
  • Представления Monorail не скомпилированы по сравнению с представлением MVC3, которое скомпилировано. Иногда при разработке приятно просто изменить представление и сразу же изменить его. С другой стороны, скомпилированные представления работают быстрее.
  • Монорельс уже некоторое время не имеет новой версии и кажется застойным. Тем не менее, Monorail3 находится в разработке.
  • MVC3 теперь также поддерживает вспомогательные методы, как методы расширения, но вы также можете объявить их непосредственно в своих представлениях Razor. Monorail поддерживает вспомогательные функции только как статические методы вспомогательного класса.
  • MVC3 имеет гораздо лучшую поддержку маршрутизации.
  • MVC3 теперь также поддерживает IoC для фильтров.
  • MVC3 поддерживает применение фильтров на уровне метода, но монорельс поддерживает фильтры только на уровне контроллера.
  • MVC3 не поддерживает Ioc из коробки, но вместо этого вы можете использовать для этого IDependencyResolver. Вы можете найти множество решений для этого.
  • MVC3 отлично поддерживает CSRF-атаки. В Monorail вам нужно будет разработать это самостоятельно, используя комбинацию помощников и фильтров.
  • MVC3 поддерживает предварительную компиляцию представлений, поэтому вы можете свести к минимуму ошибки перед публикацией своего сайта. но вы не можете сделать это с представлением nvelocity в монорельсе, так как они интерпретируются
  • MVC3 html автоматически кодирует любую строку. В монорельсе для этого всегда нужно звать помощника.

Когда выйдет Monorail 3, будет интересно посмотреть, что они поддерживают. Посмотрите на https://docs.google.com/document/d/1AkeeJPh8kZQKtnHN3RDR3v-UfG7zt9wCL0jMiualUqI/edit?hl=en&authkey=CN7U99YN&pli=1, который является ценным предложением для Monorail 3 от Hammet.

person Evangelos Skianis    schedule 20.08.2012