rubyonrails 090715105949-phpapp01
TRANSCRIPT
Ruby On RailsBuilding Web Applications Is Fun!
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
What is Ruby on Rails?
• 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
RoR Trivia
Dynamic, high level, interpreted, pure object-orientated language.
“Ruby is designed to make programmers happy”Yukihiro Matsumoto aka Matz
What is Ruby?
• Creator of Ruby– Yukihiro Matsumoto aka Matz
• Birthday: 24 February 1993• Originated in Japan and Rapidly Gaining Mindshare in US and Europe.
Ruby Trivia
Design Principles
• 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
Design Principles
Model - View - Controller
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
Design Principles
Full Stack Framework
• MVC suite• built-in webserver• default db adapter• AJAX, web services, email• test framework• plugins
• 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)
Design Principles
Convention over Configuration
• 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
Design Principles
DRY - Don’t Repeat Yourself
MVC Architecture
MVC Architecture
MVC Architecture
• Object Relational Mapping– “ActiveRecord”
• Less Database “glue” Code• Logging for Performance Checking
MVC Architecture
Model - ActiveRecord
MVC Architecture
Model : Rules
• Table Names– Plurals
• Attribute Names– id for primary key in table– table_id for foreign key in other table
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
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
Some Comparisons
RoR vs. Java
Comparison of Rails and J2EE stacks
Usage & Support
Usage & Support
Web Servers
• Lighttpd• Mongrel• WEBrick• Apache
Usage & Support
RoR Databases
• Mysql• Oracle• Postgre Sql• SqlLite
Usage & Support
Websites on Rails
Usage & Support
Companies Using Rails
Thank You.!!