• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content

Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Like this presentation? Why not share!

Getting On Board Ruby on Rails - Rails presentation

on

  • 3,621 views

 

Statistics

Views

Total Views
3,621
Views on SlideShare
3,621
Embed Views
0

Actions

Likes
0
Downloads
18
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

    Getting On Board Ruby on Rails - Rails presentation Getting On Board Ruby on Rails - Rails presentation 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]