• Like
  • Save
RubyonRails
Upcoming SlideShare
Loading in...5
×
 

RubyonRails

on

  • 1,642 views

 

Statistics

Views

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

Actions

Likes
2
Downloads
54
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]