Ruby on rails 在linux上运行的新应用程序是mono还是RoR?

Ruby on rails 在linux上运行的新应用程序是mono还是RoR?,ruby-on-rails,mono,Ruby On Rails,Mono,我对ruby本身没有什么经验。我打算雇一个人来编写一个基于web的应用程序,我希望它是用RoR编写的,但我被推荐使用mono。我猜是因为他们喜欢单声道,因为他们认为RoR很慢 整个应用程序将是某种社交媒体元管理工具。将有前端基于网络的部分,然后后端做'真正的东西' 我根本没有单声道的经验,我也没有足够的经验轻松地说RoR是最好的选择 我知道,如果RoR配置正确,它可能会非常快。我读到RoR在可伸缩性方面有一些问题。我将启动小的应用程序,如果它成功,我需要扩大它 你推荐什么? 鉴于 演出 可伸缩

我对ruby本身没有什么经验。我打算雇一个人来编写一个基于web的应用程序,我希望它是用RoR编写的,但我被推荐使用mono。我猜是因为他们喜欢单声道,因为他们认为RoR很慢

整个应用程序将是某种社交媒体元管理工具。将有前端基于网络的部分,然后后端做'真正的东西'

我根本没有单声道的经验,我也没有足够的经验轻松地说RoR是最好的选择

我知道,如果RoR配置正确,它可能会非常快。我读到RoR在可伸缩性方面有一些问题。我将启动小的应用程序,如果它成功,我需要扩大它

你推荐什么? 鉴于

  • 演出
  • 可伸缩性
  • 易于测试
  • 易于维护、开发代码/项目
(我喜欢ruby,但我自己不会成为开发人员。如果这个问题有这样的答案,我宁愿选择“更好”的选项)


请随意提出任何其他建议。

与Mono相比,我更喜欢Rails。RoR在所有云托管服务都可用的情况下,现在是非常可扩展的。Web应用程序查询数据并使用这些数据呈现Web页面,这其实没什么大不了的。大多数性能问题是由数据库和模式设计问题引起的,而不是web框架。通常,数据库响应时间使服务器处理的其他部分相形见绌。RoR也很容易测试。与我使用的其他语言相比,测试是开发中更自然的一部分。当我开始RoR编程时,我习惯了更结构化的java世界,而更具活力的Rails让我赢得了Web开发。

< P>首先,我研究了MunDeo,一个跨平台的IDE,包括Muno(包括ASP.NET和ASP.NET MVC),所以可以自由地考虑我的答案有偏见,但希望它还是有帮助的。 性能:一个好的JIT编译器(Mono)应该比解释器(Ruby)快得多。但这取决于程序员的技能——写得好的Ruby可能比写得不好的C快。您使用的库、数据库和缓存机制也将是一个重要因素,但它们不是语言/框架的基础

可伸缩性:好吧,web应用程序的可伸缩性没有灵丹妙药,尽管我在这一领域没有实际经验,但以下是我学到的一些信息。这实际上取决于数据库的使用情况、会话状态的存储方式以及缓存的实现方式。这对任何一个框架来说都不是最基本的——一旦开始扩展到多台机器,可能会有许多用于数据库服务器、缓存服务器、消息队列、前端、静态内容服务器等的机器/进程。可能只有前端是ASP.NET或ROR,如果它们是无状态的,您可以简单地克隆它们并在后端处理可伸缩性问题

测试:我不能为Ruby说话,但是ASP.NET MVC(但不是普通的ASP.NET)被设计成可以使用.NET测试工具(如NUnit)轻松测试(Mono自己的单元测试使用NUnit)

维护和开发:再说一次,我不能真正为Ruby说话,但这几乎是一个假设,即使用开发人员已有经验的语言和框架开发Ruby(至少在最初)是最容易的。另外,.NET在Windows上有一些令人惊叹的开发工具—Visual Studio、ReSharper等—并且有大量经验丰富的C#和ASP.NET开发人员可以雇佣,尽管很少有人会了解Linux/Mono


此外,StackOverflow使用ASP.NET MVC:)

如果您不打算自己编写,您可能希望使用编写它的人最熟悉的方式

充分披露:我已经开发了几个使用Mono的网站,我喜欢它。我使用过RubyonRails,但没有在Mono上使用过这么大的功能。记住这一点

快速回答:在更大的范围内,RubyonRails和ASP.NETMVC有更多的共同点。我会选择Mono上的ASP.NETMVC,但我怀疑您会后悔选择其中任何一个

架构:如果您想要一种开箱即用的方法,请选择RubyonRails。如果您想从一系列选择中选择您认为最好的技术,请选择.NET(Mono)

RubyonRails更像是一个交钥匙解决方案,因为它提供了一种标准的方式来完成您所需要的一切。NET(Mono)提供了更多的功能(比如我的观点),但是有很多不同的部件可供选择,你必须自己选择一个技术堆栈。例如,RoR有一种访问数据库的标准方法,而.NETMono让/迫使您从十几种不同的方法中进行选择

Mono和.NET通常有更好的关注点分离,因此您的纯粹主义者可能会喜欢这样。如果不是的话,你会发现Ruby的卷起袖子的态度更符合你的喜好

性能和可扩展性:这显然应该属于.NET和Mono。事实上,我认为在Rails上运行Ruby最快的方法是使用IronRuby在.NET上运行它。StackOverflow是用ASP.NETMVC编写的,考虑到通信量,它的性能显然非常好。证据就在布丁里。也就是说,性能瓶颈可能不是您选择的框架

测试:旧式ASP.NET(现在称为WebForms)被认为很难测试。较新的ASP.NET MVC设计为易于测试,与RoR类似。一个主要因素是,在Mono中,您可能会使用静态类型的语言(如C#),而Ruby当然是动态类型的