# XDEV

XDEV ist eine visuelle Java-Entwicklungsumgebung für die schnelle und einfache Anwendungsentwicklung (RAD – Rapid Application Development). Die IDE ist prinzipiell vergleichbar mit Visual Studio LightSwitch, jedoch für die Java-Entwicklung ausgelegt. Von anderen Java-IDEs wie Eclipse oder NetBeans, bei denen die Programmierung im Vordergrund steht, unterscheidet sich XDEV durch ein weitreichendes RAD-Konzept. Die Hauptkomponenten der IDE sind ein Swing-GUI-Builder, das XDEV-Application-Framework sowie zahlreiche Drag-and-Drop-Werkzeuge und -Assistenten, mit denen sich die Funktionen des Frameworks einbinden lassen.
Die XDEV-IDE war bis Version 4 einschließlich lizenzkostenfrei und ist für Windows, Linux und macOS verfügbar, ab Version 5 sind die zuvor proprietär lizenzierten zusätzlichen Module in der IDE enthalten und das gesamte Produkt in seiner Lizenz auf ein kostenpflichtiges Abonnementmodell umgestellt. Das XDEV Application Framework, das den Kern des RAD-Konzepts von XDEV darstellt und Bestandteil jeder XDEV-Anwendung ist, wurde 2008 als Open Source freigegeben.

## Philosophie

Das Ziel von XDEV ist, die Java-Entwicklung genauso einfach zu machen wie die Anwendungsentwicklung mit 4GL-Werkzeugen wie Microsoft Access, FoxPro oder Oracle Forms. Dabei bleibt XDEV nach Java hin völlig offen. Alle RAD-Features liegen als Open Source vor. Funktionen, die man im RAD-Konzept vermisst oder anders verwenden möchte, kann man umschreiben oder selbst in Java implementieren. Damit ist der Übergang von Drag and Drop zu konventioneller Java-Programmierung fließend. Java-Konzepte und APIs lassen sich einbinden. Damit lässt sich mit XDEV grundsätzlich alles umsetzen, was mit Java möglich ist.

## GUI-Builder

Der XDEV-GUI-Builder funktioniert wie ein Grafik- oder DTP-Programm. Die Basis ist Java-Swing. Grafische Oberflächen (GUIs) lassen sich damit per Drag and Drop entwerfen. Java-Kenntnisse sind dafür nicht notwendig, sodass die GUI-Entwicklung auch Designer ohne Programmierkenntnisse erledigen können. Formulare sowie Master-Detail-Ansichten können automatisch generiert werden. Der Umgang mit Swing-Layout-Managern ist mit Hilfe eines Assistenten einfach und ohne Programmierung möglich. Über eine JavaBeans-Schnittstelle lassen sich eigene GUI-Beans schreiben sowie externe Beans einbinden. Lokalisierung ist mit Hilfe von Sprach-Ressource-Dateien und Textvariablen im GUI-Builder umsetzbar. Auch Ereignisse lassen sich per Mausklick registrieren. Der Java-Quelltext wird in Echtzeit generiert und soll sich in späteren Versionen auch editieren, erweitern und vom GUI-Builder anschließend wieder verarbeiten lassen (GUI-Entwicklung bidirektional).

## XDEV Application Framework

Das XDEV Application Framework ist der Kern jeder mit XDEV entwickelten Anwendung. Es stellt eine Grundarchitektur und Infrastruktur für grafische Swing-Oberflächen und Datenbank-Applikationen zur Verfügung und erleichtert viele Aufgaben, um die sich jeder Java-Programmierer gewöhnlich selbst kümmern muss, u. a. JDBC- und SQL-Programmierung, Transaktionsmanagement, Datenverschlüsselung, Schutz vor SQL-Injection, Connection Pooling, Verarbeitung von Abfrageergebnissen (Result-Sets), Lazy-Loading, Databinding und Datenvalidierung. Mit Version 4 stellt das Framework ein Konzept für automatisiertes Datensatz-Locking zur Verfügung. Darüber hinaus bietet das Framework zahlreiche Klassen und Methoden, die den Zugriff auf Datenbanken, Dateien, den Arbeitsspeicher, Oberflächen, externe Applikationen und Webservices vereinfachen. Der Quelltext des Frameworks ist auf GitHub vollständig offengelegt und steht ab der Version 3 unter der LGPL.

## Quelltexteditor

Unter der RAD-Haube besitzt XDEV einen Java-Quelltexteditor. Zum Funktionsumfang gehören u. a.:
* Command-Bar (Befehlsleiste) für das Einfügen von Anweisungen und ganzen Kontrollstrukturen in den Quelltext per Drag and Drop
* Bibliothek für schnelles Auffinden von Methoden und Einfügen in den Quelltext per Drag and Drop
* Autovervollständigung
* Syntax-Highlighting
* Codegeneratoren für Getter, Setter, Konstruktoren etc.
* Query-Assistent für die automatische Generierung von Abfragen
* Codefolding
* Refactoring
* Code-Inspector für Hinweise auf Syntax-Fehler und unsauberen Quelltext
* FindBugs Integration
* Quickfixes für die automatische Korrektur von Syntax-Fehlern und unsauberem Quelltext (u. a. try-catch-Umschließung)
* Code-Templates
* Debugger
* Apache Subversion Integration

## Deployment

Die IDE bietet ein automatisiertes Deployment auf Basis von Apache Ant. Damit lassen sich Projekte per Mausklick aus ein und derselben Codebasis heraus fertigstellen als:
* Desktop- oder Client-Server-Applikation, ohne zusätzliche Anpassung lauffähig unter Windows, Linux, Mac OS-X, Unix
* Java-Webstart-Applikation
* Rich Internet Application auf Basis der Java-Applet-Technologie

## Integrierte Datenbank

Die Entwicklungsumgebung liefert mit HSQLDB (bis Version 2), H2 und SQLite (ab Version 4) relationale Open-Source-Datenbanken mit, die sich an XDEV-Applikationen anbinden und lizenzkostenfrei mit ausliefern lassen. Für alle RDBMS bietet die IDE einen Tabellen-Import. Datenbanken und Relations lassen sich damit direkt in XDEV modellieren und persistieren.

## Versionen
### XDEV 1.0

    wurde 2006 das erste Mal auf der CeBIT beim Java-Hersteller Sun Microsystems vorgestellt. Diese frühe Version war eine vollständig proprietäre 4GL-Lösung, mit der ausschließlich die Entwicklung von Rich Internet Applications auf Basis von Java Applets möglich war. Hauptmerkmale waren ein bereits komfortabler GUI-Builder, der auf Java AWT aufsetzte, sowie die Java-ähnliche Skriptsprache XDEV Object Script.

### XDEV 2.0

    wurde auf der Java One angekündigt und folgte kurz darauf mit Verbesserungen, z. B. durch Umstellung des GUI-Builders auf Swing, Möglichkeit zur Einbindung beliebiger Java-Klassen, Unterstützung von OOP, Deployment für Java Applications und Java Webstart, Quelltext-Export etc. Anfang 2008 wurde das XDEV Application Frameworks als Open Source freigegeben. Mit Xamba gab es eine vereinfachte Version, die mit dem Erscheinen von XDEV 3 eingestellt wurde.

### XDEV 3.0

    Mit dem Ziel, einen fließenden Übergang zwischen RAD und konventioneller Java-Programmierung zu erreichen, hat man sich 2009 dazu entschlossen, XDEV als „echte“ Java-IDE vollständig neu zu schreiben. Die Skriptsprache XDEV Object Skript fällt damit in XDEV vollständig weg. Stattdessen stellt die IDE nun einen professionellen Java-Quelltexteditor zur Verfügung, der sich mit Eclipse vergleichen lässt. Nach insgesamt über dreijähriger Entwicklungszeit wurde am 9. September 2011 die Version 3.0 zusammen mit dem XDEV Application Framework 3.0 als Final Release freigegeben.

### XDEV 3.1

    Mit dem ersten Update für die Version 3 wurde im Februar 2012 die XDEV Component Suite als erste Erweiterung für XDEV IDE eingeführt. Die Suite umfasst insgesamt über hundert GUI-Komponenten. Die fünfzehn wichtigsten Komponenten lassen sich in den GUI-Builder integrieren, u. a. eine Multi-Sortable-Table, Group-Table, Quickfilter, Paging, ein GUI-Docking-Framework sowie eine Kalender-Template.

### XDEV 3.2

    Das Update umfasst eine neue Javabean Integration mit der die IDE nun den Javabean-Standard umsetzt, eine globale Suche, eine Integration für FindBugs, einen vollständig überarbeiteten ER-Designer, einen Assistenten für Internationalisierung sowie weitere Datenbankschnittstellen. Der Quelltext aller Datenbankschnittstellen fließt mit dieser Version in das quelloffene XDEV Application Framework ein.

### XDEV 4.0

    Version 4 wurde im September 2013 auf der Oracle OpenWorld vorgestellt und am 18. Dezember 2013 freigegeben. Ein Konzept für automatisiertes Datensatz-Locking verhindert, dass ein Datensatz überschrieben oder gelöscht wird, der zeitgleich von einem anderen Anwender bearbeitet wird. Mit Lazy-Loading lädt ein Client nur noch die Anzahl an Datensätzen, die auf der Oberfläche dargestellt werden kann, während die restlichen Daten erst bei Bedarf nachgeladen werden. Mit der zeitgleichen Einführung der XDEV BI Suite (Business Intelligence), einer kostenpflichtigen Erweiterung, stellt die IDE neben Diagramm-Komponenten und einem Gantt-Diagramm-Modul eine Anbindung an die Reporting-Lösung JasperReports zur Verfügung, sowie einen Assistenten für den Export von Daten.

### XDEV 5.0

    Eine der größten Neuerungen der Version 5 ist das Databinding für Stored Procedures. Die Entwicklungsumgebung ermöglicht das Importieren vorhandener Stored Procedures und die direkte Anbindung an Komponenten der Oberfläche. Durch Benutzer geänderte Daten werden umgekehrt ebenfalls an Stored Procedures zurückgegeben, die sich um die Persistierung kümmern. Das Konzept ermöglicht das Erstellen der Geschäftslogik in Abfragesprachen wie PL/SQL und das damit verbundene Auslagern in eine Datenbank. Vor allem die Migration von 4GL Lösungen auf Java wird dadurch stark vereinfacht und beschleunigt, weil mit XDEV 5 die gesamte Anwendungslogik in der Datenbank erhalten bleibt und sich folglich der Portierungsaufwand auf das zu erneuernde Frontend reduziert. Ebenfalls neu ist eine Browser Komponente zur Einbindung beliebiger Webinhalte. Ein JavaFX-Container erweitert die Swing Komponenten-Palette um JavaFX Elemente und ermöglicht das threadsichere Ausführen von JavaFX Anwendungen innerhalb einer Swing Applikation. Das Lizenzmodell wurde von Freeware auf ein Subskription Modell umgestellt. Die bislang nur als kostenpflichtiges Add-on erhältliche XDEV Component Suite sowie die XDEV BI Suite wurden fest integriert und um 28 neue Look and Feels erweitert. Das XDEV Application Framework steht unverändert unter LGPL Open-Source-Lizenz.