# Java Framework für größere Projekte verwenden



## Michoel (2. Dez 2009)

hi, 
habe gerade gemerkt, dass ich in diesem forum mit meiner Frage besser aufgehoben bin. zur sache:


ich habe mir die Tage JSF als Framework angeschaut.
(http://www.mi.fh-wiesbaden.de/~barth/webanw/vorl/WebAnwPB9.pdf)

Es hört sich definitiv interessant an und man könnte sicherlich einiges an Arbeit ersparen, falls man sich ein Framework mal verinnerlich hat.

Anstatt "normale" HTML-Tags verwendet man dann interne Tags wie:
<hanelGrid columns="2"> für eine Tabelle, <h:form> für ein Formular (Und natürlich viele mehr)



Ich frage mich aber nun, da mir natürlich die Praxis mit einem Framework total fehlt, ob man bei größeren Projekten (Bsp. Community, Forum, ...) mit einem Framework gut fährt?


1. Ich frage mich, wie ich zum Beispiel das Gesamtlayout (Header,...) einbinde. (Bisher hatte ich immer in meinen JSP-Dateien ein include und Zentral einen Header.

2. Wenn ich Tabellen, Listen, Menüs, Formularfelder einfüge, frage ich mich, wie ich das designtechnische integriere, was zum Beispiel class oder id's für einzelne HTML-Tags angeht (bzgl. CSS)


3. Vorallem müsste ich mir über die Logik Gedanken, ob und wie ich Arbeit sparen kann, was die Geschäftslogik betrifft. Bsp. das Auslesen der Gästebucheinträge von Gästebuchmitglidern/Besuchern würde so ähnlich aussehen wie das Auslesen von Bug-Einträgen von Mitgliedern/Besuchern. Wobei, die dann auch nicht ganz gleich aussehen, da bei Bug-Einträgen bestimmte Buttons bzw. Links für Operator vorhanden sind und die Tabellen in der DB natürlich anders.
Deshalb frage ich mich, wie man da überhaupt Geschfätslogik miteinander verknüpfen kann und ob ein Framework hierbei Arbeit erleichtert.

Ich lese weiter, vielleicht erhalte ich noch eine Erleuchtung 

Grüßchen
michi


----------



## Michoel (6. Dez 2009)

niemand ne kleine hilfestellung?


----------



## JanHH (7. Dez 2009)

Also der Sinn solcher Frameworks ist unter Anderem, die Darstellung von der Geschäftslogik sauber abzukoppeln, gemäß MVC-Pattern. IDs und classes für die einzelnen Elemente werden von JSF natürlich berücksichtigt. Empfehlenswert ist dabei facelets (anstelle von JSPs), da hier ein template-Mechanismus für Hedaer, Layouts, Menüs usw. vorhanden ist. Generell ist bei JSF die Verwendung von seam überlegenswert, weil das sozusagen der "grosse Wurf" ist, der die Geschäftslogik (meist in Form von EJBs) auf höchst elegante Art sowohl entkoppelt als auch wieder integriert, einem sehr viel Arbeit abnimmt, die gröbsten Mängel von JSF beseitigt und ein sehr sauberes, elegantes Programmieren ermögliicht.

Die Frage "fährt man damit gut bei grossen Projekten" ist klar zu bejahen, bzw. wirft die Gegenfrage auf, wie man denn eigentlich grosse Projekte ohne leistungsfähiges Framework handhaben will. Das ist doch dann eine Menge Arbeit, die kaum noch per Hand zu bewältigen ist.


----------



## Michoel (7. Dez 2009)

hi jan, vielen dank für deine antwort. 

um einen überblich zu erhalten, habe ich mich mal als erstes an diese pdf orientiert:
http://www.mi.fh-wiesbaden.de/~barth/webanw/vorl/WebAnwPB9.pdf

Das erste was ich dann wohl machen muss, wäre dass ich die ganzen tags von JSF erstmal lerne, bzw. damit zurechtkomme. 

"<hanelGrid columns="2">
    <hutputText value="Vorname" /> <h:inputText value="#{namebean.vorname}"/>"

Kann ich da einfach für CSS class und id's einfügen?
Facelets wurde glaube ich in der pdf auch erwähnt, das schaue ich mir nochmal an. "seam" ?? sagt mir jetzt garnichts, aber google hilft hier sicherlich.


----------



## JanHH (8. Dez 2009)

<hutputText value="Vorname" styleClass="meineCssKlasse" />

oder 

<hutputText value="Vorname" id="meineId" />

oder

<hutputText value="Vorname" style="margin: 10px" />

usw usf.

JSF ist ja nur ein Teil dessen was man braucht.. halt fürs Front-End. Es gibt auch noch den Teil in der Mitte (Applikationslogik) und die Persistenzschicht (Datenbankanbindung). Dafür gibts auch jeweils Technologien und Frameworks. Seam integriert diverse verschiedene dieser Dinge (primär JSF, EJB und JPA) zu einem "Gesamtkunstwerk", welches sehr komfortable und abgerundet ist. Sofern Du Dich für den JSF-Weg entscheidest (es gibt ja noch haufenweise andere Frameworks, die hier auch von vielen Leuten bevorzugt werden), solltest Du als erstes JSF lernen, dann JPA und dann noch seam. Wobei - das ist eine ziemliche Menge Holz, es wird einem damit zwar vieles leicht gemacht, aber man muss auch erstmal eine ganze Menge Lernenergie reinstecken. Vielleicht solltest Du mal genauer die Rahmenbedingungen Deines Projektes erläutern - wie aufwändug ist es, wie lange willst Du daran arbeiten usw.


----------



## Michoel (22. Dez 2009)

Hi Jan, 
ich lese die Tage folgende zwei Seiten mal durch, um einen kleinen Überblick zu erhalten. 

Java Persistence API ? Wikipedia
JBoss Seam ? Wikipedia

Am Anfang dachte ich, dass JSF alles macht. Also Front-End, Applikationsschicht und Persistenzschicht. Gelesen hatte ich dazu folgende PDF: 
http://www.mi.fh-wiesbaden.de/~barth/webanw/vorl/WebAnwPB9.pdf

Grüße


----------

