Newsgroup: it.comp.java
Titolo: Struts e Hibernate

Ciao a tutti, ho un po di esperienza con J2EE e mi adopero da tempo nello
sviluppo di webapplication in Java (JSP/Servlet/Bean).
Da poco tempo, dopo aver terminato un grosso progetto (iniziato 3 anni fa),
mi sto dedicando allo studio delle diverse tecnologie (Framework, pattern
etc) nate negli ultimi anni (nei quali causa mancanza di tempo, non ho
potuto aggiornarmi come dovuto).
Noto con piacere che i programmatori della comunità aumentano e che, al
giorno d'oggi molti degli strumenti sviluppati su misura e utilizzati a
tempo debito sono oggi disponibili in modalità "open" sottoforma di
framework, pool, classi etc.
Ora, volendo aggiornarmi, mi chiedo se per "iniziare" a mangiare nuovamente
java (come si deve) posso iniziare dallo studiarmi il funzionamento di
Struts (uno dei framework piu diffusi?) e Hibernate (che mi sembra stia
soppiantando J2EE inteso come EJB).
Se è cosi, avete qualche risorsa da consigliarmi per velocizzare
l'apprendimento? Diciamo che la documentazione tecnica me la sono gia letta
tutta, quindi mi manca la pratica. Esempi di codice, file xml di
configurazione etc. sarebbero i benvenuti.
Grazie a tutti x l'attenzione.
Un saluto
  Mad

 configurazione etc. sarebbero i benvenuti.
Mah, guarda. In entrambi i casi, ci sono fior di testi da leggere e poi 
si tratta di buttare giù codice.
Hibernate lo trovo potente ma allo stesso tempo macchinoso appena ci si 
distacca dal caso ideale. Tant'è che ho preferito non adottarlo e 
scrivermi un idea di modello per conto mio.
Struts lo conosco relativamente poco.

 soppiantando J2EE inteso come EJB).
Ciao
per quanto riguarda Hibernate, ma anche per qualunque altro persistence 
layer, IMHO è questione di gusti e di "coraggio", nel senso che una 
volta che scegli una tecnologia te la devi portare dietro, aseconda del 
progetto, per anni. Ovviamente ci sono PL che sono meno "invasivi" nel 
codice rispetto ad altri (e su questi mi orienterei per scelte a lungo 
termine). BTW, in attesa di vedere se e cosa sarà integrato dentro il 
JDK nel prossimo futuro, mi attengo al beneamato JDBC e al pattern DAO, 
che a mio modo di vedere costituiscono ancora una scelta valida.
Riguardo al fatto che questa tecnologia possa rimpiazzare EJB, in molti 
casi questo già avviene anche senza Hibernate ogni qual volta si opta 
per un'architettura POJO (Plain Old Java Objects) rispetto ad una con 
Application Server, e nella mia piccola esperienza ciò avviene sempre 
più spesso.
Riguardo il presentation layer ho invece da mesi optato per JSF, sia 
perché ha uno standard di riferimento dentro il JDK, sia perché immagino 
che i tool del prossimo futuro (ma anche quelli attuali, vedi Java 
Studio Creator di Sun) che vogliano fornire una qualche forma di 
sviluppo RAD verso il web siano in qualche modo costretti ad 
utilizzarlo. E oltetutto è molto comodo, piacevole da usare e 
decisamente produttivo.
Ciao!
-- 
_ _ _  _  /_
  _ /_//_///_' ___
   / and yet it does move...


Solito insomma...è nel codice che si impazzisce ;-).
Mi sai dicendo in pratica di evitare, o meglio che tu eviti, l'utilizzo
delle due "strutture" a favore di soluzioni ad-hoc?
Sono molto combattuto su queste soluzioni preconfezionate, perchè secondo me
su progetti come quelli che si realizzano in italia, si rischia di
complicare tantissimo le strutture per compiere poi cose molto semplici.
In pratica mi sembrano due soluzioni ottime, ma complesse e "pesanti", il
tutto per avere poco, o sbaglio?
Mad

 delle due "strutture" a favore di soluzioni ad-hoc?
Beh, non mi sognerei di dire che sono da evitare :-) Come ti dicevo, 
personalmente trovo hibernate troppo vincolante e invasivo sui progetti 
dove ho lavorato, tanto da non dare nessun vantaggio rispetto 
all'implementazione di un DAO.
Per quanto riguarda struts non mi pronuncio più di tanto, ma non credo 
sia il miglior "investimento" per un progetto nuovo.

> delle due "strutture" a favore di soluzioni ad-hoc?
Io ho usato entrambi (Hibernate e Struts) per la prima volta nel mio 
progetto (un sito di medie piccole dimensioni).
Per quanto riguarda Struts mi sono trovato molto bene rispetto alle solite 
jsp e servlet, inoltre sebbene sembri complicato ti pastano pochi giorni 
forse una settimana per cominciare a progredire molto velocemente nel 
lavoro.
Per quanto riguarda Hibernate invece devo dire che non è affatto semplice, e 
una misera settimana di prove non ti basta per poterlo padroneggiare 
decentemente. Alla fine però mi sono trovato molto bene anche con hibernate, 
e non ho nessuna intenzione di ritornare a JDBC.
Inoltre hibernate non è affatto invasivo, puoi sempre tornare indietro se ti 
vedi in un mare di guai.
Se usi i DAO e vuoi tornare a JDBC ti basterà riempire cambiare il codice in 
quelle classi, ovvero riempirle di una marea di SQL (che miracolosamente 
Hibernate ti evita di scrivere).

Hibernate necessita senza dubbio di un po' di tempo per essere padroneggiato, 
ma l'investimento viene ripagato, specialmente se col tempo ne approfondisci 
tutte le potenzialità. Si può partire con un approccio base per poi usare le 
altre features quando ci si sente pronti.
Per quanto riguarda Struts devo dire che sto trovando molto più interessante
Spring ( 
http://www.springframework.org
 ). Anche in questo caso vale lo stesso
discorso fatto per Hibernate. E' infatti un framework molto più complesso di 
Struts, ma è anche più completo e flessibile. Inoltre, combinato con Hibernate,
porta ad una riduzione di codice notevole!
Ciao
Vincenzo Caselli
http://www.censnet.it
in...@censnet.it

 tutto per avere poco, o sbaglio?
In che senso avere poco?
Ciao.