# Intranet-Anwendung auf Basis von JSF



## miketech (29. Jul 2007)

Hi zusammen,

ich muss eine Anwendung fürs Intranet schreiben. Es müssen einige Datenbestände abgefragt werden, die als Tabelle aufgelistet und ausgedruckt werden können sollen. Es müssen auch einige Datenbestände hinzugefügt und einige Charts dargestellt werden.

Mein Problem ist, dass ich mich nicht entscheiden kann, ob ich es als Swing-Anwendung oder als Webanwendung auf Basis von JSF realisieren soll. 

Ich habe in beidem einen kleinen Prototyp erstellt und bin selbst danach nicht viel weiter mit meiner Entscheidung  

Es gibt keine Einschränkungen bzgl. der Umgebung (Tomcat etc. vorhanden, Installation des Programms auf den Clients ist kein Problem). Ebenso gibt es keine besonderen Wünsche seitens der Anwender. Einziges Requirement: Es soll funktionieren 

Von der Usability ist die Swing-Anwendung natürlich besser bzgl. Reaktionszeit etc. Allerdings lassen sich bei der Webanwendung die Inhalte optisch schneller schöner darstellen aufgrund von HTML. Die Verbreitung ist ebenfalls leichter, was hier aber keine Rolle spielt. 

Sieht danach aus, dass Swing-Anwendung vorne liegt? Oder fallen Euch noch Gründe ein, wieso ich für eine Intranet-Anwendung auf eine Webanwendung statt Standalone-Anwendung setzen sollte?

Es gibt auch keine bestehende Geschäftslogik, die eingebunden werden muss. Die Anwendung ist komplett unabhängig, lediglich der Zugriff auf eine Datenbank muss erfolgen. 

Gruß

Mike


----------



## Guest (29. Jul 2007)

Wenn's schnell gehen soll, Swing.


----------



## miketech (29. Jul 2007)

Hi,

was hat das mit der Geschwindigkeit der Entwicklung zu tun? Ich hatte hier nun keinen Unterschied erwartet. Und wenn man die Geschwindigkeit nicht betrachtet, sondern nur das Resultat?

Gruß

Mike


----------



## Terminator (30. Jul 2007)

Also mit Java hab ich zwar nur WebApps geproggt, aber früher mal mit Delphi normal Programme. 
Da ist schon enormer Unterschied in der Entwicklungsgeschwindigkeit, das darf man nicht unterschätzen. 
Webanwendung muste dich mit viel mehr Sachen rumschlagen XHTML, CSS, Javascript/AJAX, Browsern.
Beinahe für jeden Schnick musste clientseitig selbst codieren, wo sonst fertige Komponenten sind. 
Auch Fehler sind da schnell mal drin und mühsamer zu suchen. 


Dann haste auch noch auf Server seite rumzukämpfen. 
Mit Validator und Converter aus gesendeten Strings deine Objekte bestücken. 
Mit Doublicate Submits durch die User.
Gesendete Daten müssen gegengecheckt werden (Manipulation durch User)
... 


Hab mich aber trotzdem für Webanwendung in den Intranetgeschichten entschieden weil: 
1. Aktuelle Trend bei den Kunden 
2. Kunde kann in nem Jahr auf einmal nen Part öffentlich haben wollen, dann muss man nicht erst neu einlernen 
3. Zugriff auf die Applikation ist von überall über Browser ohne zusätzliche Software möglich


----------



## WeirdAl (30. Jul 2007)

Terminator hat gesagt.:
			
		

> Also mit Java hab ich zwar nur WebApps geproggt, aber früher mal mit Delphi normal Programme.
> Da ist schon enormer Unterschied in der Entwicklungsgeschwindigkeit, das darf man nicht unterschätzen.
> Webanwendung muste dich mit viel mehr Sachen rumschlagen XHTML, CSS, Javascript/AJAX, Browsern.
> Beinahe für jeden Schnick musste clientseitig selbst codieren, wo sonst fertige Komponenten sind.
> Auch Fehler sind da schnell mal drin und mühsamer zu suchen.


Es kommt immer darauf an, welche Kenntnisse man hat  
Ich zum Beispiel müsste mich in die Client Programmierung komplett einarbeiten, mir über Concurrency usw Gedanken machen und generell mir genauer ansehen wie man "heutzutage" GUIs baut. 

Mit z.B. JSF als Grundlage muss man sich im Prinzip, d.h. mit den richtigen Komponentenbibs wie zB RichFaces, kaum bzw. keine Gedanken über Javascript/Ajax und Browserkompatibiltät machen. 
CSS ist für Basic Sachen Kinderkram und kann dank Mozillas Entwicklerplugin schnell angepasst bzw. ausprobiert werden.
Dank Facelets kannst Du xhtml-valide deine Seiten bauen und bekommst zeilengenau Fehler auf deiner Seite angezeigt. (Dies hilft extrem beim Debuggen).

Es stimmt das man einige Zeit braucht, um sich in den JEE Kram einzuarbeiten. Es ist aber denk ich schwieriger sich mit dem (Swing?) GUI Zeug zu beschäftigen. 

Da man uA "problemlos" die Webseiten auf Handies anpassen kann und dies sich in Zukunft meiner Meinung nach etablieren wird, sehe ich dort JEE im Vorteil. Daher würde ich bei so einer Entscheidung eher zur JEE Lösung tendieren. (Zudem mag ich den Swing-Kram net so )

Cu
Alex


----------



## Gast (30. Jul 2007)

Die Frage könnte auch lauten:

Thin Client vs. Fat Client
(JSF) vs. (Swing)

Wie siehts mit updates aus:
Bei JSF ändere ich nur dinge auf dem Server,
mit Swing muß ich an jedem Client rumbastelt oder Web Start verwenden.

Ist die Verarbeitungslogik aufwendig:
Wenn dies der Fall ist und eine große Anzahl von Usern gleichzeitig Zugriff auf die Anwendung haben soll, kann ein einzelner Server schon mal ins schwitzen kommen. Bei einer Fat Client Anwendung, kann man dafür auch die "Rechenleistung" der Clients nutzen.

An deiner Stelle würde ich mal eine Gegenüberstellung von Thin Client gegenüber Fat Client suchen und daran meine Anforderungen festmachen. Wenn sich ein Thin Client als beste Wahl rausstellt würde ich zu JSF tendieren, als Fat Client eher zu Swing.


----------



## Gast (30. Jul 2007)

Die Frage könnte auch lauten:

Thin Client vs. Fat Client
(JSF) vs. (Swing)

Wie siehts mit updates aus:
Bei JSF ändere ich nur dinge auf dem Server,
mit Swing muß ich an jedem Client rumbastelt oder Web Start verwenden.

Ist die Verarbeitungslogik aufwendig:
Wenn dies der Fall ist und eine große Anzahl von Usern gleichzeitig Zugriff auf die Anwendung haben soll, kann ein einzelner Server schon mal ins schwitzen kommen. Bei einer Fat Client Anwendung, kann man dafür auch die "Rechenleistung" der Clients nutzen.

An deiner Stelle würde ich mal eine Gegenüberstellung von Thin Client gegenüber Fat Client suchen und daran meine Anforderungen festmachen. Wenn sich ein Thin Client als beste Wahl rausstellt würde ich zu JSF tendieren, als Fat Client eher zu Swing.


----------



## Guest (30. Jul 2007)

würde mich an deiner stelle jetzt nicht allzufest auf das userinterface konzentrieren, sondern erst mal die ganze logik sauber implementieren, so dass du sie im tomcat und in in einem desktop client verwenden kannst. da die app ja sowieso nur intern verwendet wird kannst du dir dann mit matisse oder dem jsf-tool von netbeans ein gui zusammenklicken. persönlich würd ich dann auch eher ein webinterface machen....evt. auch mit struts...

happy coding


----------



## miketech (30. Jul 2007)

Hi,

naja das User Interface steht hier eigentlich im Vordergrund: Die ganze Anwendung besteht im Wesentlich daraus Daten aus einer Datenbank in gewisser Weise auszulesen und auf verschiedene Arten anzuzeigen. Mal als Tabelle, mal in Form eines Charts, mal als PDF zu exportieren, das ganze soll ausgedruckt werden können etc. Viel Logik steckt eigentlich nicht dahinter. Ein "select * from xy where" und vielleicht ein paar if's, mehr ist es nicht  Die Darstellung ist der größte Teil.

Persönlich würde ich auch ein Webinterface bevorzugen, weil ich einfach Lust auf JSF hätte  Aber da hier nicht im Vordergrund steht, was ich möchte sondern was am sinnvollsten ist muss ich da etwas genauer drüber nachdenken. 

Da die Usability wichtig ist und die GUI vor allem schnell reagieren muss tendiere ich daher eher zu Swing, aufgrund von Reaktionszeiten. Teilweise wird pro Sekunde eine Anfrage abgeschickt und muss in der Datenbank gespeichert werden. Aber eigentlich sollte das auch mit einer Weboberfläche machbar sein. Darf halt keine Hänger geben.

Gruß

Mike


----------



## KSG9|sebastian (31. Jul 2007)

Ziemlich krude im Intranet eine Swingapplication hinzustellen, oder?
Da würd ich definitiv auf eine der vielen, vielen Webframeworks zurückgreifen. Seis JSF, Struts(2)/Webworks, GWT oder ähnliches.

Ansonsten ganz klar ne Webstart-Anwendung...aber keine einzelne Swingapp die irgendwie zum Download oder so angeboten wird


----------



## miketech (31. Jul 2007)

Hi,

naja die Swing-Anwendung wäre natürlich vorinstalliert auf allen Rechnern. Ähnlich wie Office und Co.

Gruß

Mike


----------



## KSG9|sebastian (1. Aug 2007)

Woah...wie gesagt:

1. (mein Favorit) Webanwendung
2. Webstart Anwendung

Alles andere wirst ja verrückt mit Updates und ähnlichem.


----------

