5. Ruby on Rails is an open-source web
framework that's optimized for programmer
happiness and sustainable productivity.
It lets you write beautiful code by favoring
convention over configuration.
http://rubyonrails.org/
6. Historie
• David Heinemeier
Hansson für Basecamp
Entwicklung in 2003
• 37signals ist Haupt-
Sponsor
• MIT Lizenz
• 1.600 Contributors
7. Ruby on Rails is an open-source web
framework that's optimized for programmer
happiness and sustainable productivity.
It lets you write beautiful code by favoring
convention over configuration.
http://rubyonrails.org/
9. Webframeworks
• Fokussierung auf die Applikation -
Produktivität
• Geschwindigkeit - "Time to market"
• Robustheit
• Wiederverwendung
• Standards (MVC, Objektrelationales
Mapping, etc.)
10. Anforderungen an moderne
Webframeworks
• Objektorientierung
• Templating
• AJAX
• Sicherheit und Robustheit
• Weiterentwicklung und aktive Community
11. Web Frameworks
PHP JAVA Python C#
Zend Spring Django ASP.net
symfony Struts Turbogears
CodeIgniter Tapestry Zope
Ruby
Ruby on Rails
12. Rock n' Roll!
http://www.flickr.com/photos/stephenpoff/2920198159/
15. MVC
• Trennung Geschäftslogik von
Nutzerschschnittstelle
• Vereinfacht Code-Pflege
• Inhaltliche Zuordung von Code zu
Funktionalität
16. DRY
• Don't repeat yourself
• Redundanzen vermeiden bzw. reduzieren
• Änderungen nur an einer Stelle vornehmen
Pragmatic Programmer (Andy Hunts, Dave Thomas)
17. Convention over configuration
• Namenskonventionen erleichtern die
Anwendung
• Beispiel: Model singular, Datenbankname
Plural, Controller Plural
• Außer der Datenbank Verbindung wird
nichts konfiguriert
18. REST
• Jeder Ressource ein spezifischer URI
zugeordnet
• Unterschiedliche Repräsentationen möglich
(HTML oder XML)
• Zustandsloses Client/Server-Protokoll
(HTTP)
• CRUD via PUT, GET, POST, DELETE HTTP
Methoden
20. Model
• Hier werden Validierungen vorgenommen
(validates_presence_of :name)
• Durch Ableitung von ActiveRecord werden
automatisch getter/setter für Attribute erzeugt
• Konvention: Tabellennamen immer Plural vom
Modellnamen
• Relationen textuell beschrieben:
• 1:1 has_one / belongs_to
• 1:n has_many / belongs_to
• n:m has_and_belongs_to_many /
has_and_belongs_to_many
21. Controller
• Controller steuern Ablauf (Routing
anpassbar)
• Controller verwalten Modell
• Jede Methode im Controller entspricht
einer ausführbaren Action
• View erhält Daten (für Vorbelegungen)
über Instanzvariablen
• Views werden über Konvention vom
Controller angesprochen bzw. erzeugt
• Verhalten der Controller kann mit Hilfe
von Filtern beeinflusst werden (z.B. für
Autorisierung, Authentifizierung)
22. View
• Embedded Ruby (ERB) als Templating-
Mechanismus
• Datenzugriff über Instanzvariablen des
Controllers
• Inkludierung von Seitenteilen möglich (Partials)
• Seitenweises blättern (Pagination)
• Ajax
• Scriptaculous u. Prototype sind in Rails per
Default integriert
• RJS (Rails Javascript) kapselt komplexe
Funktionen
23. Scaffolding
• Schnelle Ergebnisse
• "Quick and dirty"
> rails generate scaffold Post
name:string title:string content:text
> rake db:migrate
25. Vorteile / Nachteile
• Sehr schnelle Ergebnisse v.a bei • Völlige Abhängigkeit vom Framework
CRUD Applikationen
• Je spezieller die Applikation, je
• nimmt Entwicklern Routinearbeiten weniger Vorteile
ab
• Performance & Skalierbarkeit
• Automatische Verwendung von Best
Practices • Teilweise erheblicher Erstaufwand
• Organisierte Struktur der Anwendung • Aktuell nicht sehr weit verbreitet
(Hosting)
• Code läuft auf verschiedenen
Plattformen mit minimalen • Deployment ist kompliziert
Anpassungen
• Wartung der Software wird durch
MVC, DRY, OOP einfach
26. Warum Ruby on Rails?
• Produktivitätskurve - Stunden, nicht
Wochen
• Schnelle Ergebnisse und Kommunikation
• Eingebaute Datenbankpersistenz
• AJAX Integration
27. Warum kein RoR?
• Nicht compiliert
• DNA ist webframework, und z.B. kein EAI
• Richtig große Skalierung ist aufwendig
38. ActiveRecord
• Repräsentation des Schemas in Datenbank
unabhängig
• Änderungen am Schema via Migrationen
(versioniert)
• Rails kann mit Hilfe der Version automatisch Up-/
Down-Migrationen der Datenbank vornehmen
• Drei Datenbanken: Entwicklung, Test, Produktion
42. Abstract
• In den vergangenen Jahren hat sich ein neues
Framework zur Entwicklung von Web-
Anwendungen in den Vordergrund gebracht. Im
Rahmen des Vortrags werden die
Entwicklungsgeschichte, die Philosophie und die
Möglichkeiten von RoR vorgestellt.
• Was unterscheidet RoR von anderen Frameworks,
was macht es erfolgreich, wo hat es seine
Einschränkungen und warum polarisiert es die
Entwicklergemeinde?