1 JRuby on Rails GAO ANG Sun Functional Campus Ambassador [email protected] 1.

22
1 JRuby on Rails GAO ANG Sun Functional Campus Ambassador http://www.gaoang.com [email protected] 1

Transcript of 1 JRuby on Rails GAO ANG Sun Functional Campus Ambassador [email protected] 1.

1

JRuby on Rails

GAO ANGSun Functional Campus Ambassadorhttp://www.gaoang.com

[email protected]

2

JRuby on Rails

Introduction to Ruby

Agenda

JRuby on Netbeans

Where To Go

What is JRuby

3

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.

4

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

5

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

6

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’

DEMO

7

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)

8

Java and Rails

9

Rails Architecture

• Rails applications are implemented using the Model-View-Controller (MVC)

• Model - ActiveRecord• View - ActionView• Controller - ActionController

10

Comparison of Rails and J2EE stacks

• Tomcat servlet container• Struts Web application framework• Hibernate persistence framework

11

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

12

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

13

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/

14

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

15

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!

16

JRuby on Netbeans

17

Netbeans 6.1 Depot Demo

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/

21

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

22

Gao AngSun Functional Campus Ambassadorhttp://www.gaoang.com

[email protected]

THANK YOU

30