Sono nuovo di StackExchange, ma ho pensato che saresti stato in grado di aiutarmi.
Stiamo creando una nuova applicazione Java Enterprise, in sostituzione di una soluzione JSP legacy. A causa di molti cambiamenti, l'interfaccia utente e parti della logica aziendale verranno completamente ripensate e reimplementate.
Il nostro primo pensiero è stato JSF, in quanto è lo standard in Java EE. All'inizio ho avuto una buona impressione. Ma ora sto cercando di implementare un prototipo funzionale e ho alcune preoccupazioni molto serie sull'uso.
Prima di tutto, crea il pseudo-HTML / CSS / JS invalido peggiore e ingombrante che abbia mai visto. Viola ogni singola regola che ho imparato nello sviluppo web. Inoltre mette insieme ciò che non dovrebbe mai essere così strettamente accoppiato: layout, progettazione, logica e comunicazione con il server. Non vedo come sarei in grado di estendere comodamente questo output, sia con lo stile con CSS, aggiungendo candy UI (come tasti di scelta rapida configurabili, widget drag-and-drop) o altro.
In secondo luogo, è troppo complicato. La sua complessità è eccezionale. Se me lo chiedi, è una cattiva astrazione delle tecnologie web di base, paralizzata e inutile alla fine. Quali vantaggi ho? Nessuno, se ci pensi. Centinaia di componenti? Vedo anche diecimila frammenti HTML / CSS, diecimila frammenti JavaScript e migliaia di plug-in jQuery. Risolve davvero molti problemi - non avremmo se non usassimo JSF. O lo schema del controller frontale.
E infine, penso che dovremo ricominciare da capo, diciamo 2 anni. Non vedo come posso implementare tutto il nostro primo mock-up della GUI (Inoltre, non abbiamo un esperto JSF nel nostro team). Forse potremmo hackerarlo insieme in qualche modo. E poi ce ne saranno altri. Sono sicuro che potremmo hackerare il nostro hack. Ma ad un certo punto, saremo bloccati. A causa di tutto quanto sopra il livello di servizio è in controllo di JSF. E dovremo ricominciare da capo.
Il mio suggerimento sarebbe quello di implementare un API REST, usando JAX-RS. Quindi creare un client HTML5 / Javascript con MVC lato client. (o qualche sapore di MVC ..) A proposito; avremo comunque bisogno dell'API REST, poiché stiamo sviluppando anche un front-end Android parziale.
Dubito che JSF sia la soluzione migliore al giorno d'oggi. Dato che Internet si sta evolvendo, non vedo davvero perché dovremmo usare questo "rake".
Ora, cosa sono i pro / contro? Come posso sottolineare il mio punto di non usare JSF? Quali sono i punti forti da usare JSF rispetto al mio suggerimento?