Java framework pro WEB GUI

martin

Java framework pro WEB GUI
« kdy: 20. 04. 2013, 20:31:27 »
Dobry den,

ucim se delat web v Jave. Zatim mam zkusenosti pouze se JSTL a Stripes frameworkem.

Shanim nejaky framework, ktery by mi dovolil tvorit webove aplikace vcetne GUI (abych si ho nemusel cele psat sam). Nasel jsem nekolik zajimavych frameworku. Nejvic me asi zaujal Vaadin - ukazky vypadaji opravdu dobre: Desktop, Mobil, tutorial s adresarem.

Pak jsem jeste nasel PrimeFaces. Podle ukazek take vypada velice dobre.

Dale jsem nasel GWT (Google Web Toolkit). Neni moc navazany na Google App Engine? Mam strach z vendor lock-in.

Jake dalsi existuji?

Rad bych podporu v IDE (idealne Eclipse, ale neni podminkou) a nejaky GUI navrhar, jako ma Vaadin.

Vzhledem k tomu, ze studuji a mam relativne dost casu, rad bych se poradne naucil nejaky realne vyuzivany framework. Muzete mi prosim neco doporucit? Zajimaji me hlavne vyhody daneho reseni, jak moc se pouziva a slozitost na nauceni se.

Neradte mi prosim .NET, PHP, RoR a dalsi platformy! Zajima me Java.

Dekuji za rady!
« Poslední změna: 21. 04. 2013, 22:16:24 od Petr Krčmář »


Jakub Galgonek

Re:Java web framework pro tvorbu WEB GUI
« Odpověď #1 kdy: 20. 04. 2013, 21:10:33 »
Dale jsem nasel GWT (Google Web Toolkit). Neni moc navazany na Google App Engine? Mam strach z vendor lock-in.

Pokud člověk nechce, tak Google App Engine použít nemusí. Na GWT mne překvapilo, jak snadno jde v případě potřeby pozměnit implementace nějaké jeho třídy, aniž by musel člověk upravit samotné GWT. Konkrétně jsem měl problém s DisclosurePanelem, neboť způsob, jakým implementoval schovávání obsahu, nebyl kompatibilní s java applety - po zobrazení obsahu se applet vždy znovu inicializoval. Vyřešil jsem to tím, že jsem upravil DisclosurePanel.java tak, aby používal jiný mechanismus skrývání, dal jsem ho k sobě do projektu a nastavil projek tak, aby upřednostnil mou implementaci před tou v GWT.

Ještě lepší příklad byly různé menu a okna (generované na stránce pomocí HTML) , které prohlížeč vždy zobrazoval pod obsahem java appletu. To jde vyřešit trikem, že se pod zobrazovaný obsah vloží iframe. Stačilo upravit PopupPanel.java, aby pod sebe přidával iframe a opět zařadit tento soubor do projektu. Tento upravený soubor pak začnou využívat i všechny ostatní třídy z GWT, takže najednou začalo s java appletem fungovat vše, co používá PopupPanel, tj. menu a "vyskakovací" okénka.

Ostatní frameworky neznám, třeba to nebude problém ani v nich.

mon

Re:Java web framework pro tvorbu WEB GUI
« Odpověď #2 kdy: 20. 04. 2013, 22:54:01 »
ja som skusal jsf, gwt, vaadin, a apache wicket. Wicket mi prisiel najlepsi na to co som potreboval (viacvrstvova aplikacia s cca 300 obrazovkami, vela formularov a zoznamov pre cca 3000 subeznych pouzivatelov - 6 instancii vm)
vyhody:
komponentovy model (podobny ako asp.net webforms) - robi sa s tym lahko ako s desktop aplikaciami
malo js (resp kolko si das, tolko bude),
nie je zavisly na inych produktoch
rychlost,
pamatove naroky (ak neulozis do session co netreba)
jednoducha integracia so springom
html kod treba rucne napisat - lahko sa da vsetko ovplyvnit, preniest na mobil... (lahko sa robil design)

nevyhody:
horsia dokumentacia a tym padom sa to dlhsie uci
html kod treba rucne napisat - nenasiel som uspokojivy wysiwig editor


co mi vadilo na vaadine: zavislost na gwt pre view (veeela js), vyhoda: podpora programatorov (dokumentacia, editor,...)
co mi vadilo na gwt: horsia integracia s mavenom, milion javascriptu, vacsina bezi na klientovi
co mi vadilo na jsf: niektore spravanie sa nedalo zmenit, pamatove naroky.

Re:Java web framework pro tvorbu WEB GUI
« Odpověď #3 kdy: 20. 04. 2013, 23:13:14 »
Zkuste se podívat na ZK Framework - http://www.zkoss.org/. Má komponentový MVC, a MVVM model a poměrně slušnou dokumentaci, takže se v něm dobře píše. Problémy nastávají, když chcete psát v čistém HTML, občas vytváříte dost hacky kód. Pouze poslední verze podporuje HTML 5 (a to ještě ne kompletně).

l3

Re:Java web framework pro tvorbu WEB GUI
« Odpověď #4 kdy: 21. 04. 2013, 09:19:56 »
Se Spring MVC, JSF, Wicket a GWT chybu neuděláš. Vaadin neznám, ale tipl bych si, že tu bude jeden z kupy "niche" frameworků - jakých je na Java platformě hafo (Tapestry, Play, Click...). Tyhle méně používané frameworky mají velmi podobné vlastnosti - mizernou dokumentaci, malou podporu na fórech, nutnost lézt do zdrojáků, nepřenositelný skill, frustrace, smrt.. :D


Tomáš

Re:Java web framework pro tvorbu WEB GUI
« Odpověď #5 kdy: 21. 04. 2013, 18:01:10 »
Chtěl jsem navrhnout ať se podíváte na Tapestry (a Caynne jako ORM). Ale podle některých je to "niche". Já zase neznám skoro vůbec wicket. Tak jen přidám jen odkaz na video, které by jste měl zhlédnout před tím, než začnete vybírat. http://vimeo.com/12650821. Mat Raible pravidelně publikuje srovnání různých Opensource Java web framworků. Poslední bude asi tady http://raibledesigns.com/rd/entry/comparing_web_frameworks_and_html5.

Napište prosím co jste na konec vybral a proč. Dobrá studie na téma výběru dobrého frameworku, bude určitě hodně lidí zajímat.


Tomáš

Re:Java web framework pro tvorbu WEB GUI
« Odpověď #6 kdy: 21. 04. 2013, 21:04:03 »
Nedalo mi to a lehce jsem zagooglil. Výběr nejzajímavějších materiálů:
http://blog.websitesframeworks.com/2013/03/web-framework-comparison-matt-raible-opinion-138/
http://blog.websitesframeworks.com/2013/02/web-frameworks-types-122/

Pak je ještě jeden rozměr, který jsem nikde v porovnáních neobjevil, ale myslím, že má svoji váhu. Je to integrace frameworku s ORM vrstvou. Myslím, že to je jeden z úhelných kamenů úspěchu RoR. Tedy, že vám automaticky poskytne model na základě metadat z DB a nemusíte jej tak vytvářet 2x ( jednou v DB a podruhé v Javě ).

martin

Re:Java framework pro WEB GUI
« Odpověď #7 kdy: 23. 05. 2013, 00:34:53 »
Tak jsem se rozhodl pro JSF (Java Server Faces) v kombinaci s RichFaces / IceFaces / PrimeFaces.

Muzete mi doporucit nejake materialy pro uplneho JSF zacatecnika? Idealne v elektronicke podobe. Internet je plny ruzne starych a ruzne kvalitnich Hello world tutorialu, ale dost mi jich nefungovalo (asi moji chybou).

Jak je to s verzemi JSF? V hodne tutorialech psali o JSF 1.2. Ma to jeste dnes cenu, nebo jit hned do JSF 2?

Vsude slysim chvalu na kombinaci JSF+Spring. Je opravdu Spring tak nepostradatelny? Ma smysl se hned od zacatku ucit i Spring, nebo je lepsi zacit s cistym JSF a pozdeji treba pridat Spring? Ve Springu jsem nikdy nedelal.

mxm

Re:Java framework pro WEB GUI
« Odpověď #8 kdy: 23. 05. 2013, 06:19:38 »
Ahoj martine,
pokud zacinas s Webem v kombinaci s Javou, myslim, ze nejlepsi je zacit necim vlastnim a pěkně od píky. U toho pochopis vsechny souvislosti, ktere vsechny frameworky nejakym zpusobem poskytuji a řeší.

Podle meho nazoru pokud budes k necemu inklinovat bez zakladnich znalosti, budes delat zbytecne kroky a odradi te to. Pokud nejprve zvládneš základy, budeš se hned lépe orientovat v dokumentacích a snáz v ní budeš hledat, protože budeš znát terminologii i co přesně hledáš.

Zkus nastudovat a projit nasledujici material, ktery te provede zaklady a navrhne dobry zaklad webového MVC. Myslím, že jako start je to výborný materiál.
http://www.nplus1.net/java_web_programming.pdf

Přeji ti hodně štěstí.

eMko

  • ****
  • 456
    • Zobrazit profil
    • E-mail
Re:Java web framework pro tvorbu WEB GUI
« Odpověď #9 kdy: 23. 05. 2013, 07:11:58 »
Se Spring MVC, JSF, Wicket a GWT chybu neuděláš. Vaadin neznám, ale tipl bych si, že tu bude jeden z kupy "niche" frameworků

Trochu mi tu v tom výčtu chybí Struts (resp. Struts 2), což je jeden z nejpoužívanějších. Zatímco Spring a Struts jsou založeny na tradičním modelu (buzzword je "action based"), Wicket je komponentový a tím pádem se více blíží desktopu. Vaadin je používá GWT na zobrazování a ani Vaadin ani GWT nejsou svázány s Google App Enginem.

Osobně bych doporučil se podívat i na Grails - jedná se o celkem přijemný framework pro Groovy (což je dynamický jazyk běžící na JVM). I když Groovy má hodně daleko k ideálu, je to příjemnější volba než Java, miminálně na zobrazovací modul aplikace. Kódit něco v jazyku Java ... neříkám, že to občas nedělám, ale vždy si připadám, jak kdybych se vracel o 10 let zpátky.

perceptron

Re:Java framework pro WEB GUI
« Odpověď #10 kdy: 23. 05. 2013, 11:11:50 »
struts 1 treba nechat v hrobe, spring mvc ho radostne nahradi

jsf2 je uz dostatocne zrele, richfaces k nemu uz viacmenej tiez

spring na uvod az tak netreba, ten sa da do velkej miery nahradit JEE vecami (dependency injection a pod.)

martin

Re:Java framework pro WEB GUI
« Odpověď #11 kdy: 23. 05. 2013, 12:06:52 »
Dost casto pada zminka o Struts 2. Jde opravdu o tak dobry a pouzivany framework, nebo se pouzival driv a dnes v nem ze setrvacnosti jede spousta projektu?
Co rikate na Stripes? Zda se mi jako vylepseny Struts. Mam provadu?
Ma dnes cenu zacinat v Struts/Stripes/Wicket, nebo jit rovnou na JSF/Spring?

Existuje pro Struts/Stripes/Wicket neco jako RichFaces/IceFaces/PrimeFaces? Ja nic nenasel. U JSF se mi zda relativne snadne psani AJAXovych aplikaci.

perceptron

Re:Java framework pro WEB GUI
« Odpověď #12 kdy: 23. 05. 2013, 14:39:53 »
aby som zabranil zmatku v pojmoch: ako sa viackrat povedalo: struts1/struts2/stripes/spring mvc su jedna rodina mvc frameworkov, kde plati zasada, ze sa vsetko chape v strankach a navigacii medzi nimi

jsf a wicket su granularnejsi: uvazuje sa v komponentoch a ich vlastnostiach, viacmenej ako v swingu ci starom delphi

(btw kym jsf je kombinacia Java kodu a specialnych tagov v sablonach, wicket je rydzi java kod, kde sablony su ciste HTML, ale filozoficky su to znacne odlisne kniznice)

stripes bol svojho casu pekny framework, lebo elegantne riesil veci, ktore boli v struts 1 tazkopadne (predsa len, struts 1 je z 2001), zaviedol anotacie a mnoho vylepseni v api.

spring mvc sa od verzie 3 extremne prekopal v stripesovskom duchu, a myslim, ze momentalne ma analogicku podporu featur (+ dalsie ako rest), s vacsim rozsirenim v projektoch a lepsou dokumentaciou a komunitou, nehovoriac o tom, ze je to integralna sucast springu

co sledujem blogy, tak sucasna dilema je ci spring mvc alebo jsf2 alebo wicket. springmvc je dobry na jednoduchsie ui a rest api, jsf2 je zase rana istoty, s obcasnym zapasom v niektorych veciach; wicket je zase narocny na naucenie, ale zvlada s eleganciou hyperkomplexne UI a situacie, kde su predosle dva frameworky sialenstvom.

Natix

Re:Java framework pro WEB GUI
« Odpověď #13 kdy: 24. 05. 2013, 23:56:35 »
Ahoj martine,
pokud zacinas s Webem v kombinaci s Javou, myslim, ze nejlepsi je zacit necim vlastnim a pěkně od píky. U toho pochopis vsechny souvislosti, ktere vsechny frameworky nejakym zpusobem poskytuji a řeší.

Podle meho nazoru pokud budes k necemu inklinovat bez zakladnich znalosti, budes delat zbytecne kroky a odradi te to. Pokud nejprve zvládneš základy, budeš se hned lépe orientovat v dokumentacích a snáz v ní budeš hledat, protože budeš znát terminologii i co přesně hledáš.

Zkus nastudovat a projit nasledujici material, ktery te provede zaklady a navrhne dobry zaklad webového MVC. Myslím, že jako start je to výborný materiál.
http://www.nplus1.net/java_web_programming.pdf

Přeji ti hodně štěstí.

Kristova noho, to jsou fakt rady tohle... Aby si místo Tomcatu napsal od píky i vlastní webový server, aby "pochopil všechny souvislosti", mu náhodou taky neporadíš?  :o

flv

Re:Java framework pro WEB GUI
« Odpověď #14 kdy: 25. 05. 2013, 00:32:12 »
Uprimne receno, jestli jsi technologicky vyhodnotil JSF jako svuj framework tak vrele doporucuji jej nahradit Wicketem.

Oba jsou komponentove, nicmene Wicket je mnohem "cistsi" ve smyslu vic OOP friendly. Wicket te bude prirozene vest k vytvareni re-use (zakladni duvod existence OOP) komponent. Temer vse (od nejmensich komponent jako "html link" nebo "html label" ) je ve Wicketu objekt. Svoje vlastni komponenty budes vytvaret casto a rad, tva aplikace bude prehledna, udrzovatelna, snadno rozsiritelna (vsechno vychazi z one OOP friendly filosofie).