Ruby on Rails im Überblick

Slides:



Advertisements
Ähnliche Präsentationen
Persistente Domänenmodelle mit JPA 2.0 und Bean Validation
Advertisements

Programmieren im Großen von Markus Schmidt und Benno Kröger.
Martin Köllner XMLCompany XML-Datenbanken Xindice als Datenquelle einer Website im Zusammenspiel mit Cocoon und authentic TM.
Datenbanken Einführung.
Dynamische Seiten mit Dreamweaver Zugriff auf (mysql) Datenbank mit PHP.
Datenbankzugriff im WWW (Kommerzielle Systeme)
Einführung in Cocoa Re-usable Content in 3D und Simulationssystemen Prof. Dr. Manfred Thaller, SS 2012 Do, Uhr, Archäologie-Pool Referent: Nelson.
Bastian Cramer, Universität Paderborn Entwurfsmuster für Webanwendungen Projektgruppe: Generierung von Webanwendungen aus visuellen Spezifikationen.
Objektrelationales Mapping mit JPA Getting Started Jonas Bandi Simon Martinelli.
Konzeption und prototypische Implementierung eines zentralen Informationssystems für Systemmanagement Motivation Oft wird es schwierig, die benötigten.
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Was ist Refactoring? Bevor man die Integration angeht, mag es angebracht sein, den.
es gibt (fast) nichts, was nicht anders gemacht werden könnte
Colibi Bibliothekssystem der Computerlinguistik. Einführung Motivation Was braucht Colibi? Software Datenbankdesign.
Simon Georg Pinkel Alice Server Pages Funktionale Programmierung und das Web.
Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg1/7 Datenbanken werden als Anhäufung von Werten eines Wertebereiches aufgefasst und Datenbankabfragen.
Komponentenbasierter Taschenrechner mit CORBA
XINDICE The Apache XML Project Name: Jacqueline Langhorst
MySQL Der Einstieg.
Spezielle Aspekte der Anbindung von Datenbanken im Web.
Struts Seminar Javabasierte Webanwendungen. Tobias Kutzler2 Überblick Historie Was ist Struts? Model Controller View Zusammenfassung.
Modellierung der Zugriffslogik auf Datenbanktabellen Software Component Technology for Distributed Applications Andreas Fink.
JAVA RMI.
Explizite und editierbare Metainformationen für Software Muster.
Projekt Web Engineering
Praktische Informatik Prof. Dr. Lutz Wegner
NetUSE Web Application Framework Kai Voigt NetUSE AG 28. Februar 2003.
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
OO Analyse und Entwurf für Anwender XIII. Objektorientierte Benutzeroberfäche Dr. Michael Löwe.
Seite Common Gateway Interface. Konzepte. Übersicht 1Einleitung 2Was ist CGI? 3Wozu wird CGI verwendet? 4Geschichtlicher Überblick 5Grundvoraussetzungen.
My Job Application Manager
... und alles was dazugehört
Coccon das Web-XML-Publishing System Thomas Haller.
MS Excel, Open-/LibreOffice Calc Die Menüs I Office-Logo (Excel2007) bzw. Datei (andere): die Standard-Datei- und Druckoperationen; bei MS Excel hier auch.
Herzlich Willkommen… welcome… soyez la bienvenue….
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
UniDASH 2.0 organize yourself Robert Koch MMT B2010 FH Salzburg.
Your name Bedeutung von Internet- Technologien Gruppe 1 Andreas Feuerstein Philipp Hochratner Christian Weinzinger.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 5 Folie 2 ADO.NET s.a:
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 9 Folie 2 ADO.NET (1) Klassen für Zugriffe.
Sesame Florian Mayrhuber
Eine Präsentation von Peter Rasser
Adaption von K-Means Algorithmen an Datenbanken
Getting Started Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
..:: MULTI – ABO – KARTE ::.. Projektstudium Chipkarten SS 2003 Vortragende: Katrin Kampfmann, Alexander Lamprati (PM)
EP Media Group SiteKist CMS Version 6.9. ©2014 EP Media Group Internet:
SPODAT - Blick nach vorn
Aufgaben Version 1: Es soll eine Wetterstation mit folgenden zwei Anzeigen implementiert werden: Aktuelle Wetterbedingungen mit Temperatur und.
Projektmanagement Ziel und Umfang eines Softwareprojektes definieren
Von Isabelle Spörl und Simon Schausberger
Clean Code Software-Entwicklung als Handwerkskunst Thomas Nagel, November 2011.
Office in Java 2. Info-Point Urs Frei.
Torque in Turbine Team 4 Josef Bohninger Thomas Lindenhofer
Von Sven, Tobias und Philippe. Inhalt: 1.Geschichte 2.Grundkonzepte der Sprache 3.Anwendungsarten 4.Ähnliche Programmiersprachen 5.Konkrete Beispiele.
1 Projekt: Wertungsschiessen Markus Zwickl, Bernhard Riess Im Fach PMS bei Prof. Dr.-Ing. Josef Schneeberger Deggendorf,
Datenbanken im Web 1.
Digitale Annotationen. Grundlage: John Bradley “Towards a Richer Sense of Digital Annotation: Moving Beyond a Media Orientation of the Annotation of Digital.
Software - Testung ETIS SS05.
Design Pattern1 Motivation Entwurfsmuster Entwurf wiederverwendbarer objektorientierter Software schwer gute Entwürfe entstehen durch Wiederverwen- dung.
Human Plant Interfaces MakeyMakey Workshop by Florian Weil - Potsdam
, Claudia Böhm robotron*SAB Anwendungsentwicklung mit dem Java und XML basierten Framework robotron*eXForms Simple Application Builder.
Entwurf, Implementierung und Test eines Java – Web Services als Kommunikationsschnittstelle für Webapplikationen mit Funktionen.
Freelance Cakephp Programmierer. Wir empfehlen das CakePHP System, um eine schnelle Entwicklung von Webanwendungen sicherzustellen. CakePHP ist ein bewährtes.
Die Programmiersprache Ruby Seminarvortrag von Lia Schulze Dephoff 1.
Einführung in das mobile Betriebssystem Android 1 Einführung in das mobile Betriebssystem Android „ We're talking about a platform where for the first.
© 2008 TravelTainment The Amadeus Leisure Group Webanwendungen mit Java - HttpServlets 17.Dezember 2010 Sebastian Olscher Erstprüfer: Hon.-Prof. Dr. H.
SE: Systementwurf, © Till Hänisch 2003 Systemarchitektur nach Sommerville, Software Engineering, Addison Wesley.
Virtualisierung von Web-Applikationen mit Docker
Von Wietlisbach, Lenzin und Winter
Schmock Mutter nicht ausreichend versorgt  fast verhungert Mutter bei Geburt verstorben Schmock mit Flasche aufgezogen.
 Präsentation transkript:

Ruby on Rails im Überblick

Was ist Ruby on Rails? RoR ist ein Framework zur einfacheren Entwicklung, Nutzung und Wartung von Web Applikationen Besteht seit 2005 und wurde vorrangig für sogenannte Web 2.0 Applikationen entwickelt Rails ist in der objektorientierten Skriptsprache Ruby geschrieben Rails beinhaltet Testunterstützung Rails Applikationen sind in der Model-View-Controller Architektur implementiert Ziel von Rails: keine Wiederholungen (Don‘t repeat yourself)

Models, Views, Controllers (MVC) Architektur von Rails Applikationen Model: Die zugrunde liegende Datenstruktur- üblicherweise eine relationale Datenbank View: Das User Interface Sicht auf Daten des zugrunde liegenden Models Bietet die Schnittstelle zu User Interaktionen KEINE Verarbeitung der Daten Controller: Steuert die Applikation Schnittstelle zwischen Webbrowser, View und Model Interagiert mit dem Model Gibt die entsprechende View an den User aus

MVC Architektur

Hört sich gut an, ABER... ... Wie sieht das in der Entwicklungsumgebung aus?

Objektorientierung vs. Datenbanken Vereinung von objektorientierter Programmierung und relationale Datenbanken schwierig Objekte  Daten und Operationen Datenbanken  Sets von Daten bzw. Werten 2 Lösungsansätze Datenbankzentriertes Programmieren (Datenbanklogik als der Applikationslogik – zB in PHP üblich) Bsp: select * from User where name is ‘supertopcheckerbunny‘; Object-Relational Mapping (Mapping zwischen Datenbank Tabellen und Klassen)

Object-Relational Mapping (ORM) Tabellen auf Klassen (zB Tabelle User auf Klasse User) Tabellenzeilen auf Objekte einer Klasse (zB ein Usereintrag) Tabellenspalten auf Attribute des Objekts (zB Username) Klassenmethoden, um Operationen in der Tabelle durchzuführen (zB Hinzufügen eines Users) Instanzmethoden, um Operationen in einer Tabellenzeile durchzuführen (zB Ändern des Passworts eines Users)

ORM in Rails Rails benutzt Active Record als ORM Layer Minimiert den Konfigurationsaufwand für Entwickler Übernimmt die Handhabung der darunter liegenden Datenbank Validiert Datenmodell und übernimmt die Fehlerhandhabung ... Bsp User.find_by_name ‘supertopcheckerbunny‘

Rails ist agil Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan Das Ziel ist, schnell eine Version funktionierender Software zu haben und diese dann stetig anzupassen bis sie schließlich den Anforderungen/Wünschen entspricht

Klingt wieder gut, ABER ... ... Wie setzt man das um? zB mit Scaffolding „Gerüst“, das ein schnelles Erstellen kompletter Komponenten ermöglicht, die funktionieren Inkl. Model , Views, Controller Eignet sich gut für ein erstes Prototyping Prototyp wird dann inkrementell erweitert

Scaffolding Beispiel Einfache Bücherverwaltung (Titel, Autor, Beschreibung) Hinzufügen Editieren Löschen Bücherliste anzeigen Buchdetails anzeigen In Datenbank verwaltet Unit und funktionale Tests In weniger als 5 Minuten?

Rails Vorteile Mehr an Menschen als an Maschinen orientiert – führt die sehr gute Lesbarkeit von Ruby fort Rails-basierte Web-Anwendungen nehmen den Entwicklern Routine-Arbeit ab Rails verspricht 10-mal schnellere Ergebnisse als vergleichbare Java-Frameworks Rails ist auf verschiedenen Webservern einsetzbar Rails unterstützt agile Entwicklung – schnelles Erstellen funktionierender Prototypen Einfache Wartbarkeit

Rails Nachteile Völlige Abhängigkeit vom Framework Je spezieller die Webanwendung, desto weniger nutzbar sind die Entwicklungshilfen Applikations- und Datenbankentwicklung in Unternehmen meist getrennt  kann zu Problemen führen Hosting – Verbreitung noch nicht so hoch

Weiterführende Literatur http://rubyonrails.org Thomas, Dave/ Hansson, David H. et al: Agile Web Development with Rails. Thomas, Dave et al: Programming Ruby 1.9. The Pragmatic Programmers‘ Guide.