# Welche Entwicklungsumgebung ist geeignet für.



## Guest (25. Feb 2005)

Hallo *!

Folgende Problematik:
Aktuell verwenden wir Delphi um eigene Applikationen mit DB-Anbindung zu schreiben. Aus diversen Gründen prüfen wir momentan die Möglichkeit neue Programme mit Java zu entwickeln.

Dabei sind folgende Punkte besonders wichtig:
1. Wir wollen Clients mit einer GUI entwickeln (SWT, AWT, und/oder SWING Komponenten)
2. Die Clients benötigen eine DB-Anbindung zu einer zentralen Oracle-DB (JDBC oder über einen Applikation-Server?)
3. Die Entwicklung der GUI sollte möglichst schnell gehen, damit man sich auf die eigentliche Programmlogik konzentrieren kann (JBuilder?)
4. Die DB-Anbindung sollte möglichst von der IDE kommen, z.B. DataGrids, etc.

In der engeren Auswahl stehen momentan JBuilder/JDeveloper oder eclipse. 
Was könnt  Ihr für Empfehlungen für die oben genannten Bedingungen aussprechen?

Vielleicht noch ne Frage zur Realisierung der Clients mit DB-Anbindung: Es es Empfehlenswert die Clients direkt per JDBC anzubinden oder sollte man noch einen Application Server einbinden (JBoss)?

Danke und Gruß,
Flo


----------



## AlArenal (25. Feb 2005)

zu 1.:
Ist grundsätzlich mit jeder IDE und jedem Editor möglich. Ist nur eben mal mehr und mal weniger Handarbeit. Allerdings sollte man nach Möglichkeit vorher wissen ob man zukünftig AWT, Swing oder SWT nutzen will. SWT wird derzeit nur über Eclipse unterstützt, AWT wir höchstens noch fpr Anwendungen für Uralt-JREs verwendet, spielt aber keine echte Rolle mehr.

zu 2.:
DB-Anbindung grafischer Anwendung erledigt man wohl direkt über JDBC, oder wenn man übers Netzwerk keinen direkten Zugriff auf die DB hat, schreibt man sich ne Zwischenschicht und nutzt dafür RMI, CORBA, XML-RPC, SOAP, ....
Application-Server werden AFAIK nur in Verbindung mit Webanwendungen eingesetzt udn ich glaube kaum dass ihr bisher in Delphi Webanwendungen entwickelt habt 

zu 4.:
Der JBuilder unterstützt in den großen Version (registriert euch mal und ladet die Evaluations-Versionen der Professional- und Enterürise-Editions runter) zusätzliche Abstraktionsebenen für die Arbeit mit XML und Datenbanken. Das umfasst einen ganzen Wust eigener visueller Komponenten und entsprechender Datenmodelle aus dem Hause Borland. Wenn die einmal nutzt, ist man natürlich auf ewig an Borland gebunden.

Ihr willst ja am Besten welche Funktionalitäten ihr braucht. Ich würde euch raten für einzelnen Sachen Prototypen in Java zu entwickeln und zwar einmal mit den zusätzlichen Klassen vom JBuilder und einmal ohne diese und nur mit dem Standard von Java, oder zusätzlichen Sachen die man so im Netz findet.

Wir selbst haben anfangs auch den JBuilder eingesetzt um unsere GUI-Anwendungen mit DB-Zugriff zu entwickeln, die zusätzlichen Borland-Klassen habe ich damals aber außen vor gelassen. Ich brauchte sie nicht und was Java von Haus aus bot, reichte vollkommen. 

In kurzer Zeit, als wir quasi ne Alpha-Phase einläuteten und Tests fuhren merkten wir zunächst, dass wir Probleme mit direktem DB-Zugriff über JDBC bekommen würden, da größere Kunden teils sehr strikte (und gute) Security-Policies haben, oft konzernweit.. Diese bekommt man nicht mal eben geändert, sprich die knipsen auf Servern und internen Firewalls nicht mal einfach den Port zu ihren Datenbanken frei... Durch diese Problematik schied auch RMI als Lösung aus, es blieb nur noch der Weg über XML-basierte Protokolle, die normal über Port 80 und nen Webserver laufen können (SOAP, XML-RPC).

Kurz drauf bekam ich Probleme meine GUIs mit dem JBuilder zu pflegen. Java.Komponenten wurden angepasst, erweitert, umgeschrieben.. Am Ende kommt eigentlich immer shcnell der Punkt, an dem der JBuilder nicht mehr in der Lage ist aus dem Sourcecode das GUI auszulesen und über den GUI-Builder editierbar zu machen - er kann es nichtmal mehr darstellen.

Ich testete Netbeans, doch da hat man am Ende auch wieder ein proprietäres Format in dem das GUI aufbewahrt wird und die IDE ist mitunter echt zäh. Eclipse hatte zunächst keinen GUI-Builder, nach einiger Suche entschied ich mich dazu den JFormDesigner zu nutzen. Ein kleines sehr nützliches und günstiges Tool, mit dem ich nun meine GUIs entwickle. Da es die GUI-Beschreibung in XML-Dateien aufbewahrt, habe ich nicht überall unnötigen GUI-Code in meinem Code und ich kann im Code machen was ich will, es ändert nichts an den XML-Dateien und sie bleiben mit dem Programm editierbar.

Erfahrungsgemäß gibt es keine ideale IDE, die Komponenten hat mit denen man seine speziellen Bedürfnisse schon alle befriedigt hat. Für jedes halbwegs anspruchsvolle Programm muss man eigene Komponenten entwickeln. Basieren diese auf dem Standard-Java oder Open-Source-Geschichten, hat man später immer gute Möglichkeiten flott auf ne andere Entwicklungsumgebung umzusteigen. Verlässt man sich zu sehr auf den JBuilder, ist es ne Entscheidung fürs Leben 

Muss jeder selbst entscheiden. Aber wie gesagt würde ich auch raten vorher parallel verschiedene Wege zu testen und dann in Ruhe für euch abzuwägen.


----------



## Bleiglanz (25. Feb 2005)

> 2. Die Clients benötigen eine DB-Anbindung zu einer zentralen Oracle-DB (JDBC oder über einen Applikation-Server?)
> 
> Vielleicht noch ne Frage zur Realisierung der Clients mit DB-Anbindung: Es es Empfehlenswert die Clients direkt per JDBC anzubinden oder sollte man noch einen Application Server einbinden (JBoss)?


Wenn keine J2EE Skills vorhanden sind, vergesst das ganze!

Wenn J2EE Skills vorhanden sind, ist es immer noch die Frage ob sich der Aufwand lohnt. 

Vorteil eines Appservers: gleichzeitige Zugriffe müssen nich vom Programmierer behandelt werden, Transaktionen per "deklaration" usw. 

Merkregel: 

* Wenn man Transaktionen braucht, die sich über 2 verschiedene DBs erstrecken ist ein J2EE Appserver sehr sinnvoll

* Wenn man nur eine Datenbank hat und seine Transaktionen leicht über JDBC abwickeln kann (das ist oft so), dann sollte man ggf. auf einen Appserver verzichten



> 4. Die DB-Anbindung sollte möglichst von der IDE kommen, z.B. DataGrids, etc.


schreit nach direktem JDBC Zugriff...


----------



## ak (25. Feb 2005)

Wenn ihr Delphi gewohnt seit, dann bietet sich der JBuilder natürlich an. In der neusten Version ist der GuiBuilder nochmal verbessert worden, er kann jetzt auch Swingklassen die nicht mit dem JBuilder erstellt wurden lesen, darstellen und editieren.
DB-Zugriffe auf der grafischen Ebene werden vom JBuilder auch sehr gut unterstützt. Einen APPServer würde ich nur verwenden wenn ihr euch wirklich mit der J2EE (besonders EJB's) auskennt.
Eclipse ist natürlich auch gut, bietet aber keine so ausgereiften grafischen Modellierungstools (Plugins) wie der JBuilder. Ist aber dafür kostenlos. Da aber die Personalkosten entscheidend sind, würde ich einfach bei beiden Produkten testen wie effektiv ihr damit seid.


----------

