Web aplikāciju izstrāde ar Ruby on Rails un Oracle DB

22
Web aplikāciju izstrāde ar Ruby on Rails un Oracle +

Transcript of Web aplikāciju izstrāde ar Ruby on Rails un Oracle DB

Page 1: Web aplikāciju izstrāde ar Ruby on Rails un Oracle DB

Web aplikāciju izstrāde ar Ruby on Rails un Oracle

+

Page 2: Web aplikāciju izstrāde ar Ruby on Rails un Oracle DB

Raimonds Simanovskis

TietoEnator Alise

Page 3: Web aplikāciju izstrāde ar Ruby on Rails un Oracle DB

Kas ir Ruby on Rails?

Page 4: Web aplikāciju izstrāde ar Ruby on Rails un Oracle DB

Ruby programmēšanas valoda

• Izveidoja Yukihiro Matsumoto (“Matz”) 1993-1995

• Ietekmējās no Perl, Python, Smalltalk, Lisp, CLU, ...

• “Programming Ruby”, 2000Dave Thomas, Andy Hunt

• Ruby on Rails, 2004David Heinemeier Hansson (DHH)

• 2006 2007

Page 5: Web aplikāciju izstrāde ar Ruby on Rails un Oracle DB

Ruby principi & priekšrocības

Pilnībā objektorientēta valoda

Vienkārša un saprotama sintakse

Elastīgas dinamiskās un metaprogrammēšanas iespējas

Mazāka apjoma kods

Projesionāla un atsaucīga kopiena

Page 6: Web aplikāciju izstrāde ar Ruby on Rails un Oracle DB

Ruby on RailsModerns “tīmekļa lietojumu ietvars”

Veidots Ruby programmēšanas valodā

Radies no 37signals Basecamp aplikācijas

Atvērtā koda programmatūra

Fokusējas uz izstrādātāju produktivitāti

Spējā (Agile) programmatūras izstrādes pieeja

Page 7: Web aplikāciju izstrāde ar Ruby on Rails un Oracle DB

PamatprincipiNeatkārto sevi

DRY - Don’t Repeat Yourself

Vienošanās nevis konfigurēšanaConvention over Configuration

Programmatūra ar viedokliOpinionated software

Page 8: Web aplikāciju izstrāde ar Ruby on Rails un Oracle DB

Komponentes

Page 9: Web aplikāciju izstrāde ar Ruby on Rails un Oracle DB

Active Record (Model)

Page 10: Web aplikāciju izstrāde ar Ruby on Rails un Oracle DB

Action Controller

Page 11: Web aplikāciju izstrāde ar Ruby on Rails un Oracle DB

Action View

Page 12: Web aplikāciju izstrāde ar Ruby on Rails un Oracle DB

Ruby => Oracle

Ruby application

ruby-oci8

require 'oci8'OCI8.new('scott', 'tiger').exec('select * from emp') do |r| puts r.join(',')end

Oracle Instant Client Oracle Database

SQL*Net

Page 13: Web aplikāciju izstrāde ar Ruby on Rails un Oracle DB

JRuby => Oracle

Ruby application

JRuby

require "java"sql = JavaSQL::DriverManager.getConnection(db, user, password)statement = sql.createStatementstatus = statement.execute "select * from parts;"rs = statement.getResultSet()

JDBC driver Oracle Database

SQL*Net

Page 14: Web aplikāciju izstrāde ar Ruby on Rails un Oracle DB

Ruby on Rails=> Oracle

gem install activerecord-oracle_enhanced-adapter

database.ymldevelopment: adapter: oracle_enhanced database: XE username: blogdemo password: blogdemo encoding: utf8

Page 15: Web aplikāciju izstrāde ar Ruby on Rails un Oracle DB

Demonstrācija

jeb kā uztaisīt blogaplikāciju 10 minūtēs...

Page 16: Web aplikāciju izstrāde ar Ruby on Rails un Oracle DB

ruby-plsql gemplsql.connection = OCI8.new("hr","hr","xe")

plsql.test_uppercase('xxx') # => "XXX"plsql.test_uppercase(:p_string => 'xxx') # => "XXX"plsql.test_copy("abc", nil, nil) # => { :p_to => "abc", # :p_to_double => "abcabc" }plsql.test_copy(:p_from => "abc", :p_to => nil, :p_to_double => nil) # => { :p_to => "abc", # :p_to_double => "abcabc" }plsql.hr.test_uppercase('xxx') # => "XXX"plsql.test_package.test_uppercase('xxx') # => 'XXX'plsql.hr.test_package.test_uppercase('xxx') # => 'XXX'

plsql.logoff

Page 17: Web aplikāciju izstrāde ar Ruby on Rails un Oracle DB

PL/SQL procedūras

esošās datubāzēs

class Employee < ActiveRecord::Base set_create_method do plsql.employees_pkg.create_employee( :p_first_name => first_name, :p_last_name => last_name, :p_employee_id => nil )[:p_employee_id] end set_update_method do plsql.employees_pkg.update_employee( :p_employee_id => id, :p_first_name => first_name, :p_last_name => last_name ) end set_delete_method do plsql.employees_pkg.delete_employee( :p_employee_id => id ) endend

Page 18: Web aplikāciju izstrāde ar Ruby on Rails un Oracle DB

Ruby on Rails + Oracle references

Page 19: Web aplikāciju izstrāde ar Ruby on Rails un Oracle DB
Page 20: Web aplikāciju izstrāde ar Ruby on Rails un Oracle DB
Page 21: Web aplikāciju izstrāde ar Ruby on Rails un Oracle DB
Page 22: Web aplikāciju izstrāde ar Ruby on Rails un Oracle DB

Paldies!http://blog.rayapps.comhttp://github.com/rsim