Newsgroup: it.comp.java
Titolo: Velocity - Turbine - Jakarta Struts

Salve a tutto il nwsgroup,
a cosa servono i 3 framework che ho citato nell'oggetto?
grazie


andare sul sito di Apache e leggere?
Fare una ricerca ad es. con Google e cercare le pagine in italiano, no?
Se invece le hai lette e nonostante ciň non hai compreso la diff., basta 
dirlo, che č un'altra faccenda sulla quale č piů che corretto aiutarti, 
per la cultura comune di tutti i frequentatori del newsgroup.
Carlo

 Se invece le hai lette e nonostante ciň non hai compreso la diff., basta
non ho compreso bene la diff.....
non ho capito se devo usare velocity e turbine insieme o posso usarli
separatamente...
non ho capito qual č il prodotto + maturo....
va bene cosě? sono stata corretta?

> non ho capito qual è il prodotto + maturo....
Struts
cya Nicola
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/





 
OK!
  What is Velocity?
     Velocity is a Java-based template engine. It permits web page 
designers to reference methods defined in Java code. Web designers can 
work in parallel with Java programmers to develop web sites according to 
the Model-View-Controller (MVC) model, meaning that web page designers 
can focus solely on creating a well-designed site, and programmers can 
focus solely on writing top-notch code. Velocity separates Java code 
from the web pages, making the web site more maintainable over the long 
run and providing a viable alternative to Java Server Pages (JSPs) or PHP.
     Velocity can be used to generate web pages, SQL, PostScript and 
other output from templates. It can be used either as a standalone 
utility for generating source code and reports, or as an integrated 
component of other systems. When complete, Velocity will provide 
template services for the Turbine web application framework. 
Velocity+Turbine will provide a template service that will allow web 
applications  to be developed according to a true MVC model.
  What is Turbine?
  Turbine is a servlet based framework that allows experienced Java 
developers to quickly build web applications. Turbine allows you to use 
personalize the web sites and to use user logins to restrict access to 
parts of your application.
Turbine is a matured and well established framework that is used as the 
base of many other projects (like e.g. the excellent Jetspeed 1 Portals 
framework.
Turbine is an excellent choice for developing applications that make use 
of a services-oriented architecture. Some of the functionality provided 
with Turbine includes a security management system, a scheduling 
service, XML-defined form validation server, and an XML-RPC service for 
web services. It is a simple task to create new services particular to 
your application.
The Turbine core is free of any dependency on a presentation layer 
technology. Both JavaServer Pages (JSP) and Velocity are supported 
inside Turbine. For developers already familiar with JSP, or have 
existing JSP tag libraries, Turbine offers support for the Sun standard. 
Velocity is the favorite view technology of most users of the Turbine 
framework; try it out and see if Velocity can help you develop your web 
applications faster and work more easily with non-programming designers.
le parole chiave:
Velocity: alternative to Java Server Pages (JSPs)
per lo sviluppo "rapido" delle view (nel paradigma model-view-controller)
Turbine: web application framework. Ovvero "come creare velocemente una 
web app", controllo di sicurezza incluso, senza reinventare la ruota.
attenzione:
Q: What are Fulcrum and Torque?
A: In Turbine 2.1, the code for all of the services (such as Intake, 
Velocity, Database, Logging, etc) were tightly coupled to Turbine. In 
order to allow this code to be reused in other projects Torque and 
Fulcrum were created. They are both still considered to be under the 
Turbine umbrella.
Torque is the database access layer. Turbine 2.2 uses this new decoupled 
version. More information on Torque can be found on the [Torque project 
page].
Fulcrum contains all of the decoupled service code. Turbine 2.2 still 
uses the coupled services although you can switch to the Fulcrum version 
for some services. Fulcrum does not have a released version. It is 
suggested that you do not use the Fulcrum services at this time. More 
information can be found on the [Fulcrum project page].
Cioè: sposi un framework e poi ne sei "condizionato". Quindi è abbasta 
difficile scrivere servizi standard che possono essere riutilizzati (in 
genere non è un problema reale, fatta la scelta si prosegue su quella 
strada). Torque e Fulcrum sono due "soluzioni" per poter più facilmente 
slegarsi da Turbine.
Struts: utilizzato anche da weblogic portal! è oramai uno standard per 
chi vuole scrivere un sistema web-based. A dir la verità, avendo 
carattere generale è un pò macchinoso (ma dipende cosa devi fare).
Io ad esempio non l'ho utilizzato e per un'applicazione j2ee (di 2 anni 
fa) relativamente complessa, ho scritto da scratch il sistema mvc con le 
view (jsp) e il controller e i connettori verso sistemi ext. 
(tuxedo/jolt) e ejb. e comunque un buon esempio per capire "perchè 
dovrei usare Struts" è ad esempio il Pet store example della Sun 
(esempio di e-commerce).
  Welcome to Struts! The goal of this project is to provide an open 
source framework for building Java web applications.
The core of the Struts framework is a flexible control layer based on 
standard technologies like Java Servlets, JavaBeans, ResourceBundles, 
and XML, as well as various Jakarta Commons packages. Struts encourages 
application architectures based on the Model 2 approach, a variation of 
the classic Model-View-Controller (MVC) design paradigm.
Come vedi Struts e Turbine sono entrambi dei framework per costruire 
delle applicazioni web. L'utilizzo è aletrnativo. Per quanto riguarda
i pro e contro, se cerchi Turbine vs. Struts, vedrai ch ec'è abbastanza 
confusione in merito. Cqm direi ch eTurbine meglio integra Velocity e 
altri framework "speciaizzati" specialmente se sotto il cappello "APACHE".
Spero di aver chiarito parte dei tuoi dubbi.
Carlo

> Spero di aver chiarito parte dei tuoi dubbi.
ROTFL
secondo me ora ne ha il doppio.
comunque buona sintesi, a parte il confronto fra Struts e Tuxedo
ciao


 Carlo
In compenso li hai chiariti a me :-)
Grazie
-- 
Ciao
Fabio


Ciao,
non ho confrontato Tuxedo (tp monitor) e Struts (java framework)!
Ho solo detto che sul progetto pe ril quale ho lavorato usavamo anche un 
connettore verso un sistema legacy (BEA Tuxedo), attraverso API Jolt. 
Quindi ho tentato di esemplificare il fatto che invece di usare Struts 
(che pur avrei potuto usare configurandolo opportunamente) me lo sono 
scritto (non da solo, ovviamente) da zero.
La parte forse interessante è il perchè di questa scelta:
non ci "fidavamo" di un framework sul quale non avevamo "Voglia" di 
spulciare tutto il codice a fronte di problemi/implementazioni future.
Questo perchè era (è) un prodotto di core business critico per l'azienda.
CArlo

 a cosa servono i 3 framework che ho citato nell'oggetto?
In realtà velocity non fa parte dello stesso "spazio applicativo". Turbine e
Struts sono due "web framework", ovvero infrastrutture architetturali che
offrono alcuni strumenti e standard di costruzione dei componenti che
semplificano il lavoro di chi costruisce applicazioni web. Turbine ha uno
scopo un po' più ambizioso di struts, perché si prefigge l'obiettivo di
essere anche un "framework di servizi", ovvero uno strumento che faccia da
collante tra diversi componenti software e offra alcuni servizi predefiniti
(tra cui uno di autenticazione).
Velocity invece è un "sistema di templating", cioè un linguaggio per
generare dell'output a partire da dei template: un misto di file di testo e
istruzioni di controllo. Un po' come le JSP: in effetti Velocity "compete"
con le JSP e con alcuni progetti simili, tra cui il mio preferito, che è
freemarker (ma ce ne sono vari altri, tra cui webmacro, in una certa misura
tapestry, ecc.).
Io ho usato in maniera abbastanza estesa sia Turbine (allora alla versione
2.1) sia Struts, e benché la mia preferenza vada assolutamente verso Turbine
(è molto meglio architettato, a mio parere), ti consiglio di... non usare
nessuno dei due! Attualmente entrambi sono stati largamente superati da una
varietà di altri progetti che neppure ti sto a nominare perché ti
confonderei le idee e basta. La verità è che se ti vuoi chiarire le idee su
cosa offra il framework migliore tra quelli che competono con Struts e
Turbine, la cosa migliore che puoi fare è andare a studiarti come funziona
lo spring framework (
http://www.springframework.org
). Tra l'altro spring si
può usare anche in accoppiata a struts per ottenere un risultato che abbia
le stesse ambizioni di Turbine, ma in maniera molto, molto, molto più
intelligente.
Spring tra l'altro è in grandissima ascesa, ultimamente: se leggi in
inglese, sono usciti una pletora di libri che ne parlano, tra cui quello dei
due autori principali, Rod Johnson e Juergen Hoeller (che si chiama qualcosa
come "expert one on one - enterprise java without EJB").
In sostanza cosa puoi fare con spring?
1) ti dà un sistema molto flessibile con cui puoi configurare le tue
applicazioni, organizzarle in componenti che interagiscono e dipendono l'uno
dall'altro secondo il pattern dell'"inversione di controllo".
2) offre una serie di servizi standard con cui semplificare la
programmazione di compiti comuni su applicazioni web: sicurezza, accesso ai
database, interazione con librerie esterne di vario tipo (object-relational
mapping, templating, mail, generazione pdf, xsl, ecc.)
3) offre uno strumento per la programmazione di web application secondo il
paradigma "model view controller" (in sostanza è un modo per separare il
codice java da quello delle jsp), ed è comunque integrato - utilizzabile con
i principali framework web (come struts, webwork, tapestry, ecc.)
4) offre alcune funzionalità precedentemente disponibili solo a chi
utilizzasse enterprise javabeans (come transazioni o sicurezza dichiarative)
5) offre alcuni strumenti per la programmazione aspect-oriented
6) chi più ne ha più ne metta.

> 6) chi più ne ha più ne metta.
Premetto che non conosco spring.
Un pattern o un framework o un modo di lavorare puo' o meno di ventare uno
standard o quasi.
Struts ormai lo e'. Negli ultimi 2 lavori su 3 c'era e non ce lo ho messo
io.
Che non sia il migliore e che sia "superato" e' normale. Se segui
l'informatica mentre si e' in Beta con qualcosa e' gia' superata.
MVC e' una modo di modellare e concettualizzare i Problems che risale agli
anni '70, e sulla piattaforma sun si realizza tramite struts di solito.
Se non usi la libreria di Tag, cosa che fra l'altro siamo in molti a
suggerire, si tratta solo di organizzare i layer delle tue applicazioni su
livelli logici.
La cosa e' molto sensata e naturale e qualsiasi framework alternativo sono
convinto che lo debba fare.
In sintesi non esiste un unico mezzo per realizzare le proprie idee e i
propri lavori, se vuoi conoscere quello che oggi e' uno dei framework piu'
diffusi, stabili, commerciali, Struts e' quello che fa per te. Se cerchi
soluzioni di avanguardia, perche' hai grossa liberta' e vuoi lavorare sul
nuovo probabilmente cio' che ti suggerisce Immanuel e quindi Spring va
probabilmente benissimo.
Per quanto riguarda i servizi, la cosa diventa ancora piu' complessa
Non sono cosi' convinto che i servizi li debba fare il framework. Mi piaceva
e mi piace tutt'ora l'dea dell'Appserver o una entita' simile, al limite lo
stesso SO.
cya Nicola
