Welche Umgebung und Frameworks für mich als Umsteiger

MK2014

Mitglied
Hallo,

ich komme aus der ".NET"-Welt und muss mich nun in die JAVA-Welt einführen. Ich finde das ein sehr spannendes Thema.

In der .NET-Welt gab es sehr viele nützliche Frameworks, was das Erstellen von Desktop-Anwendungen angeht. So hatte ich als letztes "Entity Framework" als OR-Mapper, MVVM als Architektur, WPF für die Erstellung von Oberflächen benutzt.

Viele dieser Tools haben eigene Wizards die autm. Code erzeugten und somit "Schreibfehler" vermieden.

Wie sieht das in der Java Welt aus? Sicherlich gibt es da auch sehr viele Tools und Frameworks - aber was ist für mich als Einstig am besten und zukunftssicher?

Vielleicht mal etwas genauer, was ich für eine Anwendung schreiben möchte:
Ich habe eine .NET Anwendung, die schon sehr in die Jahre gekommen ist. Diese hat als Datenbank eine MSSQL 2012 Express. Die Anwendung benutzt als Reporting-Enginge Crystal Reports. Warum grade dieses, dazu später mehr.

Die Anwendung als solches ist nichts "aufregendes". Sie sammelt monatlich die Kennzahlen unserer Produktionsabteilung. Die Kennzahlen werden manuel von mir eingegeben und dann in einer monatlichen Übersicht ausgewertet. Die Auswertung übernimmt CR beim Drucken der Monatsübersicht.

Ich brauche also eine einfache Mitarbeiterverwaltung mit der Möglichkeit für jeden dieser Mitarbeiter auch monatliche Kennzahlen zu hinterlegen.

Für CR hatte ich mich deshalb entschieden, weil es in der Lage ist, eigene Abfragelogiken zu implementieren. So kann ich einen Report einfach öffnen und ich werde dann von CR nach den benötigten Paramtern gefragt. Diese können auch kaskadierbar sein. Und bei Id´s werden die Klartexte angezeigt und nicht die reinen Werte. Die Anwendung brauchte also nicht die verändert werden, wenn die Berichte neue Felder hinzu bekamen (sofern diese Felder schon in der Datenbank existiterten und verwaltet wurden). Auch brauchte die Anwendung sich nicht um das Bereitstellen der zu druckenden Informatione kümmern, das erledigte CR. Die Anwendung veränderte beim öffnen des Berichts nur die Datenquelle - alles andere ist im Bericht hinterlegt.

Wie schon erwähnt: Visual Studio und .NET haben für als diese Aufgaben sehr viele Frameworks (sehr viele auch als Freeware oder Open Source). Besonders geschätzt habe ich das für die Erstellung des UI und dem positionieren der Controls.

Was soll die Java-Anwendung können?
Eigentlich das gleiche wie die .NET Anwendung. Nur sollten noch Unit-Tests, Logging und einfache Wartbarkeit und Erweiterbarkeit hinzukommen. Eine Client-Server Architektur sollte für die Zukunftssicherheit sorgen. Auch eine Trennung der Schichten (bei .NET habe ich MVVM als sehr sinnvoll angesehen).

Ich wäre also sehr dankbar für ein paar Tipps und Anregungen in der Richtung, was für Komponenten und Bestandteile ich da verwenden kann.

Gruß
Michael
 
Auch die Java Welt bietet viele Frameworks die Arbeit abnehmen und ähnliches.
Ein OR-Mapper der Java Welt wäre zum Beispiel Hibernate (gibt es auch in einer .Net Variante), mit JavaFX wird versucht Oberflächen besser vom Code zu trennen (XML Syntax wie bei WPF).
Eine Alternative für Crystal Reports kann man sicher auch finden ...

.... aber mir stellt sich die Frage warum willst du von .NET auf Java wechseln? (nicht das ich dich davon abbringen will)
Als einzigen Grund hast du genannt das die Anwendung in die Jahre gekommen ist. Doch in .NET hast du für vieles schon die passende Basis und müsstest nur ein gründliches Refactoring durchführen.
Unit Tests und Logging gibt es für .Net ebenfalls, und Wartbarkeit sowie einfach Erweiterbarkeit sollten Grundvoraussetzungen sein 😉
In Java müsstest du dich einerseits mit neuen Frameworks auseinandersetzen, neue Techniken "erlernen" (MVVM gibt es in dieser Form nicht) und die Anwendung von Grund auf neu implementieren.
 
[...](MVVM gibt es in dieser Form nicht) [...]

Gibt es auch in Java, MVVM ist IMHO nichts weiter als das MVC + Application Model, das ist auch schon relativ alt die Idee. Ein Beispiel wäre z.B. ein eigenes TableModel von AbstractTableModel, das wäre das Application Model, das dann mit dem Domänen-Modell kommuniziert.

Das was es in Java so nicht gibt ist das Databinding und die Forms-Geschichte.
 
Zuletzt bearbeitet:
Vielen Dank für die Antwort. Das gibt mir schon mal eine gewisse Richtung.

.... aber mir stellt sich die Frage warum willst du von .NET auf Java wechseln? (nicht das ich dich davon abbringen will)

Ja, das zu beantworten, habe ich tatsächlich nicht gemacht. Es liegt daran, dass ich von meinem Arbeitgeber nun ein anderes Aufgabengebiet bekommen habe. Dort wird zu 100% mit Java entwickelt. Um mich in die "Sprache" einzuarbeiten benutze ich immer gerne "sinnvolle Projekte" - sprich nicht das "Hello Welt"-Beispiel - und dass Kennzahlenerfassung-Tool wäre ein gutes Übungsobjekt für mich, da es, was die Funktionen betrifft übersichtlich und überschaubar ist.
 
Dann frag deinen Arbeitgeber doch, was für Frameworks etc dort eingesetzet werden. Was bringt es, wenn du dich jetzt auf z.B. Springs oder Struts stürzt und am Ende wird beides nicht verwendet, aber dafür JSF ... oder weiß der Geier. Du hast im Java Umfeld zig Ansätze, die zum Großteil parallel zueinander existieren. Da jetzt das "Falsche" zu lernen ist genauso sinnvoll, wie jetzt z.B. mit PHP oder Ruby anzufangen.
 
Dann frag deinen Arbeitgeber doch, was für Frameworks etc dort eingesetzet werden.

Danke für den Hinweis, stg. Nur ist das in dem speziellen Fall nicht so "einfach", wie man denken mag. Wir setzen einen Warenwirtschaft ein, die quasie ein eigenes Framework darstellt: Fast alle Funktionen werden über parameter eingestellt, die dann wiederum Java-Code erzeugen können. Wir haben aber die Möglichkeit in bestimmten Fällen diesen generierten Code abzuändern und evtl. noch zu erweitern. Dies geschieht eben in Java. Datenzugriff und UI sind von dem Hersteller selbst entwickelte Tools, die ohne die komplette Serverarchitektur der Anwendung nichts nützen.

Für meine Weiterbildung würde ich mir daher gerne das Kennzahlen-Erfassungsprogramm nehmen und es portieren -aber nicht fürs ERP sondern als eigenständige Desktop-Anwendung.
 
Zuletzt bearbeitet:
nvidia hat gesagt.:
Das was es in Java so nicht gibt ist das Databinding und die Forms-Geschichte.

MVVM: JavaFX

Databinding: JavaFX Obersvables (Oder Es ginge wahrscheinlich auch ein vergewaltigtes JFace-Databinding, aber wieso, wenn JavaFX es sowieso schon mit bringt).

Forms: Was genau ist damit jetzt gemeint? So ein weites Feld...
 

Zurück
Oben