ASP MVC против Ruby on Rails - PullRequest
3 голосов
/ 22 июня 2010

Каковы сходные особенности и различия между ASP MVC и RubyonRails?

Ответы [ 2 ]

8 голосов
/ 22 июня 2010

Они похожи не только в том, что они следуют шаблону 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.

0 голосов
/ 22 июня 2010

Сходства в основном связаны с проектными решениями (решение использовать шаблоны MVC и т. Д.). Различия включают в себя языки (Ruby и C # / VB), среды разработки (Windows против Multi-Platform) и инструменты. В конечном счете, сходства и различия слишком многочисленны, чтобы их перечислять. Можете ли вы быть более конкретным?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...