Если вы не собираетесь писать это сами, возможно, вы захотите пойти с тем, что человеку, который будет писать, это наиболее удобно.
Полное раскрытие: я разработал несколько сайтов, используя Mono, и мне это нравится. Я использовал Ruby-on-Rails, но не для чего-то такого большого, как то, что я сделал в Mono. Имейте это в виду.
Быстрый ответ. В более широком смысле Ruby-on-Rails и ASP.NET MVC имеют больше общего, чем нет. Мой выбор - ASP.NET MVC на Mono, но я сомневаюсь, что вы пожалеете, выбрав любой из них.
Архитектура: Если вам нужен один из способов сделать это из коробки, выберите Ruby-on-Rails. Если вы хотите выбрать из ряда вариантов то, что вы считаете лучшими из лучших, выберите .NET (Mono).
Ruby-on-Rails - это скорее решение «под ключ» в том смысле, что оно предоставляет стандартный способ сделать практически все, что вам нужно, из коробки. .NET (Mono) предлагает гораздо больше возможностей (на мой взгляд, скажем так), но есть из чего выбирать, и вам придется выбирать стек технологий самостоятельно. Например, у RoR есть стандартный способ доступа к базам данных, в то время как .NET Mono позволяет / заставляет вас выбирать из дюжины различных способов сделать это.
Mono и .NET обычно имеют немного лучшее разделение проблем, поэтому пуристам в вас это может понравиться. Если нет, то вы на самом деле найдете засученные рукава и настроите Руби по своему вкусу.
Производительность и масштабируемость: Это должно явно относиться к .NET и Mono. На самом деле, я считаю, что самый быстрый способ запустить Ruby-on-Rails - это использовать IronRuby для запуска на .NET. StackOverflow написан на ASP.NET MVC и, учитывая объем трафика, он, очевидно, работает отлично. Доказательство в пудинге. Тем не менее, узкое место в производительности, вероятно, не будет вашим выбором фреймворка.
Тестирование: Старый стиль ASP.NET (теперь называется WebForms) считается довольно сложным для тестирования. Более новый ASP.NET MVC был спроектирован так, чтобы его было легко тестировать, и он похож на RoR. Одним из основных факторов является то, что в Mono вы, вероятно, будете использовать статически типизированный язык (например, C #), тогда как Ruby, конечно, является динамически типизированным языком. Вы должны написать больше тестов на динамическом языке (потому что компилятор / интерпретатор не будет обнаруживать проблемы с типами), но также может быть проще писать тесты, если вы не боретесь с компилятором. Я думаю, что это вопрос вкуса и стиля (мне нравится статичность), но это является основным фактором при ответе на этот вопрос.
Конечно, поскольку .NET / Mono является многоязычной платформой, вы всегда можете написать свои тесты ASP.NET MVC на динамическом языке. Вы даже можете сделать это в Ruby (IronRuby). Возможно, это будет лучшим из обоих миров (статическая проверка вашего реального кода и гибкий динамизм в ваших тестах). Я решил сделать это сам, используя IronPython для тестов.
Поддержка и развитие: Это сложный вопрос. Это зависит от того, что вы пишете, какие сторонние библиотеки вам могут понадобиться и какие инструменты вы собираетесь использовать. Я бы сказал, что RoR, вероятно, является более продвинутой средой MVC. Мои собственные мысли о том, что Ruby-on-Rails, вероятно, легче написать, но немного сложнее поддерживать.
Сообщество: Мне нравится сообщество Ruby больше, чем .NET, но я думаю, что мне больше всего нравится Mono. Это немного сбивает с толку. Основные ребята из Mono (вроде Майкла Хатчинсона, который ответил здесь) просто потрясающие. Мне очень нравится MonoDevelop как инструмент (IDE). Это становится все лучше и лучше. Майкл, спасибо за поддержку Git, если ты имеешь к этому какое-то отношение. : -)
Инструменты: Если вы пишете для Mono, вы можете использовать весь набор инструментов .NET (VisualStudio, ReSharper, Reflector и т. Д.), Так что это довольно сложно.Это предполагает, что вы разрабатываете на Windows, конечно.В Linux или Mac для Mono предпочтительным инструментом будет MonoDevelop.Он поддерживает управление версиями, программный отладчик и тесты NUnit прямо в IDE и полностью кросс-платформенный.
Кажется, многие пользователи Ruby просто используют простой текстовый редактор.Это может быть просто потому, что в среде IDE не так много возможностей предложить динамический язык, как в случае статического.Вот ТАК вопрос о том, что людям нравится в Ruby:
Какую Ruby IDE вы предпочитаете?
РЕДАКТИРОВАТЬ: Просто, чтобы запутать ... есть ещеMVC Framework для .NET / Mono, который больше похож на Ruby-on-Rails; MonoRail даже имеет реализацию ActiveRecord.MonoRail фактически существует дольше, чем ASP.NET MVC, но я бы остановился на ASP.NET MVC в наши дни, потому что именно в этом и заключается будущее.Кстати, ASP.NET MVC является открытым исходным кодом и поставляется с Mono из коробки (фактический код Microsoft).