Hallo Community,
ich habe für ein angedachtes Programm einen Prototypen in .NET entwickelt (normalerweise meine Programiererheimat). Zum Glück konnte ich mich damit durchsetzen, auch Java in Betrachtung zu ziehen und zusätzlich einen Prototypen mit Java zu erstellen.
Es handelt sich um ein Programm zur Datenerfassung und -Anzeige. Bis hierhin ganz einfach, aber jetzt kommen die angedachten Verteilungsszenarien und Programmvarianten:
1. SmartClient: Java Interface beim Anwender, Datenhaltung und -Verarbeitung in unserem Rechenzentrum. Kommunikation Anwender <--> RZ via Webservices (inklusive Authorisierung, SessionHandling, Verschlüsselung und wenn möglich Komprimierung)
2. RichClient: Java Interface, Datenhaltung (lokale DB oder im LAN) und -Verarbeitung beim Anwender
3. WebClient: HTML-Oberfläche für den Anwender, Webserver, Datenhaltung und -Verarbeitung in unserem Rechenzentrum.
SmartClient und RichClient sollen in allen 3 Schichten (Presentation Layer, Business Layer, Data Layer) den gleichen Code haben. Der Zugriff auf den Business Layer (vom Presentation Layer aus) muss also über eine Schnittstelle abstrahiert werden können.
Der WebClient soll den gleichen Business Layer und den gleichen DataLayer wie SmartClient/RichClient haben.
In .NET ist dies möglich und stellt bereits eine performante Lösung dar. Nun stehe ich allerdings vor einem Berg namens JAVA und weiß nicht, wie ich beginnen soll. Ich hätte gerne Erfahrungen von euch, welche Komponenten ihr einsetzt. Konkret bräuchte ich Empfehlungen zu folgenden Bausteinen:
IDE: Netbeans oder Eclipse? Im Endeffekt Geschmackssache (auch wenn jede IDE sicherlich ihre Propheten hat...) oder ist eine der beiden deutlich besser?
Presentation Layer:
Welches GUI-Toolkit mit welchem Designer würdet ihr empfehlen? Gibt es evtl. Frameworks (so etwas wie Eclipse Rich Client Platform) die wunderbar sind und an denen kein Weg vorbei geht? Wie läuft die Installation des SmartClients (übers Internet, mit automatischer Aktualisierung) ab?
Welches Framework für Webanwendungen? JSF, JSP, Servlets...? Evtl. mit Struts kombiniert?
Business Layer:
Business Methoden, WebService Anbindung, Transaktionshandling, Konfiguraton, AOP und Persistenz?
Wenn ich nur SmartClient und WebClient hätte, könnte ich sicherlich EJB 3.0 nehmen. Wie sehen EJBs in der Praxis aus? Und wie machen sich die EJBs, wenn sie plötzlich auf einem Client (RichClient) statt auf einem Applikationsserver laufen sollen? Gibt es überhaupt Container für EJBs, die auch in Client Anwendungen laufen? Was wären die Alternativen zu EJBs?
Wäre Spring eine Alternative bzw. was würde Spring vom geforderten nicht können?
Welche Technik für Webservices mit den oben gestellten Anforderungen?
DataLayer:
JPA, TopLink, Hibernate...? Welches ist die beste Technik (vorhandenes Datenmodell, Oracle (aber potenziell auch andere), GUIDs als Primärschlüssel).
Logging: log4j oder gibt es bessere Alternativen?
So, jetzt seid Ihr gefragt mir mit Eurer Erfahrung zu helfen. Ich gebe meine Erfahrungen, dich ich dann bei der Implementierung mache auch gerne weiter!
Grüße, Christoph
ich habe für ein angedachtes Programm einen Prototypen in .NET entwickelt (normalerweise meine Programiererheimat). Zum Glück konnte ich mich damit durchsetzen, auch Java in Betrachtung zu ziehen und zusätzlich einen Prototypen mit Java zu erstellen.
Es handelt sich um ein Programm zur Datenerfassung und -Anzeige. Bis hierhin ganz einfach, aber jetzt kommen die angedachten Verteilungsszenarien und Programmvarianten:
1. SmartClient: Java Interface beim Anwender, Datenhaltung und -Verarbeitung in unserem Rechenzentrum. Kommunikation Anwender <--> RZ via Webservices (inklusive Authorisierung, SessionHandling, Verschlüsselung und wenn möglich Komprimierung)
2. RichClient: Java Interface, Datenhaltung (lokale DB oder im LAN) und -Verarbeitung beim Anwender
3. WebClient: HTML-Oberfläche für den Anwender, Webserver, Datenhaltung und -Verarbeitung in unserem Rechenzentrum.
SmartClient und RichClient sollen in allen 3 Schichten (Presentation Layer, Business Layer, Data Layer) den gleichen Code haben. Der Zugriff auf den Business Layer (vom Presentation Layer aus) muss also über eine Schnittstelle abstrahiert werden können.
Der WebClient soll den gleichen Business Layer und den gleichen DataLayer wie SmartClient/RichClient haben.
In .NET ist dies möglich und stellt bereits eine performante Lösung dar. Nun stehe ich allerdings vor einem Berg namens JAVA und weiß nicht, wie ich beginnen soll. Ich hätte gerne Erfahrungen von euch, welche Komponenten ihr einsetzt. Konkret bräuchte ich Empfehlungen zu folgenden Bausteinen:
IDE: Netbeans oder Eclipse? Im Endeffekt Geschmackssache (auch wenn jede IDE sicherlich ihre Propheten hat...) oder ist eine der beiden deutlich besser?
Presentation Layer:
Welches GUI-Toolkit mit welchem Designer würdet ihr empfehlen? Gibt es evtl. Frameworks (so etwas wie Eclipse Rich Client Platform) die wunderbar sind und an denen kein Weg vorbei geht? Wie läuft die Installation des SmartClients (übers Internet, mit automatischer Aktualisierung) ab?
Welches Framework für Webanwendungen? JSF, JSP, Servlets...? Evtl. mit Struts kombiniert?
Business Layer:
Business Methoden, WebService Anbindung, Transaktionshandling, Konfiguraton, AOP und Persistenz?
Wenn ich nur SmartClient und WebClient hätte, könnte ich sicherlich EJB 3.0 nehmen. Wie sehen EJBs in der Praxis aus? Und wie machen sich die EJBs, wenn sie plötzlich auf einem Client (RichClient) statt auf einem Applikationsserver laufen sollen? Gibt es überhaupt Container für EJBs, die auch in Client Anwendungen laufen? Was wären die Alternativen zu EJBs?
Wäre Spring eine Alternative bzw. was würde Spring vom geforderten nicht können?
Welche Technik für Webservices mit den oben gestellten Anforderungen?
DataLayer:
JPA, TopLink, Hibernate...? Welches ist die beste Technik (vorhandenes Datenmodell, Oracle (aber potenziell auch andere), GUIDs als Primärschlüssel).
Logging: log4j oder gibt es bessere Alternativen?
So, jetzt seid Ihr gefragt mir mit Eurer Erfahrung zu helfen. Ich gebe meine Erfahrungen, dich ich dann bei der Implementierung mache auch gerne weiter!
Grüße, Christoph