Sono nuovo di StackExchange, ma ho pensato che saresti stato in grado di aiutarmi.
Stiamo implementando una nuova applicazione Java Enterprise, in sostituzione di una soluzione JSP legacy. A causa di molti molti cambiamenti, l'interfaccia utente e parti della logica aziendale saranno 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 serie preoccupazioni sul suo utilizzo.
Innanzitutto crea il peggior mix pseudo-HTML / CSS / JS non ammassato che io abbia mai visto. Viola ogni singola regola che ho appreso nello sviluppo web. Inoltre getta insieme, cosa mai dovrebbe essere così strettamente accoppiato: Layout, Design, Logic e Comunicazione con il server. Non vedo come sarei in grado di estendere questo output in modo constrongvole, sia con lo styling con CSS, aggiungendo caramelle UI (come tasti di scelta rapida configurabili, widget drag-and-drop) o qualsiasi altra cosa.
In secondo luogo, è troppo complicato. La sua complessità è eccezionale. Se me lo chiedi, è una scarsa astrazione delle tecnologie web di base, paralizzate e inutili alla fine. Quali benefici ho? Nessuno, se ci pensi. Centinaia di componenti? Vedo decine di migliaia di snippet HTML / CSS, decine di migliaia di snippet JavaScript e migliaia di plug-in jQuery in aggiunta. Risolve davvero molti problemi: non avremmo se non usassimo JSF. O il modello del controller anteriore.
E, infine, penso che dovremo ricominciare da capo, diciamo 2 anni. Non vedo come posso implementare tutto il nostro primo motto della GUI (Inoltre, non abbiamo esperti JSF nel nostro team). Forse potremmo hackerarlo insieme in qualche modo. E poi ci saranno di più. Sono sicuro che potremmo hackerare il nostro trucco. Ma ad un certo punto, saremo bloccati. A causa di tutto sopra il livello di servizio è in controllo di JSF. E dovremo ricominciare da capo.
Il mio suggerimento sarebbe 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, visto che stiamo sviluppando anche un front-end Android.
Dubito che JSF sia la soluzione migliore al giorno d'oggi. Poiché Internet si sta evolvendo, non vedo davvero perché dovremmo usare questo 'rake'.
Ora, quali sono i pro / contro? Come posso sottolineare il mio punto di non usare JSF? Quali sono i punti di forza per utilizzare JSF sul mio suggerimento?