Zum Wochenausklang einige interessante Links für mobile Anwendungen:
- JSON Serializer
Ein noch recht junges Projekt für die Objektserialisierung mit JSON.
- JFXtras
Im Rahmen des Projektes werden Erweiterungen für Java FX entwickelt. Unter anderem neue Komponenten und Effekte.
- AiCharts (Kommerziell)
Eine mächtige Bibliothek für die Erstellung von Charts unter Android.
Da wir bei SIB Visions nicht die einzigen sind, die ein Application Framework entwickeln, ist ein Blick auf die vorhandenen Lösungen ganz interessant. Hierbei handelt es sich nicht um eine Bewertung sondern vielmehr um eine Auflistung und persönlicher Eindrücke.
- Eclipse Riena (Java, Open Source)
Ein Framework aufbauend auf OSGi/Equinox um Multi Tier Applikationen zu erstellen. Aufgrund der starken Abhängigkeit zu Eclipse Projekten setzt der Einsatz dieses Frameworks sehr viel Know How voraus. Zwar gibt es einiges an Dokumentation, doch diese zeigt bei weitem nicht alle Details. Die Einarbeitung geht recht schnell doch bei den ersten Problemen kann man nur auf die Dokumentation oder die Community vertrauen. Um Anwendungen zu erstellen muss einerseits viel konfiguriert (XML) und andererseits muss an den richtigen Stellen der passende Code eingesetzt werden. Weiters müssen noch allerlei Bibliotheken eingesetzt werden um mit Datenbanken zu arbeiten. Bei umfangreichen Projekten sind Wartungs- und Einarbeitungsaufwand sehr hoch anzusetzen. Außerdem werden Projekte schnell sehr umfangreich, ohne bereits die notwendigen Funktionen umgesetzt zu haben.
- EclipseScout (Java, Open Source)
Ist unabhängig von Riena, und wird auch zum Erstellen von Multi Tier Applikationen verwendet. Entwickelt wird mit einem Eclipse Plugin. Ohne dieses Plugin ist es nur mit sehr viel Know How möglich eine Applikation zu erstellen. Ist allerdings ähnlich komplex als Riena zu sehen.
- XDev (Java, Kommerziell und Open Source)
Ein RAD Tool zum entwickeln von 2 Tier Java Applikationen mit JDBC Zugriff auf Datenbanken. Inkludiert eine eigene Skript Sprache für Actions. Bringt die Standard Swing Komponenten und einige spezielle Controls mit. Die "IDE" ist etwas gewöhnungsbedürftig. Der generierte Source Code ist nur schwer wartbar.
- Habanero (.NET, Open Source)
Ist zwar Open Source, doch an Informationen gelangt man nur nach einer Registrierung. Einsetzbar für die Erstellung von klassischen 2 Tier Applikationen. Die Datenbank wird mit XML Mapping "nachgebildet". Die Controls sind eher schlicht und Tabellen editiert man mit Formular Popups.
- eXpressApp Framework (.NET, Kommerziell)
Bei DevExpress handelt es sich sowohl um einen Komponenten als auch um einen App Framework Entwickler. Das Framework wirkt sehr umfangreich und bietet sehr viel Funktionalität. Ein klassisches .NET Produkt.
- MX-Frame (.NET, Kommerziell)
Das Komplettpaket trumpft mit vielen GUI Komponenten auf und bietet auch einiges an Funktionen. Leider benötigt man ein Client, Developer und Server Produkt. Anhand der Dokumentation und den Informationen des Herstellers scheint der Komplexitätsgrad sehr hoch und die Einarbeitungszeit dementsprechend.
- QAFE (Java/GWT/XML, Kommerziell)
Dieses Framework tanzt etwas aus der Reihe, ist aber interessant weil damit lt. Hersteller die Konvertierung von Oracle Forms Applikationen zu Multi Tier Anwendungen möglich sein soll. Leider finden sich nur wenige Informationen und auch die Demos zeigen nur einen groben Überblick. Die Möglichkeit große Forms Applikationen zu konvertieren wäre interessant, da dies ein absolut mögliches Einsatzgebiet für JVx ist.
Im Gegensatz zu den anderen Open Source Lösungen ist JVx ein sehr schlankes Framework und kann auch ohne IDE Plugins entwickelt werden. In JVx ist bereits alles integriert um Datenbank Anwendungen zu erstellen, ohne auf weitere Bibliotheken angewiesen zu sein. Weiters können Unit Tests ohne Umwege erstellt und angewandt werden. Und es wird auch kein eigener Development Modus benötigt um zu entwickeln. Aufgrund der engen Bindung zur Datenbank fallen auch Konfigurationen wesentlich einfacher bzw. überhaupt weg. Das macht sich auch bei der Wartung bemerkbar.
Im Java Magazin 05.2010 ist nun unser Bericht über das Fußball Tippspiel "Packung!" enthalten.
Nach einer ausführlichen Erklärung der Architektur und einigen Anwendungsfällen von JVx, wird anhand einer konkreten Tippspiel Maske erklärt, wie mit JVx gearbeitet wird um effizient und schnell zum Ergebnis zu kommen.
Abschließend ist auch noch unsere Android Anwendung zu sehen, die ebenfalls mit JVx umgesetzt wurde.
Der Artikel zum Nachlesen: JVx Java Magazin 05.2010
Schon seit wir mit der Definition des ISerializer Interface begonnen haben, war der Wunsch nach Technologie unabhängiger Kommunikation vorhanden. Das Thema hat uns immer wieder gestreift, doch die Notwendigkeit einer Java unabhängigen Implementierung war nicht gegeben.
Vor einigen Wochen war es dann so weit. Wir entschieden uns für die Portierung der JVx Objekt Serialisierung nach C#. Natürlich gab es einige Herausforderungen und Probleme, die jedoch keinen Einfluß auf die Funktionswiese hatten. Und im Unterschied zu CORBA, Hessian & Co unterstützen wir ein sehr breites Spektrum an Objekten.
Nun ist endlich so weit und wir können eine funktionierende Kommunikation zwischen JVx und C# vermelden. Sämtliche Objekte werden mit dem UniversalSerializer ausgetauscht. Der C# Serializer arbeitet wie sein Java pendant und ist ebenso mächtig. Die Serialisierung von Objekten unterliegt allerdings den gleichen Einschränkungen wie es auch in Java der Fall ist, allerdings verzichten wir bei unserer Lösung auf das im Normalfall verpflichtende ISerializable Interface.
Um dem ganzen den notwendigen Schliff zu verpassen haben wir auch gleich die Kommunikationsklassen AbstractSerializedConnection, Master- und SubConnection sowie alle abhänigen Klassen portiert. Dadurch ist der Zugriff auf die JVx Business Logik zu 100% gegeben. Wir können nun die komplette Business Logik und alle Server seitigen Actions, auch mit C#, einsetzen und zwar ohne Mehraufwand.
Ein kleines C# Beispiel an dieser Stelle muss natürlich sein:
public void testMetaData
()
{
HttpConnection conDemo
= new HttpConnection
(new UniversalSerializer
(),
"http://localhost/jvx/services/Server")
MasterConnection appconDemo = new MasterConnection(conDemo);
appconDemo.ApplicationName = "demo";
appconDemo.UserName = "demo";
appconDemo.Password = "demo";
appconDemo.open();
SubConnection sub = appconDemo.createSubConnection("demo.Company");
sub.open();
MetaData md = (MetaData)sub.call("company", "getMetaData");
}
Im nächsten Schritt erstellen wir einen Showcase basierend auf Silverlight 4. Demnächst hier mehr dazu.
Wenn man mit java.io.File nicht arbeiten möchte und einen komfortablen Weg für den Umgang mit Dateien sucht, dann ist ev. das EntityFS API ganz nützlich.
Zusammengefasst stellt es Klassen und Utility Methoden bereit um Dateien zu lesen/ändern/kopieren. Das API besteht aus relativ vielen teilweise untereinander abhänigen jars. Die core lib ist mit etwas über 360Kb auch nicht gerade schlank. Die komplette lib veranschlagt sogar etwas über 700Kb.
Dennoch spart das API sehr viel Zeit im direkten Vergleich mit java.io.File & Co.
In der Ausgabe 04.2010 des Java Magazin ist ein äußerst interessanter Artikel, von Florian Müller, über JVx erschienen. Dieser Artikel gibt einen kurzen Einblick in JVx, erläutert kurzerhand die Idee hinter JVx und zeigt ein kurzes Code Beispiel. Alles in allem, ein gelungener Einstieg von JVx in die Medienwelt.
Der Artikel zum Nachlesen: JVx Java Magazin 04.2010
Die kommende Ausgabe 05.2010 enthält einen Beitrag von mir, über die Umsetzung unseres Beitrages zur W-JAX Challenge 09. In dem Artikel erkläre ich was es mit JVx auf sich hat und anhand eines Beispiels versuche ich die Einfachheit und Effizienz zu verdeutlichen.
Der Artikel ist schon seit einigen Wochen bei IT-Republik zu finden: Hier