220 likes | 410 Views
JRuby on Rails . GAO ANG Sun Functional Campus Ambassador http://www.gaoang.com tomgaoang@gmail.com. 1. Agenda. Introduction to Ruby. What is JRuby. JRuby on Rails. JRuby on Netbeans. Where To Go. What is Ruby?. Created/lead by Matz
E N D
JRuby on Rails • GAO ANG • Sun Functional Campus Ambassador • http://www.gaoang.com • tomgaoang@gmail.com 1
Agenda Introduction to Ruby What is JRuby JRuby on Rails JRuby on Netbeans Where To Go
What is Ruby? • Created/lead by Matz • Open Source interpreted scripting language, like Perl, Python, Tcl, etc. • Focused on being very object oriented, expressive, and bringing joy to programming.
Ruby calling Java • require ‘java’include_class “javax.swing.JFrame”include_class “javax.swing.JButton”frm = JFrame.new(“My frame”)btn = JButton.new(“My button”)frm.set_size(300, 300)frm.content_pane.add(btn)frm.show
DEMO Interactive ruby console: irbirb • This powerful tool can be used for trying out single line commands while you are getting used to Ruby, or to run whole programs.
DEMO Ruby in a nutshell – RubyGems • Ruby Gem: http://docs.rubygems.org/ • Examples: • gem list • gem install redcloth --version ">= 3.0.0" • Using gems in your program: • require ‘rubygems’ • require ‘some_gem’
What is Ruby on Rails • Web Framework that makes MVC-oriented web apps easy through a template engine, ORM (ActiveRecord) ,test driven development. • Much less complicated than J2EE solutions, but perhaps more so than PHP or Perl in cgi-bin. • Similar Web Framework • Python (TurboGears, Django) • Perl (Maypole) • Groovy on Rails (Grails) • Ruby(Merb)
Rails Architecture • Rails applications are implemented using the Model-View-Controller (MVC) • Model - ActiveRecord • View - ActionView • Controller - ActionController
Comparison of Rails and J2EE stacks • Tomcat servlet container • Struts Web application framework • Hibernate persistence framework
Database Migration (Bookmarks) • db/migrate/001_create_bookmarks.rb • class CreateBookmarks < ActiveRecord::Migration • def self.up • create_table :bookmarks do |t| • t.column :url, :string • t.column :title, :string • end • end • def self.down • drop_table :bookmarks • end • end
Running the Migration • Rake is the general purpose build tool for rails, much like make, or ant. It has many functions, one of which is to control migrations. • rake db:migrate • Now the table has been created • Migration in Netbeans
What is JRuby • 100% Java impl of Ruby • Ruby on the JVM • Pure interpreted, native threaded • Born 2001, product of many developers • Largely Ruby 1.8-compatible • Slower than Ruby...for now http://jruby.codehaus.org/
Why JRuby on Rails • Java is pervasive • Java libraries are exhaustive • Many still believe Java is the “everytool” • Java webapp developers are unhappy • Rails webapp developers are happy
Advantage of JRuby on Rails • JRuby on Rails mostly works right now • JRuby will not be “done” until it’s fully working • ActiveRecord-JDBC opens many doors • Java EE is actually fun with Rails • More Rails is more Rails...JRuby enables!
DEMO Netbeans 6.1 Depot Demo
Where to go for Ruby information • Online material: • http://www.ruby-doc.org/ • http://rubyonrails.org/ • Rails screencast(s) • Planet Ruby on Rails
Netbeans 6 Resources • Netbeans Product Site: http://www.netbeans.org • Download: previews, current & past releases of IDE, plugins • Learning: tutorials, technical articles, flash demos • Community: latest news, forums, events, mailing lists • Netbeans Wiki: http://wiki.netbeans.org/wiki/ • Open-source documentation site for Netbeans. • Planet Netbeans: http://www.planetnetbeans.org/ • Aggregate for all Netbeans-related blogs • Netbeans TV: http://www.netbeans.tv/ • Connecting the diverse and worldwide community of People, Projects and Technologies surrounding NetBeans.
Stay In Touch • Check blog regularly : • http://blogs.sun.com/ • http://www.javapassion.com/ • http://blogs.sun.com/GaoAng/ • Join Java Open Source User Group • BJUG http://www.bjug.org/ • BLUG http://www.beijinglug.org/ • You Can find lots of material on : • http://developers.sun.com/students/
Resources • http://java.sun.com/ • Java 2 Platform, Standard Edition v1.4.1 • java, javac, jar, jre, etc. • Online documentation and tutorials • http://www.netbeans.org/ • Docs & Support • Netbeans Tutorials & Training • Get the latest version of Netbeans • http://developers.sun.com.cn/ • The Source for Sun Developer Solutions • http://www.sunacademic.com
THANK YOU • Gao Ang • Sun Functional Campus Ambassador • http://www.gaoang.com • tomgaoang@gmail.com 30