***** Articolo proveniente dal sito di Francesco Ficetola *****
Mi è capitato di leggere un pò di articoli interessanti su PrimeFaces, tecnologia JSF che si sta imponendo in modo esponenziale nello scenario delle tecnologie web lato presentation. Ho utilizzato il suo antagonista Rich Faces, ma devo dire che Prime mi ha colpito particolarmente per tutta una serie di motivi che spiegherò in questo post.
In generale, i pregi delle tecnologie Java Server Faces (JSF) si possono riassumere nei seguenti punti:
- rispetto del pattern architetturale Model-View-Controller (MVC), per separare la logica di presentazione dei dati da quella di business;
- supporto alla realizzazione di una Rich Internet Application (RIA), in grado di offrire una user experience tipica di una Desktop application;
- velocità nella presentazione dei dati e nella risposta alle interazioni utente, grazie al supporto asincrono AJAX di chiamata ai servizi e all’aggiornamento di porzioni di pagina (refresh parziale);
- dinamicità ed interattività delle componenti grafiche, con possibilità di interazioni utente complesse, come, ad esempio, drag&drop, ridimensionamento e trascinamento;
- facilità e velocità nello sviluppo dell’interfaccia utente, grazie al riuso di componenti già distribuite nel framework e alla semplicità nella loro customizzazione;
- accessibilità delle pagine web generate e supporto alla presentazione su dispositivi mobile;
- compatibilità con gli attuali web browser, ma anche supporto per quelli più datati.
Sulla base dei punti su riportati, ho provato il seguente set di tecnologie, tra loro compatibili, per lo sviluppo di un front-end di una Rich Internet Application:
- Prime Faces: implementazione dello standard Java Server Faces – JSF 2.2;
- JQuery/JQuery UI: framework javascript per la facile implementazione di componenti grafiche dinamiche ed interattive. Sono supportati nativamente da Prime Faces;
- HTML 5: nuovo linguaggio di markup per l’implementazione di pagine web (in corso di standardizzazione);
- CSS 3: evoluzione di CSS 2 per la definizione dello stile delle pagine web e della struttura dell’interfaccia utente.
Prime Faces è una implementazione dello standard “server-side” Java Server Faces (JSF 2.2). Fornisce un approccio “component-centric” per lo sviluppo di interfacce utente in tecnologia JEE, facilmente manutenibili, con modello di progettazione architetturale Model-View-Controller (MVC). Prime Faces permette di aggiungere funzionalità AJAX, sfruttandone le sue potenzialità come il meccanismo di chiamata asincrona a servizi, il refresh parziale delle pagine, le notifiche push, ecc. Esistono diverse implementazioni di JSF e le più diffuse sono le seguenti: Rich Faces, Ice Faces, MyFaces e Prime Faces. Quest’ultima sta riscontrando grande successo nella comunità di sviluppatori di front-end JEE, come si evidenzia dal seguente grafico di Google Trends:
Ecco i vantaggi che si traggono dall’utilizzo di Prime Faces:
- Ricca suite di componenti. Prime Faces offre una suite open source di componenti UI avanzate (widget) per l’integrazione di funzionalità Ajax in applicazioni RIA (Rich Internet Application). Esistono, ad esempio, componenti per la realizzazione di tabelle con funzionalità avanzate (ordinamento, filtraggio, drag&drop, ecc.), menù ad albero, finestre a comparsa, calendar, picklist, widget per il file upload multiplo e tante altre (vedi Prime Faces – ShowCase);
- Struttura multi-layout. Si può implementare in modo agevole una struttura multi-colonna con Prime Faces, utilizzando e customizzando i temi di cui dispone il framework e personalizzandone i fogli di stile, con l’utilizzo dei flexible box in CSS 3 (aree della pagina web con dimensioni flessibili).
- Navigazione dinamica tra le pagine e finestre multiple con sessioni separate di lavoro. Grazie a JSF è possibile definire in modo semplice la navigazione tra le pagine, sia in modo predefinito che attraverso logiche di business. Inoltre, attraverso la definizione di opportuni “scope” si può rendere possibile la lavorazione su finestre multiple del browser, ciascuna con una sessione separata di lavoro.
- Performance e supporto. Prime Faces è una libreria leggera e ciascuna componente in esso distribuito è piuttosto semplice da customizzare. Essendo una tecnologia piuttosto recente, è ottimizzata per il funzionamento sui browser di nuova generazione. Il grado di maturità delle componenti grafiche è alto, essendo il framework arrivato alla versione stabile 4.0. Inoltre, esistono una ricca documentazione e una attiva community online, per la risoluzione di comuni problematiche.
- Compatibilità con i web browser recenti. Prime Faces garantisce la compatibilità con i browser più recenti, come Internet Explorer 9+, Google Chrome 17+ e Firefox 13+. Si dichiara il supporto anche per browser meno recenti, come Internet Explorer 7/8, sui quali viene rispettata l’interattività delle componenti (non di tutte però!), ma non il “look-and-feel” (per cui occorrerà agire manualmente modificando i CSS).
- Notifiche push. Prime Faces consente di aggiungere funzionalità di push notification, utili per esempio per notificare cambiamenti di stato o aggiornamenti delle informazioni, in modo automatico ed asincrono, senza il refresh manuale delle pagine web.
- Predisposizione al mobile. Grazie all’utilizzo di JQuery Mobile, è possibile realizzare, con l’estensione Prime Faces Mobile, pagine web con un “look-and-feel” simile alle app native (come quelle per iOs o Android)
- Accessibilità e grafica responsive. Contrariamente ad altri framework AJAX-based, Prime Faces implementa le linee guida ARIA (Accessible Rich Internet Application) del W3C, garantendo per le componenti più comuni (tabelle, accordion, menù ad albero, componenti di input, …) la piena accessibilità. Inoltre, con l’ausilio di librerie Javascript (come BootStrap.js), è possibile realizzare con Prime Faces anche pagine in grafica “responsive”, ossia adattabile ai vari dispositivi (anche mobile).
- Supporto a HTML 5. La maggior parte delle nuove componenti di Prime Faces sono sviluppate con HTML 5. Comunque, lo standard JSF 2.2 dichiara la possibilità di integrazione con tag HTML 5, utile per inserire nuove feature nelle pagine web, come i tag semantici.
Altri riferimenti utili:
- PrimeFaces vs RichFaces vs IceFaces
- Google Trends
- JSF 2.2: HTML5 Support
- Java web Framework: JSF2 and HTML5 Server Sent Events
- Responsive design sample of JSF #PrimeFaces menu component
[JSF] PrimeFaces: una tecnologia di front-end che si sta imponendo nel mercato Enterprise by Francesco Ficetola is licensed under a Creative Commons Attribution 3.0 Unported License.
Based on a work at www.francescoficetola.it.
Permissions beyond the scope of this license may be available at http://www.francescoficetola.it/2013/12/16/jsf-primefaces-una-tecnologia-di-front-end-che-si-sta-imponendo-nel-mercato-enterprise/.
[JSF] PrimeFaces: una tecnologia di front-end che si sta imponendo nel mercato Enterprise by Francesco Ficetola is licensed under a Creative Commons Attribution 3.0 Unported License.
Based on a work at www.francescoficetola.it.
Permissions beyond the scope of this license may be available at http://www.francescoficetola.it/2013/12/16/jsf-primefaces-una-tecnologia-di-front-end-che-si-sta-imponendo-nel-mercato-enterprise/.
----------------------------------
PostLink: [JSF] PrimeFaces: una tecnologia di front-end che si sta imponendo nel mercato Enterprise
SitoWeb: Francesco Ficetola - Information Engineer & IT Specialist