RubyonRails
Upcoming SlideShare
Loading in...5
×
 

RubyonRails

on

  • 1,680 views

 

Statistics

Views

Total Views
1,680
Views on SlideShare
1,680
Embed Views
0

Actions

Likes
2
Downloads
56
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

RubyonRails RubyonRails Presentation Transcript

  • Getting On Board Ruby on Rails
    • Brian Hogan and Lillian Hillis
    • University of Wisconsin – Eau Claire
  • Getting On Board Ruby On Rails
    • Framework is two years old
    • New way to develop web-based applications
    • Lots of converts from other languages
    What's the buzz
  • Getting On Board Ruby On Rails
    • New web-to-database systems
    • Migrations from existing PHP, ASP, or Perl systems
    • An alternative to non-Enterprise J2EE systems
      • Systems in that gap between simple scripts and complex enterprise systems
    When to use Rails
  • Getting On Board Ruby On Rails
    • Simple scripts
    • Non-web projects
    • Complex systems with legacy databases
      • Possible to do but you will lose productivity gains
    When NOT to use Rails
  • Getting On Board Ruby On Rails
    • Web-based administrative systems for administrative and academic offices
      • Housing and Residence Life
      • Student Health Services
      • Music and Theater Arts
      • Continuing Education
    • Developed by student developers
      • New developers every couple of years
      • Team-based approach whenever possible
    How UW-Eau Claire Uses It
  • Getting On Board Ruby On Rails
    • Rapid prototyping
    • Built-in testing
    • Easy to maintain and upgrade
    • Friendly user community
    • Easy to learn, embrace and extend
    • It’s agile!
    Key Benefits
  • Getting On Board Ruby On Rails Who’s Using Rails
    • Penny Arcade
    • AListApart
    • Gusto
    • Shopify
    • Strongspace
    • Yakima-Herald Telegram
    • Subtopic
  •  
  •  
  • Getting On Board Ruby On Rails Rails and the MVC Pattern
    • Model - View - Controller
    • Rails follows this pattern very strictly
    • Rails adds some extra components to this pattern
  •  
  • Getting On Board Ruby On Rails Models
    • Provide access to database tables
    • Contain business rules
      • Record CRUD (Create, Read, Update, Delete)
    • An instance represents a row in a table
      • Grade model instance => one row from ‘grades’ table
  • Model
    • Models also define validations and associations with other models.
  • Getting On Board Ruby On Rails Models Provided by mboffin.com
  • Getting On Board Ruby On Rails Controllers
    • Handle user requests
    • Retrieve data from models
    • Invoke methods on models
    • Send views and responses to users
    • Should contain no business logic
      • Only flow control
  • Controllers
    • Here’s a basic controller action to display a blog post
    • The URL would be /blog/show/1
  • Getting On Board Ruby On Rails Views
    • The user screens or web pages of your applications
    • Should contain no business logic
    • Should not know about models
    • Should contain very little presentation logic whenever possible
      • Helpers are used for this
  • View
    • Views are similar to PHP or ASP pages
    • Much more powerful
    • Partials can be used to make our work easier
  • Getting On Board Ruby On Rails Rails-specific MVC components
    • Helpers
    • Partials
    • Layouts
  • Getting On Board Ruby On Rails Helpers
    • Place to put presentation logic
    • Available to Views and controllers
    • Rails has hundreds of built-in helpers for your views
    • Easy to make your own
  • Getting On Board Ruby On Rails Partials
    • Pieces of view code that can be reused
      • Can be applied to a collection of data!
    • Designed to be shared across multiple views
    • Examples
      • Form fields for Create and Update pages
      • Search results
      • Tables
      • Table rows
  • Getting On Board Ruby On Rails Layouts
    • Your templates are here.
    • Global or controller-specific
    • No need for header and footer separation
      • Rails reads the template last and places your application within the content region
    • Easy for designers to create layouts without knowing Rails
  • Layouts Your rendered view is inserted here!
  • Getting On Board Ruby On Rails Migrations
    • Database-independent schema definition
    • Incrementally define your database
    • Makes creation and recreation easy!
    I’m platform-independent!
  • Getting On Board Ruby On Rails Scaffolding
    • Generation of controllers and views based on model definition
    • Not meant for production use!
      • Needs tweaking first
  • Getting On Board Ruby On Rails Demo!
  • Getting On Board Ruby On Rails Scalability
    • Rails scales horizontally
    • When load is too high, bring up another instance of the app & load balance your traffic
    • Simple solutions for load-balancing
      • Apache 2.2 + mod_proxy_balance
      • Pound
      • Pen (Easy but no SSL support)
      • Lighttpd + mod_proxy
  • Getting On Board Ruby On Rails Scalability (continued)
    • Know your current requirements
    • “ 100 users at the same time” isn’t a good benchmark
      • Simultaneous actions don’t happen all the time
    • Think “requests per second”
      • Measure your existing apps and see how Rails compares.
    • Your database is often the first scalability problem you’ll encounter in any web application
      • Databases can be clustered
  • Getting On Board Ruby On Rails Performance
    • Rails performs on par with other languages
    • Slower on Windows
      • Limitation of compiled Ruby on Windows
    • My tests on similar hardware
      • 7 req/sec to 35 req/sec on Windows
      • 30 req/second to 150 req/second on Linux
    • Increase load by adding more “dispatchers” and load-balancing them
  • Getting On Board Ruby On Rails Deployment
    • Linux is the best for deployment
    • Windows is supported
      • IIS won’t work well, if at all
      • Simple workarounds for this exist
    • Shared Hosting providers supporting Rails
      • Dreamhost (Great for personal stuff)
      • BlueHost
      • RailsPlayground
    • High-availability providers
      • RailsMachine
      • EngineYard
  • Deployment
  • Getting On Board Ruby On Rails Security
    • Security is a people problem
      • Developers must ensure security of their code and data
      • System admins must keep their systems up to date
    • Rails has built-in mechanisms for preventing SQL injection and XSS
    • Rails is as secure as any other server-side language
    • How secure is your platform underneath the web application?
  •  
  • Choosing a Development Language
    • MyDecisionHelper
      • Helps you make critical decision using a patent-pending decision engine
      • Rails application developed by a team of five
        • Two Rails programmers, one designer, one consultant, and one market analyst, each working less than 20 hours per week
        • Developers are new to Rails
        • One developer made more progress in one weekend than in 3 months with .Net!
        • What you see didn’t exist 2 months ago!
  • Getting On Board Ruby On Rails Resources - Books
    • Learn to Program (Chris Pine)
    • Agile Web Development with Rails (Dave Thomas and David Heinemeier Hansson)
    • Ruby for Rails, Ruby techniques for Rails developers (David Black)
    • Programming Ruby (Dave Thomas)
    • Rails Recipes (Chad Fowler)
  • Getting On Board Ruby On Rails Resources – Web Sites
    • www.rubyonrails.org
    • wiki.rubyonrails.com
    • api.rubyonrails.org
    • www.uwec.edu/webdev/ror for additional resources
  • Getting On Board Ruby On Rails Resources – Mailing List
    • groups.google.com/group/rubyonrails -talk
  • Getting On Board Ruby On Rails Resources - Other
    • #rubyonrails on irc.freenode.org
    • Email Brian any time
      • [email_address]
      • [email_address]
    • Contact Brian any time after the presentation
  • Getting On Board Ruby On Rails Thanks for coming!
  • Getting On Board Ruby on Rails
    • Brian Hogan
    • [email_address]
    Lillian Hillis [email_address]