SlideShare ist ein Scribd-Unternehmen logo
1 von 34
Daniel Dengler
                                                                                               web developer




   Ruby on Rails
               Workshop SS 2009


„Ruby on Rails“ and the Rails-Logo are registered trademarks of David Heinemeier Hansson – www.rubyonrails.org
PAPEO
   Portable Assistant for
Personal Electronic Ordering
Versionsvergleich
PHP Version                         Ruby on Rails Version
• 7000 Zeilen PHP Code              • 700 Zeilen Ruby Code
• MySQL Datenbank                   • PostgreSQL Datenbank
• Apache Webserver                  • Mongrel Applicationserver im
• Mängel bei der Barrierefreiheit     Clusterbetrieb
• Schlechte Usability im Backend    • Apache als Proxy Balancer
• Keine Tests                       • Verbesserte Barrierefreiheit
• Dateninkonsistenz möglich         • Bessere Usability im Backend
• langsam                             dank AJAX
                                    • Einige Tests
                                    • Neue Features
                                    • Transaktionssicherheit
                                    • schneller
Zeitaufwand


              Konzeption
              PHP Version + Java Module
              Ruby on Rails Version
              Dokumentation
Weitere Beispiele
2
Grundbegriffe
Ruby ≠ Rails
Ruby ≠ Ruby on Rails
Ruby: 
 • Objektorientierte Programmiersprache
 • Interpretierte Sprache
 • Angenehme, einfache Syntax

Ruby on Rails:
 • Framework zur Webentwicklung
Framework
• Grundgerüst auf dem eine konkrete
  Anwendung entwickelt werden kann

• Stellt Objekte / Funktionen zur Verfügung,
  die vom Anwendungsentwickler
  verwendet werden können

• Externe Module können
  wiederverwendet werden (Plugins)
Vorteile
• Immer wiederkehrende Probleme müssen
  nicht neu gelöst werden

• Einheitliche Architektur erleichtert das
  einlesen in neue Anwendungen

• Grundlegende Sicherheit bereits durch
  das Framework vorgegeben (etwa das
  Verhindern von SQL Injections)
Vorteile
• Abstraktion der Datenhaltung
  (Austausch des DB-Systems ohne weiteres
  denkbar)

• Trennung von Daten, Logik und
  Darstellung (siehe MVC) -> getrennte
  Erstellung durch jeweiliges Fachpersonal
  möglich
The right
tool for the
 right job
Model View Controller

Trennung von:

 • Datenmodell (Model)
 • Ablau ogik (Controller)
 • Darstellung (View)
Model View Controller
Vorteile
 •   Jede Komponente kann unabhängig von
     Spezialisten gep egt werden
 •   Anwendung wird transparenter und exibler

Nachteil
 •   Bei sehr kleinen Anwendungen oft zu komplex

Erweiterung
 •   Routing bei Webapplikationen
Datenmodell
Interaktion mit der Datenbank
create, read, update, delete (CRUD)

Beziehungen herstellen
(z.B. Projektobjekt hat viele Aufgabenobjekte)

Validierung von Eingabedaten
(z.B. Titel ist für ein Aufgabenobjekt erforderlich)

Datenlogik
(z.B. ein Projektobjekt gilt als abgeschlossen, wenn alle
zugeordneten Aufgabenobjekte als erledigt markiert
sind)
Ablau ogik
Interaktion mit den Datenmodellen
(z.B. lösche das Projekt mit der Nummer 27)

Bedingungen prüfen
(z.B. darf ein Benutzer ein Projekt löschen?)

Fehlerbehandlung
(z.B. konnte das Aufgabenobjekt gespeichert werden?)

Weiterleiten von Daten an die jeweilige Darstellung
(z.B. alle Projekte laden, die noch nicht abgeschlossen
sind. Danach generieren der Projektübersicht anstoßen)
Darstellung
Anzeige der vom Controller erhaltenen Daten
(z.B. übergebene Projekte als Tabelle ausgeben)

Verknüpfungen herstellen
(z.B. Links zum bearbeiten der Projekte)

Anzeigen von Fehlermeldungen
(z.B. warum konnte das Aufgabenobjekt nicht
gespeichert werden?)

Darstellen der Daten in einem bestimmten Format
(z.B. als HTML, XML oder PDF)
Linksammlung
Offizielle Ruby Website
http://www.ruby-lang.org

Offizielle Ruby on Rails Website
http://www.rubyonrails.com/

MVC
http://de.wikipedia.org/wiki/
Model_View_Controller
?

Weitere ähnliche Inhalte

Andere mochten auch

Kontaktanzeige
KontaktanzeigeKontaktanzeige
Kontaktanzeigeguest26ca4
 
Présentation La Presse Al Gore
Présentation La Presse Al GorePrésentation La Presse Al Gore
Présentation La Presse Al GoreAnnie
 
Deutschland 2049 Auf dem Weg zu einer nachhaltigen Rohstoffwirtschaft - Instr...
Deutschland 2049 Auf dem Weg zu einer nachhaltigen Rohstoffwirtschaft - Instr...Deutschland 2049 Auf dem Weg zu einer nachhaltigen Rohstoffwirtschaft - Instr...
Deutschland 2049 Auf dem Weg zu einer nachhaltigen Rohstoffwirtschaft - Instr...Oeko-Institut
 
Ein Jahr nach Fukushima: Die Stromversorgung ohne Kernenergie ist machbar
Ein Jahr nach Fukushima: Die Stromversorgung ohne Kernenergie ist machbarEin Jahr nach Fukushima: Die Stromversorgung ohne Kernenergie ist machbar
Ein Jahr nach Fukushima: Die Stromversorgung ohne Kernenergie ist machbarOeko-Institut
 
Traballo sobre O liño, Marlén 6º curso
Traballo sobre O liño, Marlén 6º cursoTraballo sobre O liño, Marlén 6º curso
Traballo sobre O liño, Marlén 6º cursoMarta Pérez Lage
 
Bloggen mit Spass
Bloggen mit SpassBloggen mit Spass
Bloggen mit SpassFrank Hamm
 
Gemein Aber Gut!
Gemein Aber Gut!Gemein Aber Gut!
Gemein Aber Gut!Schnulle
 
Status des Projektes Joomla!Day Germany 2011
Status des Projektes Joomla!Day Germany 2011Status des Projektes Joomla!Day Germany 2011
Status des Projektes Joomla!Day Germany 2011Robert Deutz
 
Stuttgart - Eine Projektarbeit
Stuttgart - Eine ProjektarbeitStuttgart - Eine Projektarbeit
Stuttgart - Eine ProjektarbeitYPEPTH
 
Mercosur Y Ouro Preto Lic.Gigli Box
Mercosur Y Ouro Preto Lic.Gigli BoxMercosur Y Ouro Preto Lic.Gigli Box
Mercosur Y Ouro Preto Lic.Gigli BoxCeleste Box
 
Samsung YP-T10 Vorschau
Samsung YP-T10 VorschauSamsung YP-T10 Vorschau
Samsung YP-T10 Vorschaudamai789
 
Presentacion clase 03
Presentacion clase 03Presentacion clase 03
Presentacion clase 03ESPOCH
 

Andere mochten auch (20)

Bourges
BourgesBourges
Bourges
 
Kontaktanzeige
KontaktanzeigeKontaktanzeige
Kontaktanzeige
 
Présentation La Presse Al Gore
Présentation La Presse Al GorePrésentation La Presse Al Gore
Présentation La Presse Al Gore
 
Deutschland 2049 Auf dem Weg zu einer nachhaltigen Rohstoffwirtschaft - Instr...
Deutschland 2049 Auf dem Weg zu einer nachhaltigen Rohstoffwirtschaft - Instr...Deutschland 2049 Auf dem Weg zu einer nachhaltigen Rohstoffwirtschaft - Instr...
Deutschland 2049 Auf dem Weg zu einer nachhaltigen Rohstoffwirtschaft - Instr...
 
Ein Jahr nach Fukushima: Die Stromversorgung ohne Kernenergie ist machbar
Ein Jahr nach Fukushima: Die Stromversorgung ohne Kernenergie ist machbarEin Jahr nach Fukushima: Die Stromversorgung ohne Kernenergie ist machbar
Ein Jahr nach Fukushima: Die Stromversorgung ohne Kernenergie ist machbar
 
Traballo sobre O liño, Marlén 6º curso
Traballo sobre O liño, Marlén 6º cursoTraballo sobre O liño, Marlén 6º curso
Traballo sobre O liño, Marlén 6º curso
 
El cuento
El cuentoEl cuento
El cuento
 
Test
TestTest
Test
 
Bloggen mit Spass
Bloggen mit SpassBloggen mit Spass
Bloggen mit Spass
 
Gemein Aber Gut!
Gemein Aber Gut!Gemein Aber Gut!
Gemein Aber Gut!
 
Aparente Callejón sin Salida
Aparente Callejón sin SalidaAparente Callejón sin Salida
Aparente Callejón sin Salida
 
Status des Projektes Joomla!Day Germany 2011
Status des Projektes Joomla!Day Germany 2011Status des Projektes Joomla!Day Germany 2011
Status des Projektes Joomla!Day Germany 2011
 
Normas poster presencial III Jornadas Iberoamericanas RRHH y RSC 2014
Normas poster presencial III Jornadas Iberoamericanas RRHH y RSC 2014Normas poster presencial III Jornadas Iberoamericanas RRHH y RSC 2014
Normas poster presencial III Jornadas Iberoamericanas RRHH y RSC 2014
 
Stuttgart - Eine Projektarbeit
Stuttgart - Eine ProjektarbeitStuttgart - Eine Projektarbeit
Stuttgart - Eine Projektarbeit
 
Mercosur Y Ouro Preto Lic.Gigli Box
Mercosur Y Ouro Preto Lic.Gigli BoxMercosur Y Ouro Preto Lic.Gigli Box
Mercosur Y Ouro Preto Lic.Gigli Box
 
Samsung YP-T10 Vorschau
Samsung YP-T10 VorschauSamsung YP-T10 Vorschau
Samsung YP-T10 Vorschau
 
QR Code & Site Mobile - CLARINS LIFT FERMETE
QR Code & Site Mobile - CLARINS LIFT FERMETEQR Code & Site Mobile - CLARINS LIFT FERMETE
QR Code & Site Mobile - CLARINS LIFT FERMETE
 
Der Veränderungscode
Der VeränderungscodeDer Veränderungscode
Der Veränderungscode
 
Presentacion clase 03
Presentacion clase 03Presentacion clase 03
Presentacion clase 03
 
Le point sur la délivrabilité
Le point sur la délivrabilitéLe point sur la délivrabilité
Le point sur la délivrabilité
 

Ähnlich wie Ruby on Rails SS09 02

Rails i18n - Railskonferenz 2007
Rails i18n - Railskonferenz 2007Rails i18n - Railskonferenz 2007
Rails i18n - Railskonferenz 2007jan_mindmatters
 
20181210_ITTage2018_OracleNoSQLDB_KPatenge
20181210_ITTage2018_OracleNoSQLDB_KPatenge20181210_ITTage2018_OracleNoSQLDB_KPatenge
20181210_ITTage2018_OracleNoSQLDB_KPatengeKarin Patenge
 
Agile Softwareentwicklung mit Rails
Agile Softwareentwicklung mit RailsAgile Softwareentwicklung mit Rails
Agile Softwareentwicklung mit RailsHussein Morsy
 
SimpleDB - Chancen einer Cloud Datenbank
SimpleDB - Chancen einer Cloud DatenbankSimpleDB - Chancen einer Cloud Datenbank
SimpleDB - Chancen einer Cloud DatenbankONE Schweiz
 
20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs
20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs
20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAsKarin Patenge
 
20160310_ModernApplicationDevelopment_NoSQL_KPatenge
20160310_ModernApplicationDevelopment_NoSQL_KPatenge20160310_ModernApplicationDevelopment_NoSQL_KPatenge
20160310_ModernApplicationDevelopment_NoSQL_KPatengeKarin Patenge
 
Performanter, hochskalierbarer Web 2.0-Dienst in Ruby
Performanter, hochskalierbarer Web 2.0-Dienst in RubyPerformanter, hochskalierbarer Web 2.0-Dienst in Ruby
Performanter, hochskalierbarer Web 2.0-Dienst in Rubyvesparun
 
An Introduction to Ruby On Rails
An Introduction to Ruby On RailsAn Introduction to Ruby On Rails
An Introduction to Ruby On RailsJonathan Weiss
 
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im ÜberblickBig Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im ÜberblickKarin Patenge
 
MongoDB on Linux VM in Windows Azure
MongoDB on Linux VM in Windows AzureMongoDB on Linux VM in Windows Azure
MongoDB on Linux VM in Windows AzureJan Hentschel
 
Grails im Überblick und in der Praxis
Grails im Überblick und in der PraxisGrails im Überblick und in der Praxis
Grails im Überblick und in der PraxisTobias Kraft
 
20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge
20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge
20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatengeKarin Patenge
 
Forms and Reports 12c - Processes and Automation in Development and Operations
Forms and Reports 12c - Processes and Automation in Development and OperationsForms and Reports 12c - Processes and Automation in Development and Operations
Forms and Reports 12c - Processes and Automation in Development and OperationsTorsten Kleiber
 
REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?
REST in Peace  - Mit ORDS, Node.JS, ADF, Java oder OSB?REST in Peace  - Mit ORDS, Node.JS, ADF, Java oder OSB?
REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?enpit GmbH & Co. KG
 
Datenbanken - Eine Übersicht (WPMeetUP München)
Datenbanken - Eine Übersicht (WPMeetUP München)Datenbanken - Eine Übersicht (WPMeetUP München)
Datenbanken - Eine Übersicht (WPMeetUP München)Dietmar Leher
 

Ähnlich wie Ruby on Rails SS09 02 (20)

Ruby on Rails SS09 11
Ruby on Rails SS09 11Ruby on Rails SS09 11
Ruby on Rails SS09 11
 
Rails i18n - Railskonferenz 2007
Rails i18n - Railskonferenz 2007Rails i18n - Railskonferenz 2007
Rails i18n - Railskonferenz 2007
 
20181210_ITTage2018_OracleNoSQLDB_KPatenge
20181210_ITTage2018_OracleNoSQLDB_KPatenge20181210_ITTage2018_OracleNoSQLDB_KPatenge
20181210_ITTage2018_OracleNoSQLDB_KPatenge
 
Agile Softwareentwicklung mit Rails
Agile Softwareentwicklung mit RailsAgile Softwareentwicklung mit Rails
Agile Softwareentwicklung mit Rails
 
SimpleDB - Chancen einer Cloud Datenbank
SimpleDB - Chancen einer Cloud DatenbankSimpleDB - Chancen einer Cloud Datenbank
SimpleDB - Chancen einer Cloud Datenbank
 
Ruby on Rails SS09 12
Ruby on Rails SS09 12Ruby on Rails SS09 12
Ruby on Rails SS09 12
 
20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs
20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs
20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs
 
20160310_ModernApplicationDevelopment_NoSQL_KPatenge
20160310_ModernApplicationDevelopment_NoSQL_KPatenge20160310_ModernApplicationDevelopment_NoSQL_KPatenge
20160310_ModernApplicationDevelopment_NoSQL_KPatenge
 
Performanter, hochskalierbarer Web 2.0-Dienst in Ruby
Performanter, hochskalierbarer Web 2.0-Dienst in RubyPerformanter, hochskalierbarer Web 2.0-Dienst in Ruby
Performanter, hochskalierbarer Web 2.0-Dienst in Ruby
 
An Introduction to Ruby On Rails
An Introduction to Ruby On RailsAn Introduction to Ruby On Rails
An Introduction to Ruby On Rails
 
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im ÜberblickBig Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
 
MongoDB on Linux VM in Windows Azure
MongoDB on Linux VM in Windows AzureMongoDB on Linux VM in Windows Azure
MongoDB on Linux VM in Windows Azure
 
Grails im Überblick und in der Praxis
Grails im Überblick und in der PraxisGrails im Überblick und in der Praxis
Grails im Überblick und in der Praxis
 
ADF Software Factory
ADF Software FactoryADF Software Factory
ADF Software Factory
 
Scaling Rails
Scaling RailsScaling Rails
Scaling Rails
 
20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge
20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge
20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge
 
Forms and Reports 12c - Processes and Automation in Development and Operations
Forms and Reports 12c - Processes and Automation in Development and OperationsForms and Reports 12c - Processes and Automation in Development and Operations
Forms and Reports 12c - Processes and Automation in Development and Operations
 
Ruby on Rails SS09 04
Ruby on Rails SS09 04Ruby on Rails SS09 04
Ruby on Rails SS09 04
 
REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?
REST in Peace  - Mit ORDS, Node.JS, ADF, Java oder OSB?REST in Peace  - Mit ORDS, Node.JS, ADF, Java oder OSB?
REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?
 
Datenbanken - Eine Übersicht (WPMeetUP München)
Datenbanken - Eine Übersicht (WPMeetUP München)Datenbanken - Eine Übersicht (WPMeetUP München)
Datenbanken - Eine Übersicht (WPMeetUP München)
 

Mehr von Daniel Dengler

Mehr von Daniel Dengler (7)

Ruby on Rails SS09 10
Ruby on Rails SS09 10Ruby on Rails SS09 10
Ruby on Rails SS09 10
 
Ruby on Rails SS09 08
Ruby on Rails SS09 08Ruby on Rails SS09 08
Ruby on Rails SS09 08
 
Ruby on Rails SS09 07
Ruby on Rails SS09 07Ruby on Rails SS09 07
Ruby on Rails SS09 07
 
Ruby on Rails SS09 06
Ruby on Rails SS09 06Ruby on Rails SS09 06
Ruby on Rails SS09 06
 
Ruby on Rails SS09 05
Ruby on Rails SS09 05Ruby on Rails SS09 05
Ruby on Rails SS09 05
 
Ruby on Rails SS09 03
Ruby on Rails SS09 03Ruby on Rails SS09 03
Ruby on Rails SS09 03
 
Ruby on Rails SS09 01
Ruby on Rails SS09 01Ruby on Rails SS09 01
Ruby on Rails SS09 01
 

Ruby on Rails SS09 02

  • 1. Daniel Dengler web developer Ruby on Rails Workshop SS 2009 „Ruby on Rails“ and the Rails-Logo are registered trademarks of David Heinemeier Hansson – www.rubyonrails.org
  • 2. PAPEO Portable Assistant for Personal Electronic Ordering
  • 3.
  • 4.
  • 5.
  • 6.
  • 7. Versionsvergleich PHP Version Ruby on Rails Version • 7000 Zeilen PHP Code • 700 Zeilen Ruby Code • MySQL Datenbank • PostgreSQL Datenbank • Apache Webserver • Mongrel Applicationserver im • Mängel bei der Barrierefreiheit Clusterbetrieb • Schlechte Usability im Backend • Apache als Proxy Balancer • Keine Tests • Verbesserte Barrierefreiheit • Dateninkonsistenz möglich • Bessere Usability im Backend • langsam dank AJAX • Einige Tests • Neue Features • Transaktionssicherheit • schneller
  • 8. Zeitaufwand Konzeption PHP Version + Java Module Ruby on Rails Version Dokumentation
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 17. Ruby ≠ Ruby on Rails Ruby:  • Objektorientierte Programmiersprache • Interpretierte Sprache • Angenehme, einfache Syntax Ruby on Rails: • Framework zur Webentwicklung
  • 18. Framework • Grundgerüst auf dem eine konkrete Anwendung entwickelt werden kann • Stellt Objekte / Funktionen zur Verfügung, die vom Anwendungsentwickler verwendet werden können • Externe Module können wiederverwendet werden (Plugins)
  • 19.
  • 20.
  • 21.
  • 22. Vorteile • Immer wiederkehrende Probleme müssen nicht neu gelöst werden • Einheitliche Architektur erleichtert das einlesen in neue Anwendungen • Grundlegende Sicherheit bereits durch das Framework vorgegeben (etwa das Verhindern von SQL Injections)
  • 23. Vorteile • Abstraktion der Datenhaltung (Austausch des DB-Systems ohne weiteres denkbar) • Trennung von Daten, Logik und Darstellung (siehe MVC) -> getrennte Erstellung durch jeweiliges Fachpersonal möglich
  • 24. The right tool for the right job
  • 25. Model View Controller Trennung von: • Datenmodell (Model) • Ablau ogik (Controller) • Darstellung (View)
  • 26. Model View Controller Vorteile • Jede Komponente kann unabhängig von Spezialisten gep egt werden • Anwendung wird transparenter und exibler Nachteil • Bei sehr kleinen Anwendungen oft zu komplex Erweiterung • Routing bei Webapplikationen
  • 27.
  • 28.
  • 29.
  • 30. Datenmodell Interaktion mit der Datenbank create, read, update, delete (CRUD) Beziehungen herstellen (z.B. Projektobjekt hat viele Aufgabenobjekte) Validierung von Eingabedaten (z.B. Titel ist für ein Aufgabenobjekt erforderlich) Datenlogik (z.B. ein Projektobjekt gilt als abgeschlossen, wenn alle zugeordneten Aufgabenobjekte als erledigt markiert sind)
  • 31. Ablau ogik Interaktion mit den Datenmodellen (z.B. lösche das Projekt mit der Nummer 27) Bedingungen prüfen (z.B. darf ein Benutzer ein Projekt löschen?) Fehlerbehandlung (z.B. konnte das Aufgabenobjekt gespeichert werden?) Weiterleiten von Daten an die jeweilige Darstellung (z.B. alle Projekte laden, die noch nicht abgeschlossen sind. Danach generieren der Projektübersicht anstoßen)
  • 32. Darstellung Anzeige der vom Controller erhaltenen Daten (z.B. übergebene Projekte als Tabelle ausgeben) Verknüpfungen herstellen (z.B. Links zum bearbeiten der Projekte) Anzeigen von Fehlermeldungen (z.B. warum konnte das Aufgabenobjekt nicht gespeichert werden?) Darstellen der Daten in einem bestimmten Format (z.B. als HTML, XML oder PDF)
  • 33. Linksammlung Offizielle Ruby Website http://www.ruby-lang.org Offizielle Ruby on Rails Website http://www.rubyonrails.com/ MVC http://de.wikipedia.org/wiki/ Model_View_Controller
  • 34. ?

Hinweis der Redaktion