Your SlideShare is downloading. ×
RubyonRails
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

RubyonRails

1,189
views

Published on

Published in: Technology

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,189
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
56
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Getting On Board Ruby on Rails
    • Brian Hogan and Lillian Hillis
    • University of Wisconsin – Eau Claire
  • 2. 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
  • 3. 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
  • 4. 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
  • 5. 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
  • 6. 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
  • 7. Getting On Board Ruby On Rails Who’s Using Rails
    • Penny Arcade
    • AListApart
    • Gusto
    • Shopify
    • Strongspace
    • Yakima-Herald Telegram
    • Subtopic
  • 8.  
  • 9.  
  • 10. 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
  • 11.  
  • 12. 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
  • 13. Model
    • Models also define validations and associations with other models.
  • 14. Getting On Board Ruby On Rails Models Provided by mboffin.com
  • 15. 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
  • 16. Controllers
    • Here’s a basic controller action to display a blog post
    • The URL would be /blog/show/1
  • 17. 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
  • 18. View
    • Views are similar to PHP or ASP pages
    • Much more powerful
    • Partials can be used to make our work easier
  • 19. Getting On Board Ruby On Rails Rails-specific MVC components
    • Helpers
    • Partials
    • Layouts
  • 20. 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
  • 21. 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
  • 22. 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
  • 23. Layouts Your rendered view is inserted here!
  • 24. Getting On Board Ruby On Rails Migrations
    • Database-independent schema definition
    • Incrementally define your database
    • Makes creation and recreation easy!
    I’m platform-independent!
  • 25. Getting On Board Ruby On Rails Scaffolding
    • Generation of controllers and views based on model definition
    • Not meant for production use!
      • Needs tweaking first
  • 26. Getting On Board Ruby On Rails Demo!
  • 27. 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
  • 28. 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
  • 29. 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
  • 30. 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
  • 31. Deployment
  • 32. 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?
  • 33.  
  • 34. 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!
  • 35. 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)
  • 36. 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
  • 37. Getting On Board Ruby On Rails Resources – Mailing List
    • groups.google.com/group/rubyonrails -talk
  • 38. 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
  • 39. Getting On Board Ruby On Rails Thanks for coming!
  • 40. Getting On Board Ruby on Rails
    • Brian Hogan
    • [email_address]
    Lillian Hillis [email_address]