Ruby On Rails

2,094 views

Published on

Introduction to RoR

Published in: Education, Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,094
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
44
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Ruby On Rails

  1. 1. Ruby On Rails Building Web Applications Is Fun!
  2. 2. What is Ruby on Rails? Rails is a full-stack framework for developing database-backed web applications according to the Model-View-Control pattern. – www.rubyonrails.org - Ruby on Rails official site
  3. 3. RoR Trivia • Written in Ruby • Creator of Ruby on Rails – David Heinemeier Hansson • Birth: July 2004 • Latest: 2.1.1: 4 September 2008 • Based on SmallTalk, Perl, Lisp • Not strongly typed
  4. 4. What is Ruby? Dynamic, high level, interpreted, pure object- orientated language. “Ruby is designed to make programmers happy” Yukihiro Matsumoto aka Matz
  5. 5. Ruby Trivia • Creator of Ruby – Yukihiro Matsumoto aka Matz • Birthday: 24 February 1993 • Originated in Japan and Rapidly Gaining Mindshare in US and Europe.
  6. 6. Design Principles
  7. 7. Design Principles Model - View - Controller • Separate data (model) from user interface (view) • Model – data access and business logic – independent of the view and controller • View – data presentation and user interaction – read-only access to the model • Controller – handling events – operating on model and view
  8. 8. Design Principles Database Persistence • OR mapping – Active Record design pattern • migrations – incremental schema management • multiple db adapters – MySQL, PostgreSQL, SQLite, SQL Server, IBM DB2, Informix, Oracle
  9. 9. Design Principles Full Stack Framework • MVC suite • built-in webserver • default db adapter • AJAX, web services, email • test framework • plugins
  10. 10. Design Principles Convention over Configuration • fixed directory structure – everything has its place – source files, libs, plugins, database files, documentation etc • file naming conventions – e.g. camel case class name, underscore file name • database naming conventions – table names, primary and foreign keys • standard configuration files – e.g. database connections, environment setting definitions (development, production, test)
  11. 11. Design Principles DRY - Don’t Repeat Yourself • reusing code – e.g. view elements • reusing data – e.g. no need to declare table field names – can be read from the database • making each line of code work harder – e.g. mini languages for specific domains • object-relational mapping • metaprogramming – dynamically created methods
  12. 12. MVC Architecture
  13. 13. MVC Architecture MVC Architecture
  14. 14. MVC Architecture Model - ActiveRecord • Object Relational Mapping – “ActiveRecord” • Less Database “glue” Code • Logging for Performance Checking
  15. 15. MVC Architecture Model : Rules • Table Names – Plurals • Attribute Names – id for primary key in table – table_id for foreign key in other table
  16. 16. MVC Architecture View - ActionView • multiple template types – oldest and basic: erb (embedded ruby), similar to e.g. jsp – remote javascript templates – xml templates • easy reuse of view elements – file inclusion – layouts, templates, partials – multiple standard "helpers" – common html element generators (e.g. form elements, paginators) • easy AJAX integration
  17. 17. MVC Architecture Controller : ActionController • Method name matches view folder – users_controller.rb works for /views/users/***.rhtml – called “actions” – all view’s methods will sit there • Ability to – CRUD – Flash – Redirect
  18. 18. Some Comparisons
  19. 19. RoR vs. Java  Comparison of Rails and J2EE stacks
  20. 20. Usage & Support
  21. 21. Usage & Support Web Servers • Lighttpd • Mongrel • WEBrick • Apache
  22. 22. Usage & Support RoR Databases • Mysql • Oracle • Postgre Sql • SqlLite
  23. 23. Usage & Support Websites on Rails
  24. 24. Usage & Support Companies Using Rails
  25. 25. References • www.slideshare.net • www.youtube.com • www.google.com • http://www.netbeans.org/kb/docs/ruby/rapid-rub • http://guides.rails.info/getting_started.html • www.rubyonrails.org • http://www.tutorialspoint.com/ruby-on-rails-2.1
  26. 26. Thank You.!!

×