Newsgroup: it.comp.java
Titolo: Wicket Framework

Qualcuno lo usa? impressioni? Wicket vs JSF? Per me l'impatto e' stato 
tremendo ma credo che ne valga la pena...

 tremendo ma credo che ne valga la pena...
Io mi sono trovato molto bene, ma mi sento di dover fare delle
precisazioni:
= PRO =
1) *creazione di componenti*; una manna per chi sviluppa web app,
finalmente si può riutilizzare il codice con poco sforzo e soprattutto
senza doversi inventare chissà che; lo stile è molto *object-
oriented* :)
2) bisogna scrivere poco codice, giusto quello che serve;
3) per i motivi di cui sopra sono disponibili molte "estensioni", che
altro non sono che componenti aggiuntivi scritti da terzi;
4) è molto facile internazionalizzare la propria applicazione;
5) è abbastanza facile integrare AJAX e giochini simili;
6) bisogna scrivere pochissimi file di configurazione, quasi niente.
Pollice sù!!!
= CONTRO =
1) la documentazione è poca e lacunosa, per diversi motivi:
- il progetto è relativamente giovane;
- gli esempi sono molto chiari, e il 90% delle volte si capisce tutto
semplicemente leggendo il codice... Come spiegato sopra, il codice da
scrivere è poco :)
Quello che da più fastidio di questa faccenda della documentazione è
che Wicket ha un approccio "rivoluzionario" (e controverso) verso la
HttpSession, ma non ho trovato una documentazione chiara e organica
che ne spieghi una volta per tutte i meccanismi :(
2) si tende a scrivere molte classi anonime, in stile Swing. Beh, non
è obbligatorio, ma gli esempi ne sono farciti...
= CONCLUSIONI =
Io mi sono trovato molto bene, ma ho dieci anni di esperienza, ho
sviluppato sia sul web (con Servlet, Struts, Spring, chi più ne ha più
ne metta...) che lato client (AWT e Swing). Non so se me la sentirei
di consigliarlo ad un neofita, potrebbe fraintendere il funzionamento
dei servlet engine e delle web application in generale; per tutto il
resto pollice su e tanti applausi per la semplicità e la sintesi,
nonché la velocità di sviluppo e il riutilizzo del codice.
www.megadix.it

 scrivere č poco :)
LA DOCUMENTAZIONE!! ESATTO! Io sto impazzendo, e' incredibile. E' la 
documentazione peggio mantenuta che mi sia mai capitata davanti. 
Esistono 5 repliche diverse sello STESSO wiki, diviso per sezioni 
illogiche e con esempi e documentazione che si riferiscono a versioni 
del branch 2.0 che non e' piu' in sviluppo (sviluppano 1.3 in 
incubazione presso apache). Fino ad arrivare a cose puramente fastidiose 
come broken link o documentazione obsoleta (o community su IRC davvero 
antipatica). Ma tutti i PRO che hai citato li condivido quindi continuo, 
prima o poi, come e' successo con JSF, scattera' la molla magica che mi 
fara' avere una visione d'insieme piu' chiara. Al momento, la 
motivazione maggiore che mi spinge ad usarlo e' il modo NETTO in cui 
divide Markup da codice. Il markup E' davvero puro e semplice html. 
Niente piu' custom tag da gestire (e imparare!) e conflitti con gli id 
degli oggetti come con JSF, che si inventava dei nomi assurdi! Questa e' 
davvero una manna.
Riguardo all'approccio rivoluzionario che citi per l'HttpSession.. 
ovviamente nemmeno io ho trovato documentazione a riguardo, ma sai dirmi 
qualcosa di piu'? (ps sono anche _BEN ACCETTI_ link a tutorial o wiki 
che ritieni validi!)
Grazie
Ciao
Co


Ora come ora non ho in mano nulla, ti posso solo dire che *tutto* (o
quasi) finisce nella Session, è come se ogni utente avesse una specie
di "macchina virtuale" sulla quale gira la web application, che quindi
tende ad assomigliare ad un rich client. I vantaggi sono evidenti:
- lo sviluppo è molto più semplice rispetto ad una web application
classica;
- puoi dare per scontate alcune cose;
- programmi ad eventi;
- non devi sincronizzare a mano parametri HTTP e form;
- ...
Gli svantaggi sono altrettanto evidenti:
- pesante utilizzo della memoria del server;
- se le sessioni sono replicate in un cluster si genera un grandissimo
traffico per ogni http request, in quanto la sessione viene
continuamente sincronizzata.
Comunque gli sviluppatori di Wicket stati molto furbi nel prevedere
questi problemi, tanto che l'architettura del framework permette un
controllo fine della sessione e dei meccanismi di serializzazione.
www.megadix.it

per JSF girano decentemente solo con esso.
Purtroppo gran parte delle lamentele riguardanti JSF, al giorno d'oggi 
sarebbero (a mio avviso)   in realta'  da rivolgere all'implementazione di 
Apache: MyFaces.
Se siete rimasti delusi da quest'ultima, provate l'ultima implementazione 
della sun,
abbinata a Facelets ovviamente. Essa presenta veramente pochi bug e inoltre 
e' una specifica piu' avanti di MyFaces (infatti hanno avuto il tempo di 
eliminare molto problematiche).
https://javaserverfaces.dev.java.net/
 

 eliminare molto problematiche).
Beh ma non e' che ne sono rimasto deluso, anzi per niente... solo 
qualcosa di un po piu' semplice, ecco sarebbe stato meglio. E semplice 
non perche sia difficile da imparare, semplice nel senso di meno 
complesso. Facelets, ne ho sentito parlare ma non conosco, corro subito 
a vedere grazie per la dritta!!
Co


Beh allora e' normale. Senza Facelets in effetti e' un po' rognoso.
Cmq rispetto ad altri framework ha un grande vantaggio: la moltitudine di 
componenti e framework o sottoframework creati al di sopra di esso.
Credo che nessun altro, Wicket, Tapestry ecc, possano competere con JSF 
riguardo a questo, e mi sembra un aspetto importante.
E cio' e' accaduto non solo perche' e' uno standard JEE5, ma soprattutto 
perche' e' stato disegnato tenendo in grandissima considerazione l'aspetto 
dell'estensibilita'.

 dell'estensibilita'.
Avevo letto che JSF era stato creato proprio per quello, cioe' per 
essere prima di tutto una base per framework ed essere facilmente 
digeribile da tools e IDE. Ho dato un'occhiata a Facelets, eh gia, e' 
proprio quello che mi serve! Giusto in tempo, perche stavo gia iniziando 
a bestemmiare pure dietro Wicket. Davvero elegante la divisione che 
compie tra markup e codice, ma santiddio, la complessita dei suoi 
renderer, model, dataprovider, binding, converter (le cui impostazioni 
di default sono, a mio parere, semplicemente illogiche) e' troppa. Senza 
contare che non supporta Resource Injection!!! [con un modulo in 
wicket-stuff, scritto da un italiano per altro, si possono far andare 
@EJB e @PersistenceUnit, ma si appoggia ai jar di Spring che preferirei 
non vedermi tra i piedi!] Come al solito... 10000k frameworks e non uno 
che copra il 100% di cui uno ha bisogno... meglio farci l'abitudine... :(

 copra il 100% di cui uno ha bisogno... meglio farci l'abitudine... :(
Qui sfondi una porta aperta.
Probabilmente il piu' potente framework in circolazione al momento e' 
fortemente basato su questo concetto: esso e' Seam (
http://www.jboss.com/products/seam
).
Dacci un occhio, sapendo che serve a integrare EJB3 all'inteno di JSF, e 
propone un modello di programmazione piuttosto rivoluzionario e potente.
In sostanza accoppiando JSF Facelets Seam ottieni un qualcosa di molto 
potente. In piu' hai una miriade di librerie a componenti di supporto per 
Ajax e non. 

 
Sicuramente e' nella lista dei "guardateli appena hai un po di tempo"!!! 
Mi sto guardando un po meglio facelets e appena avro un po ingranato 
iniziero con l'esplorazione di seam. A proposito scusa se ne approfitto, 
mi sai dire se e' un framework strettamente legato a JBoss, o e' in 
grado di funzionare, ad esempio, con glassfish?
Grazie
Corrado


dovrebbe funzionare, c'e' anche un esempio.