Červen 18th, 2008Je čas na Apache Wicket?
Záznam diskuze: L: Ahoj Franto, mám menší problém. F: Jaký Lumíre? L: Nevím, který webový framework pro javu je nejlepší. F: No to je jednoduché. Vyzkoušej těch 40 nejznámenjších a pak se rozhodni. L: Hmm… :( Konec.
Ať již člověk navštíví jakoukoli homepage webového frameworku, dočte se, že zvolil dobře. Nejlepší možné řešení, vše jednoduché, perfektně rozšířitelné a v porovnání s ostatními je proste „Number ONE“.
Sám jsem již dávno rezignoval na hledání zlaté žíly v podobě nejlepšího řešení. Volbu by mělo ovlivňovat to, jakou architekturu dané aplikace plánuji či jakým backendem aplikce disponuji. I když jsou snad všechny možné kombinace možné (Seam + Spring, Seam + EJB, Wicket + Spring, …, ne vždy je volba zrovna šťasná. Pokud do hry vložím další možnosti jako volání část aplikace jiným způsobem (např. remote EJB), dostávám již užší skupinu možností.
Z této skupiny, která se vyznačuje volnou vazbou na business logiku, snadnou rozšířitelností a možností souběžného běhu s jiným web kontextem mi zatím nejlépe vychází Apache Wicket.
Ano já vím, stále existuje lepší … nebo ještě lepší … a vlastně úplně nejlepší ...... Ale já nemám čas ani náladu zkoumat další desítku možností. Stačí mi ta první desítka :)
Proč Apache Wicket?- volná vazba na business logiku
- žádné xml
- žádné anotace, které z POJOs dělají komponenty použitelné pouze v daném kontextu
- téměř čisté html
- vše je psané v jave, takže refactoring je mnohem snažší záležitost
- dané komponenty si pamatují předchozí stav, takže tlačítko zpět již nemusí být noční můrou
- menší zátěž pro server oproti JSF či Seamu
- psaní aplikace je velmi blízké psaní swingových aplikací
- dostatek komponent + snadné psaní znovupoužitelných komponent
- při psaní se skutečně využívá objektově orientovaných principů
- pro běh není třeba žádného speciálního kontextu (běží stejne v Tomcatu jako v AS)
- daná aplikace je snadno přenositelná na jakýkoli jiný web kontejner
Co se týče záporů, ty si budu muset nechat na pozdější dobu. Zatím jsem jen nezávislým pozorovatelem daného web frameworku. Každopádně jsem pevně rozhodnut toto řešení použít i za cenu složitejší spolupráce s EJB modulem a částí aplikace napsané v Seamu.
Takže mám 2 favority. Seam a Apache Wicket. Každý z nich přistupuje k cíli jiným způsobem a každý z nich se rozhodně hodí pro jiný typ aplikací. Až si Apache Wicket více osahám pokusím se obě řešení více porovnat a přesněji zjistit, pro jaký typ aplikací se dané frameworky hodí.
Červen 18th, 2008 at 20.41
Ja jsem fanda deklarativniho psani nejakym markupem (v posledni dobe jsem narazil napr. na Javeline.com) a zaroven nejsem moc fanda stavovych frameworku… Proto mi Wicket dost nesedel. Sablony jsou sice hezky ciste male HTML soubory, ale toho Java kodu potom… Pripadlo mi to vsechno strasne neohrabane a u slozitejsich UI s komplexnim chovanim (napr. online AJAXovy klon filesystem pruzkumnika) znacne neprehledne.
Neni to poprve, co se o tom nekde zminuji, ale ja nedam dopustit na Stripes :) Zadny framework me ani vzdalene nechytil za srdce jako tenhle.
Červen 18th, 2008 at 21.04
Dneska jsem prave na Wicket koukal a chtel jsem napsat do diskuse na jave jestli ma nekdo s tim prakticke zkusenosti ze to vypada jako zajimavy framework. Taky vyzkousim a taky uvidim
Červen 18th, 2008 at 22.53
Taky mám rád Wicket, z komponentových frameworků se mi líbí zdaleka nejvíc (JSF je pruda po všech stránkách a Tapestry mi přijdou velice rigidní, oproti pragmatickému Wicketu).
V requestově orientovaných frameworcích zatím nemám úplně jasno, Strutsy nepřipadají v úvahu ani náhodou, Spring Web MVC znám velmi dobře a od verze 2.5 vypadá docela modernizovaně, ale výše zmiňované Stripes taky nevypadají špatně.
Červen 18th, 2008 at 23.15
Robil som vo Wickete jeden miniprojekt a ma to celkom zaujimavu filozofiu. Uz pol roka sa snazim napisat maly serial, ale nejak na to nie je cas.
Je pravda, ze Wicket ma trochu zlozitejsiu learning curve, ale mne sa to napriek tomu dost pacilo.
Ten Java kod – ano, casto sa stava, ze vnorena trieda je vo vnorenej triede, vo vnorenej triede – ale dobrym oddelovanim komponentov do samostatnych tried sa tomu da predist.
Červen 19th, 2008 at 9.15
Ve Wicketu se daji psat aplikace velice snadno, tim snaze, cim vic ma clovek zkusenost se Swingem. Mne na nem vyhovovala jednoduchost markupu a prave implementace jen v Jave, nehlede na snadne debugovani.
Vsechny jeho standartni komponenty se daji snadno rozsirit (prevazne anonymnimi tridami), poskytuje prostor pro jednoduche lokalizace, bezpecnost (integrace treba s Acegi), spousta AJAX komponent…
Byl jsem spokojeny.
Červen 19th, 2008 at 9.16
Ten začátek článku úplně sedí – je toho až moc :). Zkoušel jsem toho celkem dost – WingS, Echo2, JSP, malinkato JSF, koukám teď také na wicket.
Když mám udělat něco sám, tak není problém se naučit cokoliv nového, vyzkoušet si to. Problém ovšem je pak, když na projektu dělá více interních nebo externích lidí, když se vytváří produkt, který se bude muset pár let udržovat. A zde mi přijde, že jednoznačně vede JSF. Proč? Je to standard, je o dost větší pravděpodobnost sehnat člověka na JSF než na wicket a takto bych mohl pokračovat. Já nejsem fanda JSF, ale toto je prostě fakt :(.
Takže teď zrovna (bohužel) zase dělám v JSF…
Červen 19th, 2008 at 9.19
to Robert Novotny: Co se tyce pochopeni funkcnosti a samotne uceni, tak me zatim prislo, ze to neni tak hrozne. Navic kdyz clovek trochu zna Swing, usnadni mu to praci.
Jinak, serial by se hodil. Informaci o Wicketu tolik neni. Dost mi zde schazi referencni prirucka, jako ma napr. Seam. Zde jsou informace tak rozstristene, ze hledani reseni je docela opruz :(
Červen 19th, 2008 at 10.00
Existuji kniha Pro Wicket od APressu, z te se da dost pochopit. Jinak kazdym dnem vyjde Wicket in Action od Manningu.
Červen 19th, 2008 at 10.42
Ano, je to mozne, ze ked clovek robi so Swingom, tak uz ovlada modely, co je dost zakladna cast. Osobne som mal dlho problem s takymi vecami, ako kedy ktory model pouzit, aby to nielen fungovalo, ale bolo to aj „efektivne“ (LoadableDetachableModely a podobne).
Referencnou priruckou by mal byt myticky Wicket in Action, ktory hadam uz bude tento rok vydany. Problem s nim bol ten, ze Eelco Hillenius ju musel asi dvakrat prepisovat – kedze cela verzia 2.0 bola zahodena, potom sa debatilo o podpore Javy 1.5, potom prisla 1.3ka… Ale hadam sa dockame.
Chvalabohu je aspon mailing list vyborny.
Červen 19th, 2008 at 11.07
Napsali jsme v tom stredne velky projekt, na jehoz zacatku jsme se take rozhodovali, ktery FW zvolit. Myslim, ze ted rozhodne nelitujeme, ze jsme vybrali Wicket, z duvodu uvedenych v clanku. Ve spojeni s hibernate velmi pouzitelne. Doporucuju.
Červen 19th, 2008 at 11.39
To by me docela zajimalo. Zda je Wicket vhodny pro vetsi aplikace. Tedy zadne jednorazove akce. Pocitam, ze dalsich X let budu delat na tom samem :)
Červen 19th, 2008 at 21.54
Mam pocit, ze sa treba skor pytat konkretnejsie. Odpoved na otazku, ci je Wicket vhodny pre vacsie aplikacie je rovnaka ako odpoved na otazku, ci je vhodny – ja neviem – Spring MVC alebo JSF.
Vyhoda Wicketu je skutocne v pripade, ze sa pouzivaju komplexne pouzivatelske rozhrania.
Viem, ze vacsina protestov smerovala proti stavovosti a proti tomu, ze stav komponentov sa udrziaval v HTTP session. Vysvetlenie bola taka, ze v pripade komplexnych pouzivatelskych rozhrani si uzivatelia zavadzali vlastne sposoby udrziavania stavu v HTTP session, ktore nemuseli byt efektivne.
Okrem toho od verzie 1.3 su uz k dispozicii alternativne uloziska pre ukladanie stavu – popri HTTP sessne napr. v externom subore na serverovskej strane (aby sa usetrila pamat)
Červen 20th, 2008 at 0.48
Vynikající jsou Stripes. Dají se naučit velice rychle (vyzkoušeno na více lidech) a je to opravdu od počátku navržené a vedené s hlavním cílem, aby se to příjemně a efektivně používalo, a také samozřejmě testovalo a integrovalo de facto s čímkoli. Navíc si autoři dali práci s přehlednou dokumentací a dobrými examples a opravdu se drželi principu KISS. Struts2 je pravý opak, moc nedoporučuji… Spring MVC je mj. „malinko“ složitější na naučení pro běžného vývojáře – pravda, dobrá znalost základního Springu a nějakého jiného MVC frameworku pomůže. JSF je sice „standard“, ale má několik lišících se implementací (není JSF jako JSF) a spoustu chytáků a raději během pár dní naučím (de facto jakéhokoli) Java web developera na Stripes, než hledat dobrého JSFkaře s podle mě trochu nejistým výsledkem. Wicket je pro spoustu lidí hůře pochopitelný a i ti bystří se ho učí rozhodně nezanedbatelně dlouho. Takže aby se vyplatil Wicket, musí být potenciál pro velký reuse komponent – je to komponentový framework, na rozdíl od velké trojky Struts2+Spring MVC+Stripes – a musím mít v plánu napsat buď větší nebo složitější aplikaci, kde se bude často vyskytovat konstrukce typu UI komponenta vnořená v UI komponentě vnořená v UI komponentě – prostě nějaká hierarchie UI objektů, které by byl opruz řešit v klasickém MVC frameworku. Objektová orientace a tedy i zapouzdření a to, že se objekt stará sám o sebe (za pomoci Wicketu) se podle mě u takových aplikací vyplatí – přestože to vyžaduje počáteční investici.
Červen 20th, 2008 at 10.58
Právě dokončuji jeden spíše menší projekt ve Wicketu. Naproprosto fantastický byl deployment na Tomcat a vzápětí na Glassfish bez jakýchkoliv problémů s funkcionalitou aplikace. To byl pro mě prostě šokující zážitek.
Stručný popis: JDK 6.0 + NetBeans 6.1 + Wicket plug-in 1.3.3 + Tomcat 6.0 & Glassfish + PostgreSQL 8.3
Aplikace dělá v podstatě datamining statistických údajů z tabulek o několika milionech záznamů na základě měnících se vstupních parametrů.
Je to můj první projekt ve Wicket. Je pravda, že na začátku je třeba se více učit, ale existuje už spousta praktických příkladů a tutoriálů.
Z čeho jsem čerpal nejvíc:
http://www.netbeans.org/…-wicket.html
http://wicketstuff.org/wicket13/
http://www.nabble.com/ – diskusní fóra o Wicket
Červen 22nd, 2008 at 18.25
Ja som sice zatial v Wickete neprogramoval ale co som si ho pozeral vypadal velmi pekne. Jeho filozofia je podobna ako pri ASP.NETe a preto sa mi zda lepsi nez je JSF, ktory nepovazujem za dokonceny produkt a v ktorom vyvijat je niekedy utrpenie.
Leden 8th, 2012 at 0.50
Hi…
http://www.webcamgirls4.com/…