众所周知,Ruby是一门备受Web开发者青睐的编程语言.Rails,Hanami等Web框架都是基于Ruby的.Ruby结合RIA技术则可以很轻松地胜任Web开发.所谓RIA,是Rich Internet Application的缩写,即富互联网应用程序,原先是指像Flash/AIR,Silverlight,JavaFX,Java Applet这样的拥有丰富界面,通过沙盒技术实现的应用开发平台,这些平台基于插件,并且跨平台,在早期互联网发展时代广受欢迎,后来又对Web 2.0产生了巨大的影响.现在RIA技术可以指任何具有丰富界面的Web框架,比如各类AJAX界面框架(如ExtJS,YUI),JavaScript MVC框架(如AngularJS,KnockoutJS)都归类到RIA技术上.Ruby本身做Web开发就很强大,如果配上RIA,那更是如虎添翼.因此这篇文章我想谈谈如何结合Ruby和RIA框架,进行Web开发.本人也是刚入门Ruby进行Web开发,也在积极探索和学习这方面的应用.今后我会发布更多关于这方面的文章和技术教程.
Ruby结合Flash/Adobe AIR进行RIA开发
Flash/Adobe AIR是一个众所周知的跨平台应用开发框架.可以用Adobe AIR/Flex/Flash作为客户端开发环境,利用Flash Remoting框架连接客户端和服务器端,将后端生成的数据传送到客户端界面,Ruby的Flash Remoting框架有:
RubyAMF(http://code.google.com/p/rubyamf/)
WebORB for Rails(http://www.themidnightcoders.com/products/weborb-for-rails/overview.html)
这两个框架网上都有不少教程了,这里再介绍两本关于Flex和Rails结合的书:
Flexible Rails(https://www.manning.com/books/flexible-rails) - Manning出版的书,用的是Rails 2和Flex 3,介绍了怎样开发Flex UI,以及Flex框架Cairngorm的使用,怎样结合Flex和Rails.
Flex on Rails(http://flexonrails.com/) - 同样是一本Flex和Rails开发的好书.
Ruby on Rails结合Silverlight进行RIA开发
Silverlight是微软出品的RIA框架,Silverlight程序的代码本身就可以用Ruby写(后面介绍),Silverlight同样可以结合Ruby on Rails进行RIA开发,这篇教程透露了一些方法:
Using Silverlight With Ruby On Rails (https://techblogging.wordpress.com/2008/03/26/using-silverlight-with-rubyonrails/)
Ruby on Rails结合Java Applet进行RIA开发
Java Applet是很受人诟病的RIA技术,Java 9开始就已经把Applet从Java中剔除,因此我也不太推荐Java Applet.如果实在需要在Rails中用到Java Applet可以看看这个网页:
Java applet communication with Rails application (https://stackoverflow.com/questions/904528/java-applet-communication-with-rails-application)
Ruby on Rails结合OpenLaszlo进行RIA开发
OpenLaszlo是一个开源项目,可以让你用JavaScript编写Flash应用.OpenLaszlo-Rails这个Rails插件可以让你很方便地集成OpenLaszlo应用到Rails.
OpenLaszlo-Rails(https://github.com/osteele/openlaszlo_plugin)
Ruby on Rails结合YUI进行RIA开发
YUI是由雅虎开发的JavaScript用户界面框架,可以很方便地用JavaScript直接写出前端布局.Rails可以很好,很方便地结合YUI进行开发.
YUI-Rails插件(https://github.com/nextmat/yui-rails)
在Rails应用中使用YUI TreeView(https://wyattbaldwin.com/2008/05/26/yui-treeview-with-ruby-on-rails/)
Ruby on Rails结合jQuery UI进行RIA开发
jQuery UI是基于jQuery框架的UI组件库,提供了Web前端开发所需的大部分组件.结合Rails和jQuery UI,Web开发将比使用单纯HTML,CSS,JavaScript轻松得多.
jQuery-UI-Rails插件(https://github.com/jquery-ui-rails/jquery-ui-rails)
结合jQuery UI和Rails实现自动补全功能(https://www.lugolabs.com/articles/jquery-ui-autocomplete-with-ruby-on-rails)
Ruby on Rails结合jQWidgets进行RIA开发
jQWidgets是另一个基于jQuery的UI框架.同样提供了前端开发所需组件,并且是开源的.
jQxWidgets-Rails插件(https://github.com/umerkulovb/jqxwidgets-rails)
Ruby结合ExtJS进行RIA开发
ExtJS是一个老牌的,功能强大的JavaScript UI组件框架.它不仅可以轻松地创建Web界面,进行DOM操作,还可以很方便地结合后端Web开发框架,比如Ruby on Rails.下面介绍一些结合Ruby和ExtJS的案例和框架.
ExtJS with Rails(http://www.extjswithrails.com/) - 一个专门介绍ExtJS和Rails结合使用的博客.
Netzke(http://netzke.org/) - 一个基于Rails和ExtJS的Web框架,极大简化了Web开发.
7分钟结合Rails和ExtJS开发CRUD应用(http://writelesscode.com/blog/2012/10/20/extjs-rails-crud-application-in-7-minutes/)
RSense:Ruby RIA开发框架
RSense是一个使用Ruby作为后端语言,JavaScript作为前端用户界面的RIA框架.你只需使用这一个框架就可以开发全栈应用.
RSense(https://github.com/rsense/rsense)
Ruby on Rails结合DHTMLX进行RIA开发
DHTMLX和ExtJS,YUI一样,是一个很强大的UI组件库.可以跨平台开发移动Web和桌面Web应用.
Rails结合DHTMLX Grid(https://dhtmlx.com/blog/dhtmlxgrid-with-ruby-on-rails/)
Ruby on Rails结合Angular进行RIA开发
Angular是现在最流行的Web前端框架,它和传统框架不同在于它是基于MVC模式的,易于维护和开发.Angular也可以结合ExtJS等UI框架,使前端开发如虎添翼.
Angular-Rails(http://angular-rails.com/) - 介绍Angular和Rails结合的好书,这是它的电子版.
Angular-UI(https://angular-ui.github.io/) - Angular的UI框架.
Angular结合Kendo UI(https://www.telerik.com/kendo-angular-ui/)
Ruby on Rails结合Backbone进行RIA开发
Backbone是一个MVP模式的轻量级JavaScript框架,可以很好结合jQuery等前端框架.
Backbone-Rails(https://github.com/codebrew/backbone-rails) - 结合了Rails和Backbone的开源框架.
Ruby on Rails结合SproutCore进行RIA开发
SproutCore是一个结合了MVC模式和UI组件的前端开发框架.它跨平台性能良好,并且曾受到苹果等公司的青睐.Ember.js就是SproutCore的fork.
SproutCore-Rails(https://github.com/kiskolabs/sproutcore-rails)
Ruby on Rails结合Cappuccino进行RIA开发
Cappuccino并不同于其它的JavaScript框架,它用的是一种类似于Objective-C的编程语言开发前端UI,最后编译为JavaScript.对于有过苹果设备开发经验的人来说,Cappuccino可以很方便地上手Web开发.
结合Cappuccino和Rails进行开发(http://www.cappuccino-project.org/blog/2008/11/cappuccino-and-ruby-on-rails.html)
Ruby on Rails结合Ember.js进行RIA开发
上面提到了,Ember.js是SproutCore的一个非常有名的fork.同时也是近年来非常受欢迎的JavaScript框架.
结合Rails 4和Ember.js进行开发(http://www.railsonmaui.com/blog/2013/06/11/emberjs-rails4-tutorial/)
Ruby on Rails结合CoffeeScript进行RIA开发
CoffeeScript是一种编译到JavaScript的编程语言,可以使用类似Ruby的语法编写JavaScript应用,这对于熟悉Ruby的朋友无疑是一个好工具,而且CoffeeScript基于Ruby进行安装,结合到Rails更是轻而易举.
在Rails中使用CoffeeScript(https://www.sitepoint.com/using-coffeescript-in-rails/)
使用VueJS组件,CoffeeScript和Rails进行Web开发(https://blog.codeship.com/vuejs-components-with-coffeescript-for-rails/)
结合jQuery和CoffeeScript(http://www.coffeescriptlove.com/2012/08/coffeescript-and-jquery.html)
Ruby on Rails结合VueJS进行RIA开发
VueJS是近几年兴起的JavaScript框架,并且被不少大公司,如百度,用在自己的项目上.大多数的浏览器都对VueJS支持良好,并且VueJS广泛被用于单页Web应用.
结合VueJS和Rails(https://rlafranchi.github.io/2016/03/09/vuejs-and-rails/)
Ruby on Rails结合Polymer进行RIA开发
Polymer是Google推出的Web组件框架.它很好地实现了Google所提出的Material Design设计思想.
Polymer-Rails(https://github.com/alchaplinsky/polymer-rails)
Ruby on Rails结合KnockoutJS进行RIA开发
KnockoutJS是一个基于JavaScript的MVVM框架,并且可以和jQuery UI等广泛使用的UI框架相结合.
Knockout-Rails(https://github.com/dnagir/knockout-rails)
Knockout-Kendo(http://rniemeyer.github.io/knockout-kendo/) - 结合KnockoutJS和Kendo UI.
Ruby on Rails结合Aurelia进行RIA开发
Aurelia是这几年新兴的JavaScript框架,它的设计思想和Angular,Vue,Knockout类似,今后也有很广阔的发展前景.
结合Aurelia和Ruby on Rails 2(http://patrickwalters.net/aurelia-and-rails-on-rails-2/)
IronRuby结合Silverlight进行RIA开发
IronRuby是Ruby语言的.NET实现,它打通了Ruby开发.NET应用的通道,用Ruby写Silverlight应用变得易如反掌.
结合IronRuby,Silverlight和XAML界面(http://pietschsoft.com/post/2010/10/17/Silverlight-Embed-IronRuby-within-XAML-Part-2)
总结
Ruby是一门实用的编程语言,目前Ruby的强项仍然是Web开发,而RIA技术则让Web开发变得事半功倍.本文介绍了Ruby结合RIA技术的途径,和相关的技术教程.当然未来开源社区依旧会源源不断地为我们提供新的框架,我也在不断地学习和探索这方面的实践,并且未来会发表更多的教程,以自己的微薄之力向大众普及Web开发技术.我也希望大家都能尽自己所能,贡献更多的开源项目,分享自己的技术教程,为技术的发展添砖加瓦.
领取专属 10元无门槛券
私享最新 技术干货