22
Ruby on Rails Florian Ferrano Ralf Heller Markus Nagel

Ruby on Rails - hdm- · PDF fileRoR - Rails - Ruby on Rails sehr schlankes, quelloffenes Web-Framework Aufbau ist konsequent auf zeitsparende Entwicklung von datenbankgestützten

Embed Size (px)

Citation preview

Page 1: Ruby on Rails - hdm- · PDF fileRoR - Rails - Ruby on Rails sehr schlankes, quelloffenes Web-Framework Aufbau ist konsequent auf zeitsparende Entwicklung von datenbankgestützten

Ruby on Rails

Florian FerranoRalf Heller

Markus Nagel

Page 2: Ruby on Rails - hdm- · PDF fileRoR - Rails - Ruby on Rails sehr schlankes, quelloffenes Web-Framework Aufbau ist konsequent auf zeitsparende Entwicklung von datenbankgestützten

Überblick

● Ruby on Rails

● Ruby

● Rails Geschichte

● MVC allgemein

● MVC in Rails

● Scaffolding

● Webserver

● Installation

● Beispiele

● Wo wird Rails verwendet ?

● Ausblick

Page 3: Ruby on Rails - hdm- · PDF fileRoR - Rails - Ruby on Rails sehr schlankes, quelloffenes Web-Framework Aufbau ist konsequent auf zeitsparende Entwicklung von datenbankgestützten

RoR - Rails - Ruby on Rails

● sehr schlankes, quelloffenes Web-Framework

● Aufbau ist konsequent auf zeitsparende Entwicklung von datenbankgestützten Webanwendungen ausgelegt

● Verwendung der Bibliotheken 'Prototype' und 'Scriptaculous'

-> AJAX

● basiert auf 'Ruby'

● folgt der 'Model View Controller' – Architektur (MVC)

● Programmierkonvention steht über Anwendungskonfiguration(lediglich eine Konfigurationsdatei)

Page 4: Ruby on Rails - hdm- · PDF fileRoR - Rails - Ruby on Rails sehr schlankes, quelloffenes Web-Framework Aufbau ist konsequent auf zeitsparende Entwicklung von datenbankgestützten

Die Programmiersprache Ruby

● Objekt-orientierte Sprache

● folgt gebräuchlichen Programmierparadigmen(prozedurale + funktionale Programmierung, Nebenläufigkeit)

● 'Principle of least surprise'(intuitive Anwendung)

● 'Duck Typing'(dynamische Typisierung)

● 'Ruby' <> 'Perl'

● von Yukihiro 'Matz' Matsumotozwischen 1993 und 1995 in Japan entwickelt

● Heute als Open-Source-Projektweiterentwickelt

● Interpreter und Standardbibliothek unter GPL

● Verbreitung in Japan wie Perl und Python in Europa

Page 5: Ruby on Rails - hdm- · PDF fileRoR - Rails - Ruby on Rails sehr schlankes, quelloffenes Web-Framework Aufbau ist konsequent auf zeitsparende Entwicklung von datenbankgestützten

Geschichte von Rails

● ursprünglich für eine spezielle Webapplikation entwickelt(BaseCamp / 37signals)

● von David Heinemeier Hansson (geb. 1979)

– Google/O'Reilly Hacker of the Year Award 2005

– Jolt award of product excellence , 2006, für Rails 1.0

● Juli 2004 erste Veröffentlichung

● Dezember 2005 v. 1.0

● März 2006 v. 1.1 RJS, ActiveRecord, Performance

● Januar 2007 v. 1.2

● März 2007 v. 1.2.3 (aktuelle Version)

Page 6: Ruby on Rails - hdm- · PDF fileRoR - Rails - Ruby on Rails sehr schlankes, quelloffenes Web-Framework Aufbau ist konsequent auf zeitsparende Entwicklung von datenbankgestützten

Model-View-Controller (MVC) Allgemein

● Modell (model)

– Daten

● Präsentation (view)

– Darstellung der Daten

– Schnittstelle zum Benutzer

● Steuerung (controller)

– Ablaufsteuerung und Logik

Architekturmuster zur Aufteilung von Software in drei Einheiten

Page 7: Ruby on Rails - hdm- · PDF fileRoR - Rails - Ruby on Rails sehr schlankes, quelloffenes Web-Framework Aufbau ist konsequent auf zeitsparende Entwicklung von datenbankgestützten

Struktur von Rails

● Ruby besteht aus 5 Modulen

– Active Support● Ruby Erweiterung

– Action Pack● Request / Response

Bearbeitung

– Active Record● Objektabstraktionsschicht● Datenhaltung

– Action Mailer● E-Mail Versand + Empfang

– Action Web Service● Web Service Programmierung

Page 8: Ruby on Rails - hdm- · PDF fileRoR - Rails - Ruby on Rails sehr schlankes, quelloffenes Web-Framework Aufbau ist konsequent auf zeitsparende Entwicklung von datenbankgestützten

MVC in Rails

● Ruby besteht aus 5 Modulen

– Active Support● Ruby Erweiterung

– Action Pack● Request / Response

Bearbeitung

– Active Record● Objektabstraktionsschicht● Datenhaltung

– Action Mailer● E-Mail Versand + Empfang

– Action Web Service● Web Service Programmierung

client – server Interaktion

Page 9: Ruby on Rails - hdm- · PDF fileRoR - Rails - Ruby on Rails sehr schlankes, quelloffenes Web-Framework Aufbau ist konsequent auf zeitsparende Entwicklung von datenbankgestützten

MVC in Rails

● Model -> ActiveRecord

– Abbildung einer Klasseauf eine Tabelle

– Abbildung eines Attributsauf ein Feld

– 1 Datensatz = 1 Instanz von ActiveRecord

● DB Unterstützung

– DB2

– Firebird

– MySQL

– Openbase

– Oracle

– PostgreSQL

– SQLite

– SQL Server

– Sybase

Page 10: Ruby on Rails - hdm- · PDF fileRoR - Rails - Ruby on Rails sehr schlankes, quelloffenes Web-Framework Aufbau ist konsequent auf zeitsparende Entwicklung von datenbankgestützten

MVC in Rails

● Controller -> ActionController Klasse aus der ActionPack Bibliothek

● ActionController – Klassen und deren Methoden werden abhängig von ihrem Namen über die URL gerufen.

– //server.de/controllername/actionname

verweist auf einen bestimmten 'Controller' und eine bestimmte 'Action'die innerhalb der Controller – Klasse als Methode abgebildet ist.

Page 11: Ruby on Rails - hdm- · PDF fileRoR - Rails - Ruby on Rails sehr schlankes, quelloffenes Web-Framework Aufbau ist konsequent auf zeitsparende Entwicklung von datenbankgestützten

MVC in Rails

● View -> Klasse View, ebenfalls aus ActionPack

● Mögliche Ausgabeformate:

– HTML

– XML

– JS

– RHTML für HTML-Dokumente

– RXML für XML-Dokumente

– RJS für durch Ruby erzeugten JavaScript Code

– Die Manipulation des HTTP-Headers ermöglicht natürlich weitere Formate

Page 12: Ruby on Rails - hdm- · PDF fileRoR - Rails - Ruby on Rails sehr schlankes, quelloffenes Web-Framework Aufbau ist konsequent auf zeitsparende Entwicklung von datenbankgestützten

... und nochmal

● Ruby besteht aus 5 Modulen

– Active Support● Ruby Erweiterung

– Action Pack● Request / Response

Bearbeitung

– Active Record● Objektabstraktionsschicht● Datenhaltung

– Action Mailer● E-Mail Versand + Empfang

– Action Web Service● Web Service Programmierung

Page 13: Ruby on Rails - hdm- · PDF fileRoR - Rails - Ruby on Rails sehr schlankes, quelloffenes Web-Framework Aufbau ist konsequent auf zeitsparende Entwicklung von datenbankgestützten

Scaffolding

● Automatisierte Generierung und Veränderung der Anwendungsstruktur('Gerüstbau')

● Vor Allem bei Veränderung der Datenbankstruktur

● Scaffolding ermöglicht extrem schnelle Entwicklung erster Prototypen der Webanwendung

● Beispiel:

Hinzufügen eines Feldes in der Datenbank bewirkt automatisch dass auch je ein neues 'Edit'- und 'View' – Element in der Webanwendung zur Verfügung steht.

Page 14: Ruby on Rails - hdm- · PDF fileRoR - Rails - Ruby on Rails sehr schlankes, quelloffenes Web-Framework Aufbau ist konsequent auf zeitsparende Entwicklung von datenbankgestützten

Webserver für Rails

● Entwicklung:Rails bringt mit 'WEBrick' eine Bibliothek die einen Webserver zur Verfügung stellt mit.

● Produktiveinsatz:Jeder Server der CGI, besser FastCGI, unterstützt bietet sich an.

● 'MONGREL', ein in Ruby geschriebener Webserver.

Page 15: Ruby on Rails - hdm- · PDF fileRoR - Rails - Ruby on Rails sehr schlankes, quelloffenes Web-Framework Aufbau ist konsequent auf zeitsparende Entwicklung von datenbankgestützten

Installation

● Ruby, herunterladen und installieren– http://rubyforge.org/frs/?group_id=167 (win)

– http://hivelogic.com/narrative/articles/ruby-rails-mongrel-mysql-osx (mac os x)

● RubyGems, herunterladen und installieren

– Standard Packagemanager für Ruby– http://rubyforge.org/frs/?group_id=126

● Rails, installieren

– Wenn RubyGems geladen ist, wird Rails über die Kommmandozeile installiert:

– gem install rails --include-dependencies

Page 16: Ruby on Rails - hdm- · PDF fileRoR - Rails - Ruby on Rails sehr schlankes, quelloffenes Web-Framework Aufbau ist konsequent auf zeitsparende Entwicklung von datenbankgestützten

Installation

● Erstellen einer Applikation und starten des Servers über die Kommandozeile:

– rails path/to/your/new/application

– cd path/to/your/new/application

– ruby script/server

● Einzelheiten in den folgenden Beispielen

● ausführliche Installationsanleitung:– http://www.rubyonrails.org/down

Page 17: Ruby on Rails - hdm- · PDF fileRoR - Rails - Ruby on Rails sehr schlankes, quelloffenes Web-Framework Aufbau ist konsequent auf zeitsparende Entwicklung von datenbankgestützten

Installation / Alternative

● InstantRails

– Ruby, Rails, Apache, MySQL

– vorkonfiguriert

– keine Installation nötig

Page 18: Ruby on Rails - hdm- · PDF fileRoR - Rails - Ruby on Rails sehr schlankes, quelloffenes Web-Framework Aufbau ist konsequent auf zeitsparende Entwicklung von datenbankgestützten

... bis hierhin laaangweilig

aber jetzt:

● Ralf

Blog on Rails

● Markus

Live Suche mit AJAX

Page 19: Ruby on Rails - hdm- · PDF fileRoR - Rails - Ruby on Rails sehr schlankes, quelloffenes Web-Framework Aufbau ist konsequent auf zeitsparende Entwicklung von datenbankgestützten
Page 20: Ruby on Rails - hdm- · PDF fileRoR - Rails - Ruby on Rails sehr schlankes, quelloffenes Web-Framework Aufbau ist konsequent auf zeitsparende Entwicklung von datenbankgestützten

Wer nutzt Rails?

● omdb.org

● [ngs.] yellowpages.com

● eins.de

Page 21: Ruby on Rails - hdm- · PDF fileRoR - Rails - Ruby on Rails sehr schlankes, quelloffenes Web-Framework Aufbau ist konsequent auf zeitsparende Entwicklung von datenbankgestützten

Ausblick

Danke für's Zuhören !

Page 22: Ruby on Rails - hdm- · PDF fileRoR - Rails - Ruby on Rails sehr schlankes, quelloffenes Web-Framework Aufbau ist konsequent auf zeitsparende Entwicklung von datenbankgestützten

Quellen

● rubyonrails.org

● IX Artikel

● limited overload GmbH

● railskonferenz.de

● wikipedia.org

● loudthinking.com

● Links zu den Beispielen– http://rubyonrails.org/screencasts

– http://www.railsnet.de