Ruby on Rails
                                              Dozent
                                               Dipl.-Inf. (FH)
                                         Julian Fischer




Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                        1
Einführung


Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                        2
Was ist
        Ruby on Rails?


Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                        3
Was ist Ruby on Rails?




Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                        4
Was ist Ruby on Rails?
• Ruby = Programmiersprache




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                            4
Was ist Ruby on Rails?
• Ruby = Programmiersprache
• Ruby on Rails
  = Web- und Persistenzframework für Ruby




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                            4
Was ist Ruby on Rails?




Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                        5
Was ist Ruby on Rails?
• Ruby on Rails (kurz Rails)
  = Web- und Persistenzframework für Ruby




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                            5
Was ist Ruby on Rails?
• Ruby on Rails (kurz Rails)
  = Web- und Persistenzframework für Ruby
• Was ist Ruby?
  Ruby = Programmiersprache




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                            5
Eigenschaften von
  Ruby on Rails

Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                        6
Eigenschaften von Rails




 Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                         7
Eigenschaften von Rails
• Basiert auf einer MVC-Architektur




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                            7
Eigenschaften von Rails
• Basiert auf einer MVC-Architektur
• MVC = Model View Controller




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                            7
Eigenschaften von Rails
• Basiert auf einer MVC-Architektur
• MVC = Model View Controller
• Trennung der Verantwortlichkeiten



    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                            7
Eigenschaften von Rails




 Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                         8
Eigenschaften von Rails




 Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                         9
Eigenschaften von Rails
• Basiert auf einer MVC-Architektur




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                            9
Eigenschaften von Rails
• Basiert auf einer MVC-Architektur
• MVC in Rails:




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                            9
Eigenschaften von Rails
• Basiert auf einer MVC-Architektur
• MVC in Rails:
                Model                                             ActiveRecord

                  View                                               ActionView

         Controller                                         ActionController

    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                            9
Eigenschaften von Rails




 Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                        10
Eigenschaften von Rails
• MVC-Architektur




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           10
Eigenschaften von Rails
• MVC-Architektur
 • Model




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           10
Eigenschaften von Rails
• MVC-Architektur
 • Model
   • = Datenmodell



   Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                          10
Eigenschaften von Rails
• MVC-Architektur
 • Model
   • = Datenmodell
   • = Geschäftsobjekte                                                   (z.B. Person)




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           10
Eigenschaften von Rails
• MVC-Architektur
 • Model
   • = Datenmodell
   • = Geschäftsobjekte                                                   (z.B. Person)


   • = Persistent                                  (SQL-DB Binding)




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           10
Model - Beispiel




Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                       11
Model - Beispiel
class SubHostingBillingPosition < HostingBillingPosition
  belongs_to :hosting

  def to_s
    ret = super
    ret += " "
    ret += hosting.id.to_s
    ret += " " + start_date.to_s
    ret += " " + end_date.to_s
  end
end




         Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                                11
Eigenschaften von Rails




 Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                        12
Eigenschaften von Rails
• MVC-Architektur




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           12
Eigenschaften von Rails
• MVC-Architektur
   • View




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           12
Eigenschaften von Rails
• MVC-Architektur
   • View
    • = User Interface



    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           12
Eigenschaften von Rails
• MVC-Architektur
   • View
    • = User Interface
    • Visuelle Darstellung der
                Geschäftsobjekte



    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           12
Eigenschaften von Rails




 Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                        13
Eigenschaften von Rails
• MVC-Architektur




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           13
Eigenschaften von Rails
• MVC-Architektur
   • View - Mögliche Ausgabeformate




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           13
Eigenschaften von Rails
• MVC-Architektur
   • View - Mögliche Ausgabeformate
      • HTML



    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           13
Eigenschaften von Rails
• MVC-Architektur
   • View - Mögliche Ausgabeformate
      • HTML
      • XML


    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           13
Eigenschaften von Rails
• MVC-Architektur
   • View - Mögliche Ausgabeformate
      • HTML
      • XML
      • PDF

    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           13
Eigenschaften von Rails
• MVC-Architektur
   • View - Mögliche Ausgabeformate
      • HTML
      • XML
      • PDF
      • JSON
    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           13
Eigenschaften von Rails
• MVC-Architektur
   • View - Mögliche Ausgabeformate
      • HTML
      • XML
      • PDF
      • JSON
      • ...
    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           13
View - Beispiel




Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                       14
View - Beispiel
<% for column in Branding.content_columns %>
<p>
  <b><%= column.human_name %>:</b> <%=h @branding.send(column.name) %>
</p>
<% end %>

<%= link_to 'Edit', :action => 'edit', :id => @branding %> |
<%= link_to 'Back', :action => 'list' %>




         Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                                14
Eigenschaften von Rails




 Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                        15
Eigenschaften von Rails
• MVC-Architektur




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           15
Eigenschaften von Rails
• MVC-Architektur
   • Controller




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           15
Eigenschaften von Rails
• MVC-Architektur
   • Controller
    • Handhabung der Benutzerinteraktion
                (HTTP-Requests)




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           15
Eigenschaften von Rails
• MVC-Architektur
   • Controller
    • Handhabung der Benutzerinteraktion
                (HTTP-Requests)


    • Zugriff auf Modelle

    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           15
Eigenschaften von Rails
• MVC-Architektur
   • Controller
    • Handhabung der Benutzerinteraktion
                (HTTP-Requests)


    • Zugriff auf Modelle
    • Aufbereitung der Daten
    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           15
Eigenschaften von Rails
• MVC-Architektur
   • Controller
    • Handhabung der Benutzerinteraktion
                (HTTP-Requests)


    • Zugriff auf Modelle
    • Aufbereitung der Daten
    • Entscheidung, welche View
                darzustellen ist
    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           15
Controller - Beispiel




Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                       16
Controller - Beispiel
class BrandingsController < ApplicationController
  def index
    list
    render :action => 'list'
  end

[...]

  def edit
    @branding = Branding.find(params[:id])
  end

  def update
    @branding = Branding.find(params[:id])
    if @branding.update_attributes(params[:branding])
      flash[:notice] = 'Branding was successfully updated.'
      redirect_to :action => 'show', :id => @branding
    else
      render :action => 'edit'
    end
  end

[...]
           Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                                  16
Warum Ruby on Rails?


  Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                         17
Warum Rails?




Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                       18
Warum Rails?
• Vorgegebene Projektstruktur




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           18
Warum Rails?
• Vorgegebene Projektstruktur
 • Jedes Rails Projekt hat das gleiche
    Verzeichnis-Layout




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           18
Warum Rails?
• Vorgegebene Projektstruktur
 • Jedes Rails Projekt hat das gleiche
    Verzeichnis-Layout
    • Erleichterte Einarbeitung in fremde
          Projekte




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           18
Warum Rails?
• Vorgegebene Projektstruktur
 • Jedes Rails Projekt hat das gleiche
    Verzeichnis-Layout
    • Erleichterte Einarbeitung in fremde
          Projekte
    • Motiviert zur Einhaltung der
          „Good practices“

    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           18
Warum Rails?




Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                       19
Warum Rails?
• Good practices, z.B.




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           19
Warum Rails?
• Good practices, z.B.
 • testgetriebene Entwicklung




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           19
Warum Rails?
• Good practices, z.B.
 • testgetriebene Entwicklung
 • MVC



    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           19
Warum Rails?
• Good practices, z.B.
 • testgetriebene Entwicklung
 • MVC
 • ...


    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           19
Warum Rails?




Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                       20
Warum Rails?
• Werkzeuge




   Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                          20
Warum Rails?
• Werkzeuge
 • Ruby - Rake




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           20
Warum Rails?
• Werkzeuge
 • Ruby - Rake
 • Ruby - Gems



   Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                          20
Warum Rails?
• Werkzeuge
 • Ruby - Rake
 • Ruby - Gems
 • Rails - Plugins


    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           20
Warum Rails?
• Werkzeuge
 • Ruby - Rake
 • Ruby - Gems
 • Rails - Plugins
 • Rails - Generators

    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           20
Warum Rails?




Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                       21
Warum Rails?
• Community




   Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                          21
Warum Rails?
• Community
 • Aktive und wachsende
   Entwicklergemeinschaft




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           21
Warum Rails?
• Community
 • Aktive und wachsende
   Entwicklergemeinschaft
 • Viele frei verfügbare Plugins, Code-
   Stücke, usw.




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           21
Demo!


Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                       22

Ruby On Rails Vorlesung 1 Rails Überblick

  • 1.
    Ruby on Rails Dozent Dipl.-Inf. (FH) Julian Fischer Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 1
  • 2.
    Einführung Dipl.-Inf. (FH) JulianFischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 2
  • 3.
    Was ist Ruby on Rails? Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 3
  • 4.
    Was ist Rubyon Rails? Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 4
  • 5.
    Was ist Rubyon Rails? • Ruby = Programmiersprache Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 4
  • 6.
    Was ist Rubyon Rails? • Ruby = Programmiersprache • Ruby on Rails = Web- und Persistenzframework für Ruby Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 4
  • 7.
    Was ist Rubyon Rails? Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 5
  • 8.
    Was ist Rubyon Rails? • Ruby on Rails (kurz Rails) = Web- und Persistenzframework für Ruby Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 5
  • 9.
    Was ist Rubyon Rails? • Ruby on Rails (kurz Rails) = Web- und Persistenzframework für Ruby • Was ist Ruby? Ruby = Programmiersprache Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 5
  • 10.
    Eigenschaften von Ruby on Rails Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 6
  • 11.
    Eigenschaften von Rails Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 7
  • 12.
    Eigenschaften von Rails •Basiert auf einer MVC-Architektur Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 7
  • 13.
    Eigenschaften von Rails •Basiert auf einer MVC-Architektur • MVC = Model View Controller Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 7
  • 14.
    Eigenschaften von Rails •Basiert auf einer MVC-Architektur • MVC = Model View Controller • Trennung der Verantwortlichkeiten Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 7
  • 15.
    Eigenschaften von Rails Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 8
  • 16.
    Eigenschaften von Rails Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 9
  • 17.
    Eigenschaften von Rails •Basiert auf einer MVC-Architektur Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 9
  • 18.
    Eigenschaften von Rails •Basiert auf einer MVC-Architektur • MVC in Rails: Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 9
  • 19.
    Eigenschaften von Rails •Basiert auf einer MVC-Architektur • MVC in Rails: Model ActiveRecord View ActionView Controller ActionController Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 9
  • 20.
    Eigenschaften von Rails Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 10
  • 21.
    Eigenschaften von Rails •MVC-Architektur Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 10
  • 22.
    Eigenschaften von Rails •MVC-Architektur • Model Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 10
  • 23.
    Eigenschaften von Rails •MVC-Architektur • Model • = Datenmodell Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 10
  • 24.
    Eigenschaften von Rails •MVC-Architektur • Model • = Datenmodell • = Geschäftsobjekte (z.B. Person) Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 10
  • 25.
    Eigenschaften von Rails •MVC-Architektur • Model • = Datenmodell • = Geschäftsobjekte (z.B. Person) • = Persistent (SQL-DB Binding) Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 10
  • 26.
    Model - Beispiel Dipl.-Inf.(FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 11
  • 27.
    Model - Beispiel classSubHostingBillingPosition < HostingBillingPosition belongs_to :hosting def to_s ret = super ret += " " ret += hosting.id.to_s ret += " " + start_date.to_s ret += " " + end_date.to_s end end Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 11
  • 28.
    Eigenschaften von Rails Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 12
  • 29.
    Eigenschaften von Rails •MVC-Architektur Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 12
  • 30.
    Eigenschaften von Rails •MVC-Architektur • View Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 12
  • 31.
    Eigenschaften von Rails •MVC-Architektur • View • = User Interface Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 12
  • 32.
    Eigenschaften von Rails •MVC-Architektur • View • = User Interface • Visuelle Darstellung der Geschäftsobjekte Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 12
  • 33.
    Eigenschaften von Rails Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 13
  • 34.
    Eigenschaften von Rails •MVC-Architektur Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 13
  • 35.
    Eigenschaften von Rails •MVC-Architektur • View - Mögliche Ausgabeformate Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 13
  • 36.
    Eigenschaften von Rails •MVC-Architektur • View - Mögliche Ausgabeformate • HTML Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 13
  • 37.
    Eigenschaften von Rails •MVC-Architektur • View - Mögliche Ausgabeformate • HTML • XML Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 13
  • 38.
    Eigenschaften von Rails •MVC-Architektur • View - Mögliche Ausgabeformate • HTML • XML • PDF Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 13
  • 39.
    Eigenschaften von Rails •MVC-Architektur • View - Mögliche Ausgabeformate • HTML • XML • PDF • JSON Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 13
  • 40.
    Eigenschaften von Rails •MVC-Architektur • View - Mögliche Ausgabeformate • HTML • XML • PDF • JSON • ... Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 13
  • 41.
    View - Beispiel Dipl.-Inf.(FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 14
  • 42.
    View - Beispiel <%for column in Branding.content_columns %> <p> <b><%= column.human_name %>:</b> <%=h @branding.send(column.name) %> </p> <% end %> <%= link_to 'Edit', :action => 'edit', :id => @branding %> | <%= link_to 'Back', :action => 'list' %> Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 14
  • 43.
    Eigenschaften von Rails Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 15
  • 44.
    Eigenschaften von Rails •MVC-Architektur Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 15
  • 45.
    Eigenschaften von Rails •MVC-Architektur • Controller Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 15
  • 46.
    Eigenschaften von Rails •MVC-Architektur • Controller • Handhabung der Benutzerinteraktion (HTTP-Requests) Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 15
  • 47.
    Eigenschaften von Rails •MVC-Architektur • Controller • Handhabung der Benutzerinteraktion (HTTP-Requests) • Zugriff auf Modelle Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 15
  • 48.
    Eigenschaften von Rails •MVC-Architektur • Controller • Handhabung der Benutzerinteraktion (HTTP-Requests) • Zugriff auf Modelle • Aufbereitung der Daten Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 15
  • 49.
    Eigenschaften von Rails •MVC-Architektur • Controller • Handhabung der Benutzerinteraktion (HTTP-Requests) • Zugriff auf Modelle • Aufbereitung der Daten • Entscheidung, welche View darzustellen ist Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 15
  • 50.
    Controller - Beispiel Dipl.-Inf.(FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 16
  • 51.
    Controller - Beispiel classBrandingsController < ApplicationController def index list render :action => 'list' end [...] def edit @branding = Branding.find(params[:id]) end def update @branding = Branding.find(params[:id]) if @branding.update_attributes(params[:branding]) flash[:notice] = 'Branding was successfully updated.' redirect_to :action => 'show', :id => @branding else render :action => 'edit' end end [...] Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 16
  • 52.
    Warum Ruby onRails? Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 17
  • 53.
    Warum Rails? Dipl.-Inf. (FH)Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 18
  • 54.
    Warum Rails? • VorgegebeneProjektstruktur Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 18
  • 55.
    Warum Rails? • VorgegebeneProjektstruktur • Jedes Rails Projekt hat das gleiche Verzeichnis-Layout Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 18
  • 56.
    Warum Rails? • VorgegebeneProjektstruktur • Jedes Rails Projekt hat das gleiche Verzeichnis-Layout • Erleichterte Einarbeitung in fremde Projekte Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 18
  • 57.
    Warum Rails? • VorgegebeneProjektstruktur • Jedes Rails Projekt hat das gleiche Verzeichnis-Layout • Erleichterte Einarbeitung in fremde Projekte • Motiviert zur Einhaltung der „Good practices“ Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 18
  • 58.
    Warum Rails? Dipl.-Inf. (FH)Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 19
  • 59.
    Warum Rails? • Goodpractices, z.B. Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 19
  • 60.
    Warum Rails? • Goodpractices, z.B. • testgetriebene Entwicklung Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 19
  • 61.
    Warum Rails? • Goodpractices, z.B. • testgetriebene Entwicklung • MVC Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 19
  • 62.
    Warum Rails? • Goodpractices, z.B. • testgetriebene Entwicklung • MVC • ... Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 19
  • 63.
    Warum Rails? Dipl.-Inf. (FH)Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 20
  • 64.
    Warum Rails? • Werkzeuge Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 20
  • 65.
    Warum Rails? • Werkzeuge • Ruby - Rake Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 20
  • 66.
    Warum Rails? • Werkzeuge • Ruby - Rake • Ruby - Gems Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 20
  • 67.
    Warum Rails? • Werkzeuge • Ruby - Rake • Ruby - Gems • Rails - Plugins Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 20
  • 68.
    Warum Rails? • Werkzeuge • Ruby - Rake • Ruby - Gems • Rails - Plugins • Rails - Generators Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 20
  • 69.
    Warum Rails? Dipl.-Inf. (FH)Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 21
  • 70.
    Warum Rails? • Community Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 21
  • 71.
    Warum Rails? • Community • Aktive und wachsende Entwicklergemeinschaft Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 21
  • 72.
    Warum Rails? • Community • Aktive und wachsende Entwicklergemeinschaft • Viele frei verfügbare Plugins, Code- Stücke, usw. Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 21
  • 73.
    Demo! Dipl.-Inf. (FH) JulianFischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 22

Hinweis der Redaktion

  • #13 H&amp;#xE4;ufige Rollenverteilung: PM und Kunde ermitteln Anforderungen, Grafiker fertigt &amp;#x201E;Screens&amp;#x201C; an. Screens = Photoshop-Files: Webseite als einzelne Grafik. HTMLer zerschneidet Grafik und erstellt HTML/CSS (Barrierefrei, browsersicher, ...), Programmierer realisieren das Verhalten der Anwendung
  • #14 Active Record: OR-Relationales Mapping, Speichern von Datens&amp;#xE4;tzen in DB, Laden aus DB, Ruby Action View: HTML mit eingebettetem Ruby (&amp;#xE4;hnlich JSP, PHP, embedded Perl, ...) Action Controller: Ruby
  • #15 Active Record: OR-Relationales Mapping, Speichern von Datens&amp;#xE4;tzen in DB, Laden aus DB, Ruby Action View: HTML mit eingebettetem Ruby (&amp;#xE4;hnlich JSP, PHP, embedded Perl, ...) Action Controller: Ruby
  • #16 Active Record: OR-Relationales Mapping, Speichern von Datens&amp;#xE4;tzen in DB, Laden aus DB, Ruby Action View: HTML mit eingebettetem Ruby (&amp;#xE4;hnlich JSP, PHP, embedded Perl, ...) Action Controller: Ruby
  • #22 Verberbung Belongs_to: 1:n Beziehung mit Model &amp;#x201E;Hosting&amp;#x201C; &amp;#xDC;berschriebene toString-Methode in Ruby (Analog Java)
  • #23 HTMLer Setzt vorgegebene Grafik in HTML/CSS um
  • #24 HTMLer Setzt vorgegebene Grafik in HTML/CSS um
  • #25 HTMLer Setzt vorgegebene Grafik in HTML/CSS um
  • #26 HTMLer Setzt vorgegebene Grafik in HTML/CSS um
  • #27 HTMLer Setzt vorgegebene Grafik in HTML/CSS um
  • #28 HTMLer Setzt vorgegebene Grafik in HTML/CSS um
  • #29 HTMLer Setzt vorgegebene Grafik in HTML/CSS um
  • #30 HTMLer Setzt vorgegebene Grafik in HTML/CSS um
  • #31 HTMLer Setzt vorgegebene Grafik in HTML/CSS um
  • #32 HTMLer Setzt vorgegebene Grafik in HTML/CSS um
  • #33 HTMLer Setzt vorgegebene Grafik in HTML/CSS um
  • #34 HTMLer Setzt vorgegebene Grafik in HTML/CSS um
  • #35 Ausf&amp;#xFC;hrende Rolle: Programmierer
  • #36 Ausf&amp;#xFC;hrende Rolle: Programmierer
  • #37 Ausf&amp;#xFC;hrende Rolle: Programmierer
  • #38 Ausf&amp;#xFC;hrende Rolle: Programmierer
  • #39 Ausf&amp;#xFC;hrende Rolle: Programmierer
  • #40 Ausf&amp;#xFC;hrende Rolle: Programmierer
  • #41 Ausf&amp;#xFC;hrende Rolle: Programmierer
  • #43 LIVE: Rails Projekt generieren, Projektstruktur demonstrieren
  • #44 LIVE: Rails Projekt generieren, Projektstruktur demonstrieren
  • #45 LIVE: Rails Projekt generieren, Projektstruktur demonstrieren
  • #46 LIVE: Rails Projekt generieren, Projektstruktur demonstrieren
  • #47 LIVE: Rails Projekt generieren, Projektstruktur demonstrieren
  • #48 LIVE: Rails Projekt generieren, Projektstruktur demonstrieren
  • #49 LIVE: Rails Projekt generieren, Projektstruktur demonstrieren
  • #50 LIVE: Rails Projekt generieren, Projektstruktur demonstrieren
  • #51 Rake: Analog make / ant -&gt; Automatisierung von Entwicklungsprozessen (z.B. Ausf&amp;#xFC;hrung von DB-Migrationen) Gems: Ruby Bibliotheken, &amp;#xE4;hnlich wie Java-Jars, organisiert wie Perl-Pakete, Debian Pakete, ... Plugins: Rails Funktionalit&amp;#xE4;ten, &amp;#xE4;hnlich wie AOP Generators: Erzeugt h&amp;#xE4;ufig ben&amp;#xF6;tigte Code-Ger&amp;#xFC;ste (z.B. HTML-Grundger&amp;#xFC;st, ...)
  • #52 Rake: Analog make / ant -&gt; Automatisierung von Entwicklungsprozessen (z.B. Ausf&amp;#xFC;hrung von DB-Migrationen) Gems: Ruby Bibliotheken, &amp;#xE4;hnlich wie Java-Jars, organisiert wie Perl-Pakete, Debian Pakete, ... Plugins: Rails Funktionalit&amp;#xE4;ten, &amp;#xE4;hnlich wie AOP Generators: Erzeugt h&amp;#xE4;ufig ben&amp;#xF6;tigte Code-Ger&amp;#xFC;ste (z.B. HTML-Grundger&amp;#xFC;st, ...)
  • #53 Rake: Analog make / ant -&gt; Automatisierung von Entwicklungsprozessen (z.B. Ausf&amp;#xFC;hrung von DB-Migrationen) Gems: Ruby Bibliotheken, &amp;#xE4;hnlich wie Java-Jars, organisiert wie Perl-Pakete, Debian Pakete, ... Plugins: Rails Funktionalit&amp;#xE4;ten, &amp;#xE4;hnlich wie AOP Generators: Erzeugt h&amp;#xE4;ufig ben&amp;#xF6;tigte Code-Ger&amp;#xFC;ste (z.B. HTML-Grundger&amp;#xFC;st, ...)
  • #54 Rake: Analog make / ant -&gt; Automatisierung von Entwicklungsprozessen (z.B. Ausf&amp;#xFC;hrung von DB-Migrationen) Gems: Ruby Bibliotheken, &amp;#xE4;hnlich wie Java-Jars, organisiert wie Perl-Pakete, Debian Pakete, ... Plugins: Rails Funktionalit&amp;#xE4;ten, &amp;#xE4;hnlich wie AOP Generators: Erzeugt h&amp;#xE4;ufig ben&amp;#xF6;tigte Code-Ger&amp;#xFC;ste (z.B. HTML-Grundger&amp;#xFC;st, ...)
  • #55 Rake: Analog make / ant -&gt; Automatisierung von Entwicklungsprozessen (z.B. Ausf&amp;#xFC;hrung von DB-Migrationen) Gems: Ruby Bibliotheken, &amp;#xE4;hnlich wie Java-Jars, organisiert wie Perl-Pakete, Debian Pakete, ... Plugins: Rails Funktionalit&amp;#xE4;ten, &amp;#xE4;hnlich wie AOP Generators: Erzeugt h&amp;#xE4;ufig ben&amp;#xF6;tigte Code-Ger&amp;#xFC;ste (z.B. HTML-Grundger&amp;#xFC;st, ...)
  • #56 Rake: Analog make / ant -&gt; Automatisierung von Entwicklungsprozessen (z.B. Ausf&amp;#xFC;hrung von DB-Migrationen) Gems: Ruby Bibliotheken, &amp;#xE4;hnlich wie Java-Jars, organisiert wie Perl-Pakete, Debian Pakete, ... Plugins: Rails Funktionalit&amp;#xE4;ten, &amp;#xE4;hnlich wie AOP Generators: Erzeugt h&amp;#xE4;ufig ben&amp;#xF6;tigte Code-Ger&amp;#xFC;ste (z.B. HTML-Grundger&amp;#xFC;st, ...)
  • #57 Rake: Analog make / ant -&gt; Automatisierung von Entwicklungsprozessen (z.B. Ausf&amp;#xFC;hrung von DB-Migrationen) Gems: Ruby Bibliotheken, &amp;#xE4;hnlich wie Java-Jars, organisiert wie Perl-Pakete, Debian Pakete, ... Plugins: Rails Funktionalit&amp;#xE4;ten, &amp;#xE4;hnlich wie AOP Generators: Erzeugt h&amp;#xE4;ufig ben&amp;#xF6;tigte Code-Ger&amp;#xFC;ste (z.B. HTML-Grundger&amp;#xFC;st, ...)
  • #58 Rake: Analog make / ant -&gt; Automatisierung von Entwicklungsprozessen (z.B. Ausf&amp;#xFC;hrung von DB-Migrationen) Gems: Ruby Bibliotheken, &amp;#xE4;hnlich wie Java-Jars, organisiert wie Perl-Pakete, Debian Pakete, ... Plugins: Rails Funktionalit&amp;#xE4;ten, &amp;#xE4;hnlich wie AOP Generators: Erzeugt h&amp;#xE4;ufig ben&amp;#xF6;tigte Code-Ger&amp;#xFC;ste (z.B. HTML-Grundger&amp;#xFC;st, ...)