Они похожи не только в том, что они следуют шаблону MVC, но и в том, как они это делают. Есть много очень похожих точек, но есть и много различий.
С чисто субъективной точки зрения я могу сказать, что Ruby on Rails гораздо более зрелый и есть много вещей, которые облегчают задачу создания веб-сайта. Я перешел с ASP.NET MVC на Ruby on Rails, и вот список преимуществ, которые я видел (некоторые из них действительно субъективны):
Из-за работы на серверах Linux:
- Серверы дешевле.
- Конфигурация может использоваться повторно, мы можем перестроить сервер за 30 минут. Кукольный.
Существует более 10000 библиотек, называемых гемами, все устанавливаемые и обновляемые одним и тем же простым способом. http://rubygems.org/
Несколько повторно используемых систем аутентификации, включая ту, которую я написал; ubiquitous_user + rails_openid.
Миграции. Это очень важно!
Модульное тестирование моделей с реальной живой базой данных. Работает красиво.
Функциональное тестирование контроллеров с очень мощными системами утверждений.
Независимость от платформы. Вы используете Windows, я использую Mac.
ActiveRecord (лучше, чем EF или любой другой ORM, который я видел). Изящно ухудшается, позволяя вам добавлять больше кусков SQL, пока вы не напишите все в SQL. Вам это понравится.
Инструменты командной строки проще в установке и обновлении (например, ssh, sftp / scp для копирования и синхронизации файлов, lame, sox и т. Д.).
Передача данных из контроллеров в представления не является проблемой в заднице, потому что Ruby динамичен, а C # / ASP.NET MVC - нет.
Хорошие библиотеки для геолокации.
Отличная интеграция со Sphinx.
Сообщество #ruby и #rubyonrails во FreeNode (больше, чем ## csharp y ## asp.net).
Объединить все таблицы стилей и JavaScript в двух файлах.
По умолчанию отметка времени всех файлов.
Среды: различные настройки для разработки, тестирования и производства (больше не нужно безумия web.config). Возможно больше среды.
Развертывание с помощью capistriano. Разверните с помощью одной команды все; очень повторяется и легко откатывается; заботится о миграции базы данных; может иметь дело с развертыванием на различных серверах или наборе серверов одновременно (если у вас более одного внешнего интерфейса или у вас есть производство и подготовка соответственно).
MySQL изначально. Имеет возможности кластеризации, которые могут пригодиться (я уже использовал их, чтобы иметь зеркала только для чтения)
Маршрутизация более мощная, встроенная в RESTful, тривиальная в использовании. Пространства имен, подресурсы и многие другие функции.
Нет необходимости компилировать, очень хорошо при развертывании на сервер.
Различные реализации: JRuby в Java, возможно, быстрее, работает на серверах Java, таких как tomcat. Rubinious, Ruby с JIT-компилятором.
Heroku: сервер приложений, такой как приложения Google, но для Ruby on Rails. Может быть хорошим ресурсом или нет. Они эскалируют довольно хорошо.
Очень хорошие инструменты для анализа исходного кода и поиска потенциальных проблем. Небольшой пример: http://getcaliper.com/caliper/project?repo=git://github.com/pupeno/ubiquitous_user.git
TDD не только возможен, но и прост. Сочетание динамического языка с потрясающей средой тестирования.
Гораздо лучшие методы связывания
Очень хороший генератор форм: formtastic. Может генерировать форму в одну строку.
Строительные леса.
Инструменты администратора.
Разумная система перевода, gettext.