# Entwicklungstechniken/Frameworks (viel Text)



## eSK (20. Feb 2008)

Hallo Leute.

Ich hoffe, das ist das richtige Forum - ich tendierte zwischen Anfänger und diesem hier, aber ich denke wegen der Nähe zu JSP passt es hier besser hin.

Zur Sache: Ich arbeite jetzt seit ca. 2-3 Jahren mit Java und denke, dass ich dabei einiges falsch mache. Zuerst mal kurz meine Java-Geschichte: Ich arbeite in einem mittelgroßen Betrieb mit ca. 150 Mitarbeiten – von denen leider keiner außer mir mit Java arbeitet. Deshalb habe ich auch keine Ansprechperson für solche Sachen. Schulungen für Java habe ich erst vor ca. einem halben Jahr genehmigt bekommen, und zwar darf/habe ich das Kurspaket  „Java-Programmier“ angefangen. 

Meine "eigentlichen" Anfänge begannen damit, das ich ein vorhandenes kleines JSP-Script (was auch nicht wirklich „State of the Art“ war) umgeschrieben habe um eine (andere) Oracle-Tabelle zu pflegen. An sich also nichts wildes. Mittlerweile bin ich aber sehr viel weiter – aber trotzdem glaube ich, dass ich sehr viel noch falsch mache. Ich habe mir Java größtenteils selber beigebracht – was zwar anfangs zielführend war, aber mittlerweile merkt man meinem Code schon deutlich an, dass ich mir Java per Selbststudium selber beigebracht habe :/

Über die Jahre hinweg habe ich mir nun quasi ein eigenes, kleines „Framework“ geschrieben… mit dem üblichen wieder verwendbaren Zeug: Standard-Icon-Leisten, „Seitengenerator“ mit Menügenerator (meine Anwendungen sehen alle gleich aus – immer gleicher Kundenkreis), Formgenerator (dem ich z.B. Vorgabewerte mit übergebe, welche erst überschrieben werden, wenn der Benutzer etwas anderes eingegeben hat und dabei ein Fehler aufgetreten ist), LDAP-Verzeichnis-Verbindung (die ich auch zum Prüfen des Logins nutze) bis hin zu einer Klasse, die die Verwaltung eines Bildes in einer Oracle-Datenbank tätigt (Oracle „interMedia“ (heißt mittlerweile glaube ich anders), falls es wen interessiert). 

Dateneinheiten, wie z.B. ein Datensatz einer Tabelle „modelliere“ ich als Klasse und gebe denen, neben gettern/settern Lade-, Speicher- und Lösch- Methoden mit, die nur dazu dienen, einen Datensatz aus einer Datenbank zu laden. Für mehrere Datensätze baue ich dann statische Methoden, welche mir Vectoren mit den entsprechenden Objekten zurückgeben.
Falls es Detaildatensätze gibt, werden diese nicht automatisch mitgeladen (da ich damit meine Anwendungen schon mal an Performancegrenzen gestoßen bin) sondern bei Bedarf geladen werden  - dazu habe ich die getter mit einem DB-Verbindungsobjekt als Parameter ausgerüstet, welche an eine interne fetch-Methode weitergegeben werden, falls das Detailobjekt noch null ist.

Meine Webanwendung an sich bindet diese Klassen ein und besteht – leider – aus einem Mischmasch von HTML und Java. Leider weiß ich es aber auch nicht besser, ich lese nur abundan von anderen Möglichkeiten, weiß aber nicht wie ich diese bei mir „einsetzen“ soll.
Hier ist erstmal eine kurze Beschreibung wie die Anwendung an sich funktioniert:

```
Instantiiere Seitengenerator, Datenbank- und LDAP-Verbindungen
Bereite einige Variablen zur Bestimmung der gewünschten Anwendungsbereiche vor (action, subaction, area, subarea)
Lege Zahlen-Konstanten für die einzelnen Bereiche zum Vergleich an
Wenn eingeloggt, generiere das Menü
Sonst generiere nur ein leeres Menü
Gib Fehlermeldung aus, falls ein Anmeldeversuch vorliegt
```

Dann folgt eine riesige if-then-else-Verzweigung, welche die Konstanten mit den action, subaction, etc. vergleicht und so bestimmt, welcher Bereich gerade offen ist. Innerhalb dieser Bereiche werden andere Dateien eingebunden – auf statischem Wege, damit ich die an zentraler Stelle deklarierte (s.o.) Datenbank- und LDAP-Verbindungen sowie den Seitengenerator nutzen kann. Leider hat dies den Nachteil, dass diese index.jsp dann irgendwann riesengroß wird (und vor ein paar Tagen bin ich durch Zufall auch an eine Grenze gestoßen). Alles in allem komme ich mit meinen Anwendungen gut klar und auch z.B. Funktionserweiterungen kann ich relativ schnell realisieren.

Ich bin mir ziemlich sicher, dass das so normalerweise nicht gemacht wird und suche nun für meine Aufgaben geeignete Mittel, die ich dann in Zukunft einsetzen kann. Ich hoffe ihr könnt mir bei dieser Frage helfen, damit ich aus meiner Insellösung und aus dem Selbstgelernten rauskomme – zumal mich früher oder später die oben erwähnte Grenze sowieso dazu zwingen wird, anders an diese Sache heran zu gehen. Also suche ich nun Frameworks bzw. Techniken, die mir diesen (mittlerweile selbst geschaffenen) Komfort möglichst auch bieten, womit ich nicht alleine in der Welt bin und welche vor allem für kleine bis mittelgroße Anwendungen geeignet sind (wir sind ja nur ein „kleines“ Haus mit relativ kleinen Anwendungen, zumal ich (noch) der Einzige bin, der damit arbeitet).

Ich hoffe ihr könnt mir bei diesen Fragen helfen bzw. mir zeigen, wo ich Vorgehensweisen verbessern/ersetzen kann und bedanke mich schon mal im Voraus.

Gruß,
eSK


----------



## Gast (20. Feb 2008)

Hallo,

mal ein paar Fragen zu Begin:

In welchem Bereich ist das Unternehmen taetig ? z.B. Softwareentwicklung 

Sprichst du von kleinen Inhouse Anwendungen oder Projekten bei Kunden ?

Wieviel BusinessLogic ist zu implementieren ? oder einfaches Tabellenanzeigetool...

Wieviel Zeit (Budget) hast du, um dich in die Technologien einzuarbeiten ?

gruesse

Gast


----------



## eSK (20. Feb 2008)

Wir sind ein Systemhaus, welches ausschließlich eine große Kommune (und angehörige Gesellschaften) als Kunde hat (und haben darf). D.h. also wir haben sowohl Bereiche für Systembetreuung, Anwendungsentwicklung als auch Benutzersupport. Gleichzeitig laufen sämtliche IT-Beschaffungen über uns und werden auch durch uns betreut.

In den letzten Jahren wurde hauptsächlich Struktur ins Chaos gebracht und die IT vereinheitlicht (was natürlich ein stetiger Prozess ist, aber so im Groben kann man von Vollausstattung sprechen) weshalb die Eigenentwicklungen etwas auf der Strecke geblieben sind und größtenteils Beauftragungen stattfanden. Ich hoffe dieser kurze Überblick reicht 

Was die Anwendungen betrifft: Sowohl als auch, wobei die Kundenanwendungen in den Ämtern den Großteil einnehmen.

Logik an sich sind meist(!) nur Plausibilitätsprüfungen, es können aber in Zukunft durchaus kniffligere Logiken zum Tragen kommen.

Zeit ist erstmal irrelevant, da ich dadurch ja auch meinen Marktwert steigere und mich auch privat einarbeiten würde. Budget ist da schon etwas schwieriger, Bücher sind kein Problem, aber teure Schulungen sind sehr schwierig genehmigt zu bekommen. Zumindest kurz- und mittelfristig.

Danke nochmal, dass du dir die Zeit genommen hast.


----------



## SnooP (20. Feb 2008)

Ja du hast Recht mit der Annahme, dass das so normalerweise nicht gemacht wird, bzw. zumindest nicht gemacht werden sollte 

Das Problem, du hast die Navigation und die Verwaltung der Seitenaufrufe komplett in einer Seite laufen... viele haben das noch in ein Servlet ausgelagert, dass in einem riesigen if-else Block die Verzweigung bzw. das Dispatchen der einzelnen Actions erledigt und je nachdem unterschiedliche jsps anzeigt... das Problem: für sowas benutzt man sinnvollerweise vorhandene Frameworks 

Für dich würde ich mal vorschlagen in der Richtung weiterzulernen...  Frameworks gibt es da viele... relativ alt aber am nächsten noch zur JSP Technik ist da Struts + JSTL, dann etwas zukunftsträchtiger und cooler Struts2 und natürlich JSF... + diverse andere 

zu den Schulungen: schlage interne Schulungen vor... d.h. du arbeitest dich in ein Thema ein und bereitest das Thema gleich so auf, dass andere auch davon profitieren könnten - evtl. könnte man ja erwarten, dass aufgrund der aktuellen Wachstumsdynamik noch weitere Java-Entwickler benötigt werden...


----------



## eSK (21. Feb 2008)

Vielen Dank für die Antwort. Jetzt habe ich aber noch ein paar Fragen:
Ich habe vor längerem irgendwo mal aufgeschnappt, das JSF der inoffizielle Nachfolger von Struts ist, da Struts angeblich nicht mehr weiter entwickelt wird. Was ist da dran?

Was genau ist Hibernate? Ich weiß nur soviel, dass Hibernate ein Framework zur Anbindung von Datenbanken ist. Aber wie funktioniert das und welche Vorteile hat man dadurch? "Von Hand" wurde es bisher nur aufwendig, wenn die Kunden verschiedene Sortierungen/Kriterien haben wollten. Geht das mit Hibernate komfortabler?

Danke nochmal.


----------



## schalentier (21. Feb 2008)

Also erstmal:
http://de.wikipedia.org/wiki/Java_Platform,_Enterprise_Edition

Da gibts ne Uebersicht ueber die ganzen JEE APIs. Wichtig fuer dich sind wahrscheinlich in erster Linie JSF (hat mit Struts  nicht viel zu tun, is quasi ein Aufsatz auf JSP) und JPA (Hibernate waere eine gute Implementierung dieser API). 

Das Problem is nur, das ist alles unendlich viel und komplex. Ich empfehle dir, nimm dir irgendeins dieser Rundumsorglos-Packete. Ich nenn einfach mal paar Namen, du kannst dann bissel googlen und dir eins nehmen, was dir sympatisch erscheint und mal ein Beispiel damit machen. Meistens setzen diese Frameworks auf die oben genannten APIs auf, so dass du diese am Beispiel kennen lernen kannst.

- Naked Objects
- Grails
- Struts2

Wenns nich unbedingt Java sein muss:
- Ruby On Rails (Ruby)
- Symfony (PHP)

So reicht erstmal, denke ich.


----------



## SnooP (21. Feb 2008)

Okay... also JSF ist nicht der inoffizielle Nachfolger von Struts. Zwar ist der Struts-Guru Craig McClanahan mit an der Spezifikation von JSF beteiligt gewesen - aber das heißt noch lange nicht, dass Struts jetzt durch JSF abgelöst ist/wird. Allerdings stimmt es, dass die Zukunft da sehr unscharf ist - heißt, man weiß nicht, ob es in Zukunft mehr JSF oder aber auch Struts2 oder ein anderes Framework geben wird...
Wenn du JSP gewöhnt warst insb. evtl. auch schonmal was von der JSTL gehört hast, dann wirst du dich mit Struts1 vielleicht erstmal wohler fühlen. JSF geht einen etwas von JSP losgelösteren Weg - Komponentenorientierung ist hier so ein wenig das Stichwort. Wenn du schonmal mit Swing gearbeitet und FatClients programmiert hast, dann wirst du die Konzepte daher ja evtl. kennen - sprich Komponenten die untereinander Events auslösen etc... - so ein wenig kann man sich das bei JSF auch vorstellen.

Ich persönlich hab jetzt mit Struts1 gearbeitet und mich parallel ein wenig um JSF gekümmert und finde letzteres erheblich besser (zumindest ab Version 1.2). Man muss sich zwar ein wenig umstellen, aber das ist ja logisch. Struts2 ist noch ziemlich in der Entwicklung, die doku ist teilweise wohl noch nicht ganz schlüssig - die Version die draußen ist, wohl noch nicht zu empfehlen (die neue Beta soll stabiler sein), etc... - also da bleibt's abzuwarten. Die Konzepte dahinter sehen auf jeden Fall auch sehr gut aus. Also wenn du zukunftsorientiert denken willst und ein wenig freie Zeit erübrigen kannst, solltest du dir JSF mal anschauen... ich denke mit 3 Jahre Java-Erfahrung und entsprechenden Büchern auch eine machbare Aufgabe.

Zur zweiten Frage: Hibernate ist ein sog. OR-Mapper - d.h. du hast eine objektorientierte Modellstruktur und möchtest diese persistieren - in einer Datenbank. Hibernate kann dann die Beziehungen zwischen den einzelnen Klassen in Beziehungen und Entitäten (Tabellen) auf der Datenbank realisieren.
Andersrum kann man Java-Entitäten (Klassen) bauen, die eine Abbildung von DB-Tabellen darstellen... dazu bedarf es halt entsprechender Mappings - entweder via JPA (also mit Annotations) oder mit Hilfe von xml-Konfigurationsdateien (hibernate-core). Dazu erhält man dann noch eine an SQL angelehnte aber objektorientiertere Abfragesprache, sowie eine sog. Criteria-API zur programmatischen Abfrage der DB... das kann man sehr gut verwenden, wenn man z.B. Filter für die DB aufsetzen will und je nach Auswahl verschiedener Filter Bedingungen zu der Abfrage hinzufügen möchte. Bei SQL hat man dann meist die SQL-Query-Strings via "append" erweitert... was häufig doch ziemlich nervig sein kann (und auch sehr unschön aussieht).

Also ich muss sagen, dass sich Hibernate auf jeden Fall lohnt... die ganzen DB-Abfragen gehen mir persönlich - wenn von Hand gemacht - doch sehr auf die Nerven... bei Hibernate hat man zwar wieder andere Probleme, aber sowas gibt's ja eigentlich immer


----------



## eSK (21. Feb 2008)

Danke für die Antworten.


Könnt ihr mir gute Literatur für JSF und Hibernate empfehlen? 

Gibt es für JSF Erweiterungen, um auch AJAX-Elemente zu nutzen (ich habe z.B. oft eine Straßentabelle mit >3000 Einträgen aus denen man Straßen aussuchen kann, da wäre eine normale Selectbox zu überladen), die ihr empfehlen könnt? Ich habe bei wikipedia ein paar Erweiterungen "gesehen".


----------



## SnooP (21. Feb 2008)

ja z.B. die Core JavaServer Faces.


----------



## maki (21. Feb 2008)

SnooP hat gesagt.:
			
		

> ja z.B. die Core JavaServer Faces.


Finde ich auch, aber dann bitte die 2nd Edition 

Bevor du dich auf JSF einlässt, musst du ein gutes Verständniss über Servlets und JSPs haben, sonst wird das nix.

Ansonsten sei noch ein Framework erwähnt: shale

Ehemals struts-shale genannt, soll shale für JSF das leisten was struts für Servlets und JSPs leistet.

Anders als die einen oder anderen hier habe ich allerdings keine Zweifel, dass JSF sich gegenüber struts durchsetzt.


----------



## karatekid (21. Feb 2008)

Hi eSK,

evtl. solltest du erst mal so anfangen :

Besorge dir ein Einsteigerbuch über die Entwicklung für den  JBoss. Da gibt es einige die das Vorgehen sehr gut erklären. 

Für deine Logik baust du erst mal eine Sessionbean (Logikschicht). Darauf setzt du eine JSF Seite (Frontend). Darunter eine Entitybean (EJB3 Persistenzschicht) als Zugriff auf die Persistenz. Damit hast du, recht primitiv, aber schnell eine kleines Schichtenmodell von dem aus du weiter lernen kannst.

Wenn du dann noch $29,- für myEclipse ausgibst, hast du noch eine nette IDE die die gerade genannten Schichten Anfängerfreundlich unterstützt. Alternativ geht auch der JDeveloper. Der kostet genau wie der JBoss nix. Allerdings ist der JDeveloper recht schwerfällig.

Ich denke die erste niedliche Seite die Daten aus der DB anzeigt, hast du in wenigen Tagen fertig. Darauf aufbauend kannst du dich dann später in weitere Technologien einarbeiten.

Um Architekturen zu verstehen solltest du dir noch ein Buch über Architekturen und Pattern besorgen. Das erschlägt dich zwar erst mal, aber du musst es ja nicht in einem Tag abarbeiten 

In einigen Wochen, wenn du dann die Grundlagen verstanden hast, kannst du ja deine Anwendung auf deine neue Architektur nach und nach umbauen.

Für deine Firma wäre das auch von Vorteil wenn einer sich auf diesem Gebiet auskennt.


----------



## eSK (21. Feb 2008)

Ich dachte immer, JBoss wäre ein Application Server wie jeder andere auch und wie man programmiert (bzw. mit welchen Frameworks) interessiert ihn nicht? 

Kann ich hinterher produktiv anstatt JBoss auch den Oracle Application Server nutzen? Ich weiß, dass wir diesen lizensiert haben, aber derzeit nicht nutzen. Allerdings haben wir dafür Support von Oracle, was wiederum bei meinen Vorgesetzten einen kleinen Unterstützungsschalter umlegt 

Was die Bücher betrifft: Es wäre nett, wenn du mir Empfehlungen geben kannst, da ich leider einige schlechte Erfahrungen gemacht habe. Für JSF wurde ja schon eins empfohlen (danke!), dann bräuchte ich noch eins für Beans, weil ich von denen immer nur am Rande (und auch nicht Enterprise) mitbekommen habe.


Für Architekturen und Patterns hatte ich Softwarearchitektur für die Praxis (Xpert.press) von Jürgen Dunkel und Andreas Holitschke gefunden - und soweit man bei Amazon sehen kann, werden da auch die drei Schichten behandelt. Kennt das Buch jemand?

Wenn ich EJB3 einsetze, brauche ich Hibernate dann noch? Oder ist Hibernate "nur" eine Implementation der EJB3-Spezifikation? 
Für Hibernate habe ich nämlich auch ein Buch gefunden, was mir ganz brauchbar schien: Hibernate. Das Praxisbuch für Entwickler (Galileo Computing) von Sebastian Hennebrüder

Kennt das jemand?


Danke für die bereits getätigten und folgenden Antworten!


----------



## SnooP (21. Feb 2008)

Du brauchst keinen AS - und du brauchst auch keinen JBoss. Hibernate-Annotations implementiert die JPA Spezifikation, die Teil der EJB3-Spezifikation ist - bzw. imho aus dieser herausgelöst wurde, weil man erkannt hat, dass Persistierung nicht unbedingt Bestandteil von EJB sein muss... wenn du also EJBs verwenden willst/musst, dann kannst du Hibernate nutzen, um die JPA Geschichten zu machen.

Generell reicht für JSF aber ein Tomcat aus... - und das man Servlet-Wissen benötigt, kann ich eigentlich nicht bestätigen... generell hilft Wissen immer - aber gerade bei JSF sieht man vom Servlet nicht mehr so wahnsinnig viel...


----------



## karatekid (21. Feb 2008)

@eSK
jo, JBoss ist ein Application Server wie jeder andere auch und hat wie jeder andere seine Eigenheiten. Ich hatte den nur angeführt, weil es für den Bücher und sehr viel Hilfe im Internet gibt. Klar, die Frameworks laufen auf den anderen Servern auch.

Wenn, dann würde ich an deiner Stelle gleich den oc4j nehmen. Hinterher von einem auf den anderen Server portieren ist eher Aufwand den man sich sparen sollte.

Der JBoss nutzt Hibernate als EJB3 Implementierung. Was der oc4j benutzt kann ich nicht sagen.

Was die Bücher betrifft, muss ich am WE mal zu Haus nachschauen. Zum Thema EJB3 kann ich "Pro EJB3" von Mike Keith empfehlen.


@SnooP
man braucht natürlich keinen AS. Es gibt auch andere Wege um ans Ziel zu kommen. Es kommt immer auf den Einsatzzweck und die Effizenz der Umsetzung an. Aber warum keinen AS verwenden und deren Vorteile nutzen.
Ich kenne genügend die auf die Tomcat/Hibernate Kombination schwören und sich alles von Hand basteln. Meiner Meinung nach ist der Einsatz eines AS effizienter. ok, ich baue vorrangig an größeren Applikationen.


----------



## maki (21. Feb 2008)

> und das man Servlet-Wissen benötigt, kann ich eigentlich nicht bestätigen... generell hilft Wissen immer - aber gerade bei JSF sieht man vom Servlet nicht mehr so wahnsinnig viel...


Die Konfiguration der web.xml ist Teil der Servlet Spek. 
Die Scopes sind auch Teil der Servlets.
Ein Servlet hat man auch mit JSF.

Zumindest wenn man keine Facelets einsetzt, sollte man auf jeden Fall gut über Servlets und JSPs bescheidwissen, denn diese beiden Technologien bilden die Grundlage auf der JSF aufsetzt.

Zumindest imho


----------



## SnooP (21. Feb 2008)

daher ja auch "nicht mehr so wahnsinnig viel" - denn die web.xml fass ich einmal an... scopes kann man sich sehr schnell auch so überlegen was das soll und das Servlet bei JSF sieht man außer in der web.xml nich wirklich 

Insb. weil der OP nicht so die wahnsinnigen Kentnisse hatte, wollte ich vermitteln, dass der Anfang mit JSF und dann evtl. auch Hibernate vielleicht erstmal sinniger ist. Man kann später immer noch einen AS hinzunehmen - wenn man das wie gesagt denn wirklich braucht. Ich halte Spring und dort implementierte Services für die meisten Anwendungen für ausreichend. Wirklich große Applikationen die EJB zwingend erforderten, hab ich bislang noch nicht entwickelt - trotzdem sehe ich bei EJB natürlich gerade in dem Kontext Vorteile... aber ich glaube fast, so sieht die Projektlage beim OP nicht aus.. insb. weil er Einzelkämpfer im Unternehmen ist


----------



## karatekid (21. Feb 2008)

Gerade bei Verwendung eines AS empfinde ich die Lernkurve steiler. Kollegen, die genau vor dem gleichen Problem standen wie der Threadowner, bestätigen das. Aber das ist subjektiv.

Und das man später einfach den AS dazu nehmen kann, stimmt ja auch nicht ganz. Das "hinzunehmen" bedeuted in vielen Fällen entsprechenden Aufwand und Umbau.

Rein vom Zweck würde es hier natürlich auch ein Tomcat tun.


----------



## eSK (21. Feb 2008)

Ich habe mich gerade durch die englische, allgemeine EJB-Erklärung von Oracle gekämpft, sehr interessante Sache. Also wenn ich soweit alles richtig verstanden habe, betrifft EJB nur die Geschäftslogik und Persistenz - Frontend interessiert EJB in erster Linie gar nicht - wofür ich dann JSF einsetzen könnte (und wenn ich Spaß daran habe, auch Swing). Liege ich damit richtig?

Ich werde auf alle Fälle mal JSF ausprobieren. Ich frage mich nur noch, ob ich, wie vorgeschlagen, gleich auf EJB gehe ("Although many people think EJBs are overkill for developing relatively simple
web applications of moderate size, nothing could be further from the truth." Quelle: Seite 8, 1.1.2 EJB as a Framework), oder mich langsam rantaste. 

Euren bisherigen Antworten entnehme ich, dass ihr von den von mir genannten Büchern noch nichts gehört habt...

Bei der EJB-Lösung wäre auch das Hibernatebuch hinfällig, zumindest sehe ich in dem Entity-EJB-Beispiel von Oracle keinen Hinweis auf Hibernate - und ich denke die Nutzung des Oracle AS hätte hier die größten Chancen.


@maki: Mit JSPs und Servlets habe ich ja bereits gearbeitet, also das Grundverständnis dafür ist ja glücklicherweise da, auch wenn meine Nutzung dieser Dinge etwas "unkonventionell" war.


----------



## karatekid (21. Feb 2008)

Jo, genau wie du es sagst. Ich würde auch auf jeden Fall JSF ausprobieren. 

Was du darunter hängst ist Geschmackssache. SnooP favorisiert Hibernate/Spring + Tomcat als Webcontainer, ich bin eher ein Fan vom AS als "All in one - Lösung". Für deinen Zweck geht beides.

Ach übrigens, wenn du eh den oc4j im Haus hast, dann kannst du auch gleich den JDeveloper nehmen. Der hat auch gleich die Unterstützung für ADF. Da sind recht nette JSF Komponenten dabei.

Von den von dir genannten Büchern habe ich nichts gehört. 
"JavaServer Faces. Ein Arbeitsbuch für die Praxis" ist ganz nett.

Gruß KK


----------



## eSK (21. Feb 2008)

Das Problem beim JDeveloper ist, dass er, wie du schon sagtest, schwerfällig ist - und ich hatte mich schon sehr an den Eclipse gewöhnt. Außerdem kann es durchaus passieren, dass ich auch in die SAP-Entwicklung im Hause rangeführt werde, welche mit dem Netweaver arbeitet und zudem soweit ich weiß auch den Eclipse nutzt.

Deswegen werde ich mich wahrscheinlich auch mehr in Richtung EJB bewegen, das bringt mir bei SAP wahrscheinlich mehr.


----------



## Gast (vom Anfang) (22. Feb 2008)

Hallo,

bevor ich jetzt mein Senf zu EJB, JBOSS, ADF, JSF, JPA, Hibernate, TopLink, etc. gebe.. Mal etwas zum nachdenken.

Wo siehst du eigentlich deinen Schwerpunkt ?

Im Bereich Frontend, Backend, WebServerConfig, Middleware, Makroarchitektur, Ergonomie, Design etc...

Wenn du diese Frage beantworten kannst, dann koennen wir dir ich auch durchaus sinnvoller weiterhelfen.

Beispiel:

Falls du dich fuers Frontend entscheidest sind folgende Technologien fuer dich interessant:

CSS, JSP, JScript, JSTL,

JSF, Facelets, Tomahawk, Struts2, Titles, Spring MVC, Tapestry

aber auch Flex, Swing, SWT, Eclipse Rich Client, Ajax etc.



Im Bereich Backend und Middleware:

SPRING (WebFlow, core, faces etc.) , JPA, Hibernate, Toplink, Log4J, SQL, 

aber auch sinnvolles DB Design, DB Optimierung, etc.


und mal als Anmerkung:

Buecher sind gut geeignet, um einen Ueberblick zu erhalten und Technologien benutzen zu koennen. Aber zwischen benutzen und damit SINNVOLL zu arbeiten besteht ein sehr grosser Untersched.

Meine Erfahrungen:
Technologien zu beherschen lernt man nur durch das praktische anwenden in einem realen Projekt und durch andere Experten. 


Bezogen auf die Antworten auf meine Fragen:

Du arbeitest in einem "Systemhaus" und bist der einzige der Java macht ?

Was willst du (das Unternehmen) dann mit Java ? 

Das scheint definitiv nicht eure Kernkompetenz zu sein .... 

und um kleine Anwendungen mit wenig Logik etc. zu entwickeln gibts es weitaus geeignetere Technologien als Java z.B.: PHP, RubyOnRails, Flexbuilder (denn solltest du dir unbedingt ansehen) etc.


Gruesse

Gast

ps: Meinen Senf zu JBoss, EJB, behalte ich lieber fuer mich....


----------



## eSK (22. Feb 2008)

So einfach ist die Schwerpunktlegung leider nicht. Im Grunde genommen mache ich alles. Sowohl DB-Design, Frontend, Backend, Serverconfig, etc.

Allerdings beschränkt sich die Frontendentwicklung nur auf Weboberflächen (strategische Entscheidung des Hauses).

Datenbank wird Oracle bleiben, da auch das ein Standardprodukt des Hauses ist.

Java deshalb, weil wir unzählige Anwendungen betreuten (in sämtlichen möglichen Programmiersprachen - größtenteils eingekauft) und ich in einem Team sitze, welches sich hauptsächlich mit GIS beschäftigt und wir durch die Produkte, die wir dort einsetzen, mit Java erhebliche Vorteile nutzen. Desweiteren sind wir "eigentlich" ein SAP-Haus (d.h. wir nutzen viel SAP) und SAP mehr und mehr auf Java umsteigt. PHP ist von den Möglichkeiten her leider nicht mächtig genug, und eine dritte Script-/Programmiersprache wollten wir uns nicht auch noch ans Bein binden (Java ist ja schon durch Fremdprodukte gesetzt).
Derzeit wird auch noch ein weiterer aus meinem Team in Java ausgebildet (der hatte die eine Schulung aus dem im ersten Post genannten Paket auch schon), allerdings hat der auch noch eine Reihe von anderer Aufgaben - und ich bin ihm, was Java, HTML, CSS, etc. betrifft, auch meilenweit voraus. D.h. so richtige Cracks, mit denen ich mich hier austauschen könnte, haben wir hier nicht. 

Mit den Büchern hast du natürlich Recht; meine bisherigen Kenntnisse in Java sind auch immer mit meinen Aufgaben gewachsen (oder wenn ich mal wieder keine Lust hatte eine wiederkehrende Programmieraufgabe zum x. Mal zu machen und mir dadurch mein "Framework" erweitert habe).

Meine "Hauptaufgabe" ist also die Anpassung von Fremdprodukten mittels JSP, Javascript, HTML, CSS (incl. evtl. DB-Anbindungen an Oracle).

Nebenbei betreue ich noch unser CMS, da ich durch den Weggang eines Kollegen der einzig verbliebende bin, der das Ding pflegen und betreuen kann. Und bis der Ersatz geschult ist... (wenn der bei 0 anfängt) - da gehen noch ein paar Jahre ins Land (dazu muss er mind. XML, XSLT, HTML, CSS und ASP-VB (für die Relikte der angebundenen Webseiten) können...).

Zur Verdeutlichung: Das Systemhaus ist eine "eigenbetriebsähnliche" Einrichtung einer Kommune (mit ca. 600.000 Einwohnern) und hat 150 Mitarbeiter, die über 220 verschiedene Anwendungen betreuen. Das kann eine einfache Verwaltung von der Ausgabe von Jagdscheinen sein - oder aber auch das gesamte Einwohnerwesen (mit allem was dazugehört - wie z.B. Personalausweise, Reisepässe, etc.).

Die Stadtverwaltung an sich hat 12.000 User verteilt auf ca. 10.000 PCs, welche über das komplette Stadtgebiet an 370 Standorten verteilt sind. Deswegen haben wir bisher in manchen Bereichen, wie z.B. Java, nur an der Oberfläche gekratzt. Finde ich persönlich schade, lässt sich aber leider nicht ändern - dazu haben wir einfach viel zu wenig Personal/Zeit.



			
				Gast (vom Anfang) hat gesagt.:
			
		

> ps: Meinen Senf zu JBoss, EJB, behalte ich lieber fuer mich....



Wieso? Vielleicht hilft es ja bei der Entscheidungfindung...


----------

