Getting On Board Ruby on Rails - PowerPoint PPT Presentation

1 / 40
About This Presentation
Title:

Getting On Board Ruby on Rails

Description:

Getting On Board Ruby on Rails. Brian Hogan and Lillian Hillis ... University of Wisconsin-Eau Claire. Getting On Board Ruby ... Learn to Program (Chris Pine) ... – PowerPoint PPT presentation

Number of Views:110
Avg rating:3.0/5.0
Slides: 41
Provided by: brian134
Category:
Tags: board | chris | getting | pine | rails | ruby

less

Transcript and Presenter's Notes

Title: Getting On Board Ruby on Rails


1
Getting On Board Ruby on Rails
  • Brian Hogan and Lillian Hillis
  • University of Wisconsin Eau Claire

2
Getting On Board Ruby On Rails
What's the buzz
  • Framework is two years old
  • New way to develop web-based applications
  • Lots of converts from other languages

3
Getting On Board Ruby On Rails
When to use 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

4
Getting On Board Ruby On Rails
When NOT to use Rails
  • Simple scripts
  • Non-web projects
  • Complex systems with legacy databases
  • Possible to do but you will lose productivity
    gains

5
Getting On Board Ruby On Rails
How UW-Eau Claire Uses It
  • 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

6
Getting On Board Ruby On Rails
Key Benefits
  • Rapid prototyping
  • Built-in testing
  • Easy to maintain and upgrade
  • Friendly user community
  • Easy to learn, embrace and extend
  • Its agile!

7
Getting On Board Ruby On Rails
Whos Using Rails
  • Penny Arcade
  • AListApart
  • Gusto
  • Shopify
  • Strongspace
  • Yakima-Herald Telegram
  • Subtopic

8
(No Transcript)
9
(No Transcript)
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
(No Transcript)
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 gt 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
  • Heres 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!

Im 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 isnt a good
    benchmark
  • Simultaneous actions dont 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 youll 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 wont 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
(No Transcript)
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 didnt 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
  • hoganbp_at_uwec.edu
  • bphogan_at_gmail.com
  • Contact Brian any time after the presentation

39
Getting On Board Ruby On Rails
Thanks for coming!
40
Getting On Board Ruby on Rails
Lillian Hillis hillislf_at_uwec.edu
  • Brian Hogan
  • hoganbp_at_uwec.edu
Write a Comment
User Comments (0)
About PowerShow.com