– Weiter-‐ und Fortbildungsplattformen • Web: http://www.JGraber.ch • Twitter: @j_graber Hinweis: Verwendung für eigene Präsentationen nur mit Einverständnis des Autors
Arbeit in .Net erleichtert geht auf Ruby/Rails zurück: ASP.Net MVC EF Code First Migrations NuGet Subsonic Mspec SpecFlow OWIN … • Ruby & Rails inspirieren viele Entwickler • Es macht Spass!
ist der Konstruktor • Sichtbarkeit – public: Sichtbar für alle – protected: Sichtbar in Vererbungshierarchie – private: Sichtbar nur für deklarierende Klasse
sendet Meldungen an Objekte • Jede Methode hat einen Rückgabewert – Implizit: letzter Befehl • Können an eine speziwische Objekt-‐Instanz gehängt werde • Konvention: <Methode>! verändert Objekt
Das Verhalten eines Objekts bestimmt seinen Typ: If an object walks like a duck and talks like a duck, then the interpreter is happy to treat it as if it were a duck.
__LINE__ __FILE__ __ENCODING__ end elsif else do dewined? def class case break not nil next module in if for false ensure true then super self return retry rescue redo or yield while when until unless undef
• Method_missing lässt Objekte auf nicht dewinierte Methoden antworten • Duck Typing lässt beliebige Klassen miteinander zusammenarbeiten • Monkey Patching ermöglicht die Weiterentwicklung ohne neuen Release
• JRuby (Java, läuft in der JVM) • MacRuby (Objectiv-‐C, für Mac OS X) • IronRuby (C#, DLR von .Net) • Rubinius (Ruby, Ideen aus Smalltalk-‐80) • RubyMotion (statisch komp. Code für iOS)
Heinemeier Hansson (DHH) entwickelt • Ist ein Web-‐Framework für Ruby – Wurde aus Basecamp extrahiert • Folgt den Prinzipien – Don’t repeat yourself (DRY) – Convention over conwiguration
coderay markaby).map &method(:require) run TheSmallestRailsApp ||= Class.new(Rails::Application) { conwig.secret_token = routes.append { root to: proc { [200, {"Content-‐Type" => "text/html"}, [Markaby::Builder.new.html { title @title = "The Smallest Rails App" h3 "I am #@title!" p "Here is my source code:" text CodeRay.scan_wile(__FILE__).div(line_numbers: :table) p { a "Make me smaller", href: "//goo.gl/YdRpy" } }]] } }.to_s initialize! }
Rails-‐Stack – Alles drin was man braucht – Viel Ballast für kleine Anwendungen • Rails besteht aus Modulen • Module können weggelassen werden • Module lassen sich austauschen
• Action Pack (für View und Controller) • Active Model (für Model) • Active Record (der OR-‐Mapper) • Active Resource (mapping REST zu Model) • Active Support (Helper) • Railties (Kern von Rails)
von Martin Fowler beschrieben • Objekte – Verfügen über CRUD-‐Methoden – Objekte entsprechen DB-‐Tabellen – Felder bilden DB-‐Spalten ab • Bildet Basis für Datenzugriffe in Rails – Kann wie jedes Modul ersetzt werden
in der Kultur verankert – Kein Prüfung zur Kompilierzeit – Hohe Wiederverwendung – Best Practices will man leben • Ruby und Rails unterstützen Testing – Templates für Tests – Duck Typing
schnelle Entwicklung von Webanwendungen in Ruby – Web: http://www.sinatrarb.com • Serve – Rapid Prototyping Framework für Webanwendungen, setzt auf Rack auf – Web: http://get-‐serve.com
rails g model authorship author:references book:references • authors/_form.erb.html übernehmen • Massenzuweisung erlauben • Nach Belieben mit JavaScript erweitern
ist eine dynamische OO-‐Sprache … Rails ist ein mächtiges Webframework … .Net prowitiert von Ruby/Rails … Es gibt mehr als nur einen richtigen Weg … Eine Programmiersprache soll uns Entwickler bei der Arbeit unterstützen