Suche
Artikel

Die neuen GEF4-Komponenten in Eclipse Mars

Kaum ein anderes Eclipse-Projekt kann auf eine ähnlich lange Geschichte zurückblicken wie das Graphical Editing Framework (GEF). Seit 2002 ist GEF fester Bestandteil des Eclipse-Ökosystems, und seit der Einführung des Simultaneous Releases im Jahr 2006 gab es keines ohne GEF-Beteiligung. Auch beim Mars-Release im Juni dieses Jahres wird GEF selbstverständlich nicht fehlen. Dieses Mal aber ist etwas besonders: Das Release wird den ersten Snapshot der seit 2010 entwickelten neuen GEF4-Komponenten beinhalten.

Android Runtimes im Vergleich: ART vs. Dalvik VM

Bereits zur Google IO im Juni 2014 stellte Google eine neue Runtime vor: die ART (kurz für Android Runtime). Diese wird bereits mit Android KitKat ausgeliefert. Die Standard-Runtime ist dort allerdings weiterhin die Dalvik VM. Diese kann im Einstellungsmenü aber zugunsten von ART deaktiviert werden. Mit Android 5 (Lollipop) wird die Dalvik VM nun gar nicht mehr ausgeliefert und ist komplett durch ART ersetzt worden. Worin liegt aber der Unterschied von ART zu Dalvik und was bedeutet das für den Entwickler? Diese Kolumne erläutert die Änderungen und geht auf deren Auswirkungen ein.

Das Überall-Java: Write once run anywhere mit DukeScript

Java löst sein WORA (Write Once, Run Everywhere)-Versprechen schon lange nicht mehr ein. DukeScript will das ändern, indem es eine saubere Trennung von View und Logik bei Cross-Plattform-Anwendungen ermöglicht. Anhand einer einfach strukturierten Anwendung werden die Grundlagen von DukeScript vorgestellt.

Integration von JavaScript: Wie man das Chaos vermeidet

Die wartbare Integration von JavaScript in serverseitig getriebene Webanwendungen stellt eine große Herausforderung dar. Dazu existiert bisher kein standardisierter Weg. Bislang greifen viele auf Inline-Scripting zurück, was oft zu Nachteilen führt. Dieser Artikel zeigt, wie JavaScript und JSF sauber zusammengeführt werden können.

Version 2.0 der CDI Specification auch in Java SE nutzbar

Bisher ist CDI ein Komponentenframework, das Dependency Injection zur Verfügung stellt, allerdings nur für Java-EE-Anwendungen. Die aktuell gültige Version ist das Maintenance-Release 1.2. Wie wir bereits in der letzten Kolumne berichteten, hat die Spezifizierung von CDI 2.0 aber schon begonnen. Und sie bringt ein durchaus interessantes Feature, mit dem es möglich sein wird, CDI auch außerhalb eines Java-EE-Containers standardisiert zu benutzen. CDI soll in Java SE nutzbar werden. Wir werden in dieser Kolumne vorstellen, wie das API aussehen könnte und was noch fehlt.

Java Prozedural: Es muss nicht immer Objektorientierung sein

Java wird klassischerweise mit der objektorientierten Programmierung in Verbindung gebracht. Auch aspektorientierte und seit Java 8 funktionale Programmierung gehören zum Java-Universum. Obwohl sie bei Enterprise-Anwendungen durchaus vermehrt anzutreffen ist, wird die prozedurale Programmierung aber meist unterschlagen.

HTML5 – kurz & gut

Die Bücher aus O’Reillys „kurz & gut“-Serie kommen vornehmlich in zwei unterschiedlichen Ausprägungen daher: zum einen als kompakte Einführung in ein bestimmtes Thema, zum anderen als praktisches Referenzhandbuch für die Hosentasche oder den Schreibtisch. Das vorliegende Buch gehört zur zweiten Kategorie. Nach einer kurzen Übersicht über den Aufbau des Buchs werden einige neue HTML5-Elemente vorgestellt und ein paar Worte über die aktuelle Browserunterstützung verloren. Daran schließen sich Informationen über globale HTML5-Attribute an sowie eine Auflistung der HTML5-Event-Handler.

Multi-Versioning: Versionsübergreifend erfolgreiche Apps entwickeln

Plant man als Android-Entwickler eine neue App, stellt sich schnell die Frage nach der angestrebten Zielgruppe bzw. den entsprechenden Zieldevices. Wegen der nach wie vor stark fragmentierten Landschaft von Android-Versionen kann das Ignorieren der einen oder anderen Version durchaus über den Erfolg der eigenen App entscheiden. Wie geht man also am besten vor, wenn möglichst viele Nutzer erreicht und gleichzeitig keine Kompromisse in User Interface und Usability eingegangen werden sollen?

Verdrehte Welt: Right-to-Left-Unterstützung in Android

Software funktioniert global. Ein einzelner Entwickler mag eine App in einem kleinen Dorf irgendwo auf unserem Erdball entwickeln. Sichtbar wird sie in den diversen App Stores in der ganzen Welt. Internationalisierung von Apps ist daher ein wichtiges Thema. Der Probleme mit unterschiedlichen Zahlen-, Datums- und Währungsformatierungen sind sich viele Entwickler bewusst. Auch wenn es um Sprachunterstützung geht, weiß der Android-Entwickler, dass man die Übersetzungen in XML-Dateien ablegt und das System die Arbeit übernimmt. In einigen Fällen stimmt dies leider nicht ganz.

Buchtipp: JavaServer Faces 2.2

Während sich „Mastering JavaServer Faces 2.2“ eindeutig als Buch für Fortgeschrittene positioniert, ist das vorliegende Werk mit „Grundlagen und erweiterte Konzepte“ untertitelt. Also ein Einsteigerbuch?

Tutorial: Realisierung eines Empfehlungssystems mit Apache Mahout

„Das könnte Sie auch interessieren …“ oder „Andere Nutzer kauften auch …“ – wie oft trifft man auf diese oder ähnliche Formulierungen beim Einkaufen im Onlineshop seines Vertrauens. Aber woher weiß das Unternehmen, was mich interessiert, und wie lässt sich ein solches System ohne großen Aufwand umsetzen? Eine Lösung: Apache Mahout.

Faule Programmierer – ein Gewinn für jedes Unternehmen!

Wenn es eine Charaktereigenschaft gibt, die im Allgemeinen nicht sehr hoch geschätzt wird, dann ist das die Faulheit. Faule Leute sind in den Augen der Mehrheit arbeitsscheu, antriebsarm und eine Plage für all diejenigen, die ihrer Arbeit diszipliniert und gewissenhaft nachgehen wollen. Aber stimmt das so auch wirklich? Sind alle Faulenzer rücksichtslose Gammler oder haben sie einfach nur erkannt, dass weniger manchmal mehr ist?

Microservices: Consumer-driven Contract Testing mit Pact

„Pacta sunt servanda“, oder zu deutsch „Verträge sind einzuhalten“: Was schon im Mittelalter galt, soll in der modernen Welt der Software auch verbindlich sein. Mithilfe von (API-)Verträgen, die nicht nur durch einen, sondern mehrere Vertragspartner gestaltet werden, lassen sich Microservices-Architekturen einfach und effizient testen und weiterentwickeln.

Buchtipp: JUnit-Profiwissen

Unit Testing ist wichtig für die Codequalität und das Gelingen von Softwareentwicklungsprojekten. Wie aber kann ich mit JUnit das Beste dafür herausholen?

Asynchrone Events in CDI 2.0

CDI ist seit der Version 1.0 in Java EE 6 der neue Enterprise-Komponentenstandard. Während es mit CDI 1.1 in Java EE 7 nur ein Minor Update gab, kann für Java EE 8 wieder mit einem größeren Entwicklungsschritt gerechnet werden. Die Spezifizierung von CDI 2.0 hat bereits begonnen. Eines der Themen, die auf der Agenda stehen, ist die asynchrone Verarbeitung von Events. Wir werfen in dieser Kolumne einen Blick auf den aktuellen Stand der Spezifikation und geben einen Ausblick darauf, was für Möglichkeiten asynchrone Events bieten.

Konfiguration in Java

Konfiguration erlaubt es, das Verhalten eines Softwaresystems in kontrollierter Art und Weise zu verändern, ohne dass eine Neuimplementierung notwendig ist. Dazu sind Designentscheidungen darüber zu treffen, welche Aspekte konfigurierbar sind und welche eben nicht. Alles konfigurierbar zu machen, ist genauso sinnlos, wie alle Aspekte fest zu kodieren. Dennoch scheiden sich die Geister daran, was Konfiguration nun ist und wie diese gemanagt werden soll. Wir möchten mit dieser mehrteiligen Artikelreihe Licht ins Dunkel bringen.