Ruby on rails Backbone.js前端与RESTful Rails后端?

Ruby on rails Backbone.js前端与RESTful Rails后端?,ruby-on-rails,backbone.js,model-view-controller,frontend,Ruby On Rails,Backbone.js,Model View Controller,Frontend,我开始在web开发领域使用PHP,最近几年使用Rails。从那以后,我一直在用Rails做我所有的web项目 最近,似乎有一种趋势是将Rails作为纯RESTful后端服务,并使用前端框架(如Backbone.js)进行所有前端交互。我想知道你们对此有什么看法?这是最终的未来吗 此外,除了Backbone.js之外,前端框架还有哪些其他替代方案 同时假设我想同时支持我的应用程序的桌面版本和移动版本,这是一个合适的选择吗?所以,我将有一个单一的后端服务与不同的前端服务?这样我就不需要管理Rails

我开始在web开发领域使用PHP,最近几年使用Rails。从那以后,我一直在用Rails做我所有的web项目

最近,似乎有一种趋势是将Rails作为纯RESTful后端服务,并使用前端框架(如Backbone.js)进行所有前端交互。我想知道你们对此有什么看法?这是最终的未来吗

此外,除了Backbone.js之外,前端框架还有哪些其他替代方案

同时假设我想同时支持我的应用程序的桌面版本和移动版本,这是一个合适的选择吗?所以,我将有一个单一的后端服务与不同的前端服务?这样我就不需要管理Rails端的所有视图了


谢谢

对于客户端框架,本文列出了20个支持和反对的框架:

清单如下:

  • 这些基本上都是关于创建客户端、基于ajax的javascript MVC框架的

    如果您希望从某个地方开始,那么我建议您考虑客户端模板(…ates…ates…ates)(仅“V”)以支持面向服务的体系结构(您创建的服务端点支持许多客户端)

    这是一种新技术,涉及到模块化客户端代码,将MVC引入客户端,并让业务逻辑在平台中生存。很多软件即服务应用程序都在利用它们,随着javascript库和框架的不断成熟,以及HTML5、CSS3等浏览器功能的不断成熟,客户端演示将越来越成熟

    所以,学习它

    有什么好处

    解释一下链接:为了利用浏览器缓存、前端客户端演示的去耦合、异步加载、渐进式渲染(对于某些框架)、性能、ajax交互等等

    几个伟大的框架包括:


  • 我强烈建议您查看中的dust.js以及为什么选择它作为比较。他们更详细、更深入地研究了为什么要改变堆栈以支持这一点(这涉及使用3种服务器端技术),以及他们对所能找到的所有框架的比较。

    几年前我在.net中做了类似的事情。Is没有通过合适的.NETMVC,也没有使用新的JS框架,但原理是一样的;服务器代码将JSON返回到javascript,javascript构建页面和交互等

    结果是一个反应灵敏的网站,但是,维护是一场噩梦。要非常小心地保持JS代码井然有序

    就我个人而言,我发现维护服务器代码(任何语言)都比维护javascript容易,这样我就不会再这样做了

    (IMHO)


    Fran

    我的观点是,当代的web应用程序正朝着这种模式发展,即拥有RESTful后端和所有在前端编码的视图交互。以下是Joe Zim的免费视频教程:


    帮助我理解主干网以及它如何简化模板和查看渲染。

    如果您还没有了解,请查看这些,并帮助我更好地理解引导。Def开始看到这样一个框架的有用性。Ryan将所有rails路由放在api名称空间中,以将其与webapp部分分开,这对我来说也很直观谢谢你的回复。我刚刚读了你提供的两篇linkedin文章。我想我已经开始更好地理解客户端模板场景了。然而,一个问题再次萦绕不去,那么这个框架和一些MVC框架(如backbone.js)之间到底有什么区别呢?这听起来像是我想要的,但当我听说backbone.js与Rails一起使用时,听起来也像我所说的。它们之间有什么区别?谢谢你说的“这个”和“一些MVC框架”,比如backbone.js,是什么意思?这些框架基本上都是MVC框架,它们利用ajax(和其他技术)与服务/服务器端应用程序交互。他们只是各有利弊。主干网是非常流行的一种,它非常遵循ajax+模型。哦,好吧,我认为backjone.js与您列出的不同。因为它不在你的框架和linkedin的列表中。我猜我错误地认为你们认为backbone.js也应该是一个选项哈哈。谢谢这是一个非常好的问题,我希望我没有用客户端模板误导您。Backbone.js提供了“客户端MVC”,使之更进一步。它有助于序列化(上面建议的方法也可以)和显示(与其他方法一样),但在利用模型方面有一些出色的特性。这就是主干网的优势所在:在映射到服务器端模型时,它将使在任何客户端上复制状态和用户手势交互的变化变得更加容易。我建议你深入研究一下。谢谢你的新答案。非常感谢!