Upload
duongdang
View
240
Download
2
Embed Size (px)
Citation preview
Ruby on Rails
Florian FerranoRalf Heller
Markus Nagel
Überblick
● Ruby on Rails
● Ruby
● Rails Geschichte
● MVC allgemein
● MVC in Rails
● Scaffolding
● Webserver
● Installation
● Beispiele
● Wo wird Rails verwendet ?
● Ausblick
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)
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
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)
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
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
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
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
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.
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
... 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
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.
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.
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
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
Installation / Alternative
● InstantRails
– Ruby, Rails, Apache, MySQL
– vorkonfiguriert
– keine Installation nötig
... bis hierhin laaangweilig
aber jetzt:
● Ralf
Blog on Rails
● Markus
Live Suche mit AJAX
Wer nutzt Rails?
● omdb.org
● [ngs.] yellowpages.com
● eins.de
Ausblick
Danke für's Zuhören !
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