# Seam - Trennung von GUI und Logik



## miketech (1. Jul 2007)

Hi zusammen,

ich schreibe zur Zeit meine erste Webanwendung mit JSF, nebenbei lese ich immer wieder mal Artikel über Seam.

Wenn ich das richtig verstanden habe, kann ich in Seam ja direkt auf die Anwendungslogik zugreifen. D.h. ich habe keine extra JSF-Bean, deren Methoden ich aufrufen kann, sondern ich kann direkt auf Session Beans zugreifen.

D.h. ich habe zum Beispiele eine Session Bean mit der Methode createUser() und als Rückgabewert einen String, wie man es von JSF ja kennt. Der String dient dann für die Entscheidung zu welcher Seite als nächstes gewechselt werden soll.

Ansonsten müsste ich in einer JSF-Bean zunächst die Session Bean aufrufen und dann den String zurückgeben, was ich persönlich nun nicht so schlimm finde. Aber vielleicht liegt das auch an meinen kleinen Projekten. Bei größeren Projekten hat man sicher eine Vielzahl von quasi Wrapper-Methoden.

Zu meiner Frage: Kann mir das mit den String eventuell zum Verhängnis werden? Ich vermische ja quasi GUI-Logik mit Anwendungslogik. In einem Artikel über Seam heißt es, dass man hier die 3-Schichtenarchitektur vermischt, weil man die Anwendungslogik stark an die GUI bindet. Das heißt aber doch nur, dass externe Clients (z.B. Swing-Anwendung) die Strings auf ähnliche Weise parsen muss, wie die GUI. Wo ist der Unterschied, ob ich nun Strings parse oder 0, 1, 2 als Rückgabewert bekomme? 

Der Autor schlägt zusätzlich eine 4-Schichtenarchitektur vor, in der über der Kernlogik nochmal eine Adaptionsschicht für verschiedene Clients zum Einsatz kommt. Das verstehe ich nicht ganz. Dann bin ich doch genauso weit, wie vorher? Dann würde ich wieder von JSF aus die Adaptionsschicht aufrufen, irgendeine JSF-Bean und diese würde die Kernlogik aufrufen. Wo habe ich dann mit Seam noch etwas gewonnen?

Gruß

Mike


----------



## d.ausstroit (7. Mrz 2008)

Hallo miketech,

hast Du mittlerweile eine Antwort auf Dein Vorhaben gefunden?

Für mich stellt sich auch gerade die Frage, wenn ich mit JSF/MyFaces usw. arbeite, ob es sinnvoll ist Seam einzusetzen. So ganz sehe ich den Vorteil von Seam noch nicht. Des weiteren suche ich ein ordentliches Beispiel für JSF, Seam und MySql. Vielleicht kannst Du oder jemand anderes mir ja weiterhelfen.

d.ausstroit


----------



## miketech (7. Mrz 2008)

Hi,

wenn ich es richtig verstanden, dann ist der Vorteil von Seam, dass man von JSF-Seiten direkt auf EJBs zugreifen kann ohne den Umweg über irgendwelche Managed Beans von JSF. Man spart sich hier also unnötigen Overhead.

Dafür hat man aber den Nachteil, dass die EJBs etwas JSF-spezifisch sind. Aber vielleicht kann hier noch jemand etwas dazu sagen?

Gruß

Mike


----------



## d.ausstroit (7. Mrz 2008)

Danke für Deine Antwort.

Kennst Du vielleicht ein Beispiel oder Toturial, welche mir den Zusammenhang zeigt? Wenn es geht mit MySql oder Oracle.

d.ausstroit


----------



## medi (17. Apr 2008)

Seam ist ein Framework zur Entwicklung der Webanwendungen und nicht Desktop-Anwendungen.
Deswegen benuzt er GUI-Framework JSF, weil JSF ein Standart für Webanwendungen, nicht für Desktop-Anwendungen.
Man möchte ein Programmiermodell schaffen für Webanwendungen, nicht für alles. Deswegen ist Java-Baukasten so kopliziert, weil es versucht für alles da zusein.

Du kannst mit JSF die Ausgabe in beliebige Auszeichnungssprache(HTML,XML,...) rendern. Das reicht doch. Wofür willst du dann JSF wechseln, wenn du wenanwendungen erstellst?


----------

