Devoxx Konferenz Tag 3
1) JRuby
http://jruby.codehaus.org/
In diesem Talk der beiden JRuby Entwickler: Charles Nutter und Thomas Enebo gings um die Details der neuesten
Implementierung der dynamischen Programmiersprache Ruby für die JVM: JRuby.
Neben eingen Ruby Basics wurden auch einige essentielle Tools wie die jirb-Konsole (Kommandozeileninterpreter),
rake (Ruby make) und ruby gems (Paketverwaltungssystem analog zu den setuptools / eggs in Python) vorgestellt.
Darüber hinaus zeigten sie auch wie schnell und einfach man webanwendungen auf Basis von JRuby on Rails entwicklen kann,
dabei ließen sie die Rails app direkt als Webapp in einem Glasfish laufen.
Neben der Webentwicklung blieb auch die traditionelle Gui Entwicklung mit Swing nicht auf der Strecke.
Hier wurde demonstriert, wie einfach man mit JRuby, Netbeans, Netbeans Gui Builder Matisse und MonkeyBars:
http://monkeybars.rubyforge.org/ Monkey bars erlaubt es die traditionellen UI Entwicklertools zu verwenden und
die Anwendungslogik in Ruby hinzuschreiben.
Als keinen Gag implementierten die Speaker ein kleines Pong Spiel in 3D auf Basis des Gaming Frameworks JMonkeyEngine.
http://www.jmonkeyengine.com/
Ein weiterer Interessanter Talk zum Thema JRuby findet man hier:
http://www.youtube.com/watch?v=PfnP-8XbJao
Kleine Anmerkung am Rande. Vergleicht man die aktuelle Implementierung von JRuby (auf dem Stand von Ruby Version 1.8.6)
mit der stabilen Rubi Version 1.8.6 so sieht man, dass JRuby eine ganze Ecke schneller ist als die "native" Ruby
Implementierung ;-)
Zur Verteidigung der Rubisiten muss man sagen, dass die Ruby Version 1.9 schon wieder eine Ecke schneller ist als
die aktuelle JRuby version. Warten wir mal ab was die JRuby Entwickler da noch rausholen können
Siehe auch hier:
http://antoniocangiano.com/2007/12/03/the-great-ruby-shootout/
2) Developing Beyond LocalHost
In diesem Talk von Brian Leonard gings um das Testen von Anwendungen auf verschiedenen Platformen bzw. verschiedenen
Browsern bei Webanwendungen.
Als Beispiel entwickelte er eine kleine Java Webstartanwendung die er unter verschiedenen Betriebssystemen testen wollte.
Zu diesem Zweck hat er sich einfach ein paar Virtuelle Maschinen mit Virtual Box angelegt die über ein internes
Netz miteinander verbunden waren. So kann sich die einzelnen Maschinen untereinander / mit dem Hostsystem interagieren.
Er betonte nachhaltig die wichtigkeit des Testens auf mehreren Platformen und wie Virtualisierungstools
wie Virtual Box oder VMWare dem Entwickler dabei unterstützen können.
Übrigens VMWare Images kann man mit einfachen Modifikationen auch mit Virtual Box verwenden
Ach ja, Virtual Box ist natürlich auch Kostenlos
https://wiki.ubuntu.com/UbuntuMagaz...irtualBox:_.vmdk_To_.vdi_Using_Qemu_+_VdiTool
http://www.virtualbox.org/
3) EJB 3.1 - From Legacy to secret weapon
Der Abschluss der Konferenz bildete der absolut coole Talk von Sun Java Champion Adam Bien
In aktuellen Enterprise Projekten findet man vermehrt leichtgewichtige Anwendungsframeworks á la Springframework
die das leben des Entwicklers sehr viel einfacher machen (sollen). Zum Teil ist es unter Entwicklern im Enterprise Java Bereich
sogar verpönt, alternativen wie EJB 3.x überhaupt zu erwägen.
Was bedeutet lightweigth überhaupt (wenige Abhängigkeiten?, Kleiner Bootstrap?, kleine Bibliotheken?,wenig Code viel XML?)
...
Er zeigte sehr deutlich auf, wie einfach (lightweight) EJB 3.x mittlerweile ist und was mit EJB 3.1 noch einfacher
wird.
Interceptoren: (AOP Advice) müssen am Ziel deklariert werden (das stört u.a. viele Spring anhänger)
da die es gewohnt sind solche Advices rein deklarativ an zugeben anstatt sie direkt an die Zielstelle zu schreiben.
Hier Argumentiert Adam Bien, dass solch deklarativen Fälle eher etwas für technische Advices (tracing, profiling, security)
fachliche Advices will am vielleicht doch an Ort und stelle sehen.
Ansonsten zeigte Adam Bien wie durch die Abstraktionen von JPA das DAO Pattern so gut wie obsolete wird (okay nicht ganz)
darüber hinaus zeige er auch eine generische DAO Implementierung mit der sich (wie so oft) 80% der Datenbankzugriffe handlen lassen.
Für den Rest muss man dann doch wieder eigene Finder Methoden bauen etc.
Siehe auch:
http://www.adam-bien.com/roller/abien/entry/jpa_ejb3_killed_the_dao
http://www.tutorials.de/forum/enter...ng-co/283835-strukturierung-webanwendung.html
Hier ein paar Beispiele zur JEE 5 Patterns:
https://p4j5.dev.java.net/
https://p4j5.dev.java.net/source/browse/p4j5/
Weiterhin zeigte er noch ein paar Features von EJB 3.1
features aufzählen...
Insgesamt hat der Talk gezeigt, dass man EJB 3.x auf jeden Fall mal wieder ansehen sollte und nicht
gleich kategorisch alles schlecht macht wo kein grünes Blättchen dran klebt.