Domanda

Al momento sto lavorando su una web app che fa grande uso di JSF e IceFaces. Abbiamo avuto alcune discussioni di trasferirsi in un altro strato di presentazione, e ho pensato che mi piacerebbe prendere la discussione fuori in SO e vedere cosa pensano gli esperti.

Sono curioso di sapere se qualcuno potrebbe pesare sui pro ei contro delle varie tecnologie di strato di presentazione Java. Se avete lavorato solo con un, dire perché lo si ama o si odia. Se avete lavorato con diversi, date il vostro impressioni di come si accumulano contro l'altro.

Le nostre tecnologie in esame sono:

  • IceFaces
  • JSF (senza IceFaces)
  • GWT (Google Web Toolkit)
  • Wicket
  • Arazzo

E se mi manca qualcosa dalla mia lista, fatemelo sapere.

Grazie!

È stato utile?

Soluzione

Le mie opinioni sono abbastanza pesantemente sbilanciata verso Wicket perché ho usato per un po 'dopo inciampare su miniere JSP fin troppe volte.

Pro pedonali inserite:

  • La vera separazione del layout e codice.
  • Component based che significa elevata riusabilità di elementi del sito; Ad esempio è possibile creare la forma prettified con etichettatura e CSS stili automatici e tutto e solo cambiando E 'oggetto DAO nel costruttore del componente è completamente riutilizzabile in un altro progetto.
  • Ottimo supporto per cose come l'Ajax, portlet e vari quadri in generale direttamente out-of-the-box e più importante, non si basa su niente altro che slf4j / log4j al lavoro, tutto è facoltativo!

Svantaggi pedonali inserite:

  • Sviluppo ha una certa confusione circa le cose in generale e farmaci generici Wicket sono un po 'di confusione in questo momento, anche se che sono stati puliti molto in 1.4
  • Alcuni componenti (come Form.onSubmit()) richiedono una sottoclasse o metodo anonimo imperativa per l'iniezione di un comportamento facilmente. Ciò è in parte dovuto al design potente basata su eventi di Wicket ma purtroppo significa anche che è facile fare un pasticcio codice con Wicket.

Svantaggi a caso: (vale a dire, non ho usato, ma questi sono i miei opionions e / o cose che ho sentito)

  • GWT è JavaScript based che sembra stupido per me. Il problema principale è che mi ricorda troppo di JSP:. s e le sue classi generati automaticamente che sono orribili
  • Tapestry non lo fa markup e codice separato correttamente in un modo che potrebbe essere facilmente convalidato tra i due che causerà problemi in futuro.

Altri suggerimenti

Ho usato GWT per un paio di piccoli progetti. Qui ci sono alcune cose che mi piace a questo proposito:

  1. E 'Ajax di default, quindi non ho avuto a make è fare ajax, è appena arrivato insieme con l'utilizzo di GWT.
  2. E 'ottenuto una buona separazione dei client contro codice lato server.
  3. posso unit-testare il mio codice client utilizzando JUnit
  4. Lo lascia costruito nitide, applicazioni scattanti, in gran parte perché è Ajax.

Le cose che non mi piacciono:

  1. Alcune cose non funzionano come previsto. Ad esempio, ho visto casi in cui gli eventi click non è scattato come previsto, quindi ho dovuto fare una soluzione.
  2. Auto-distribuire a Tomcat in esecuzione in eclissi a volte solo smette di funzionare, e non potrei mai capire perché.

La più grande domanda mi piacerebbe chiedere è perché stai cambiando livello di presentazione? Questo è un costo molto costoso e posso vedere i benefici di una tecnologia di compensare gli altri da tanto quanto il costo per cambiare ...

In breve:

= JSF =

Pro:

  • architettura componente;
  • molte librerie e strumenti;
  • un po 'buon supporto IDE

CONS:

  • peso, sia nella CPU / memoria di e la curva di apprendimento;
  • quando qualcosa non funziona come previsto, è difficile eseguire il debug

= WICKET =

Pro:

  • leggero;
  • sistema di template sensibile;
  • buoni tutorial;

CONS:

  • documentazione di riferimento non è così ben organizzato e profondo come sono le esercitazioni;
  • team di sviluppo ha avuto qualche gravi difficoltà, soprattutto quando divenire e progetti incubati. Questo ha portato a confusione su importanti aspetti del quadro, in quel momento ho dovuto passare a un altro quadro a causa di questo ...

La mia scelta sarebbe Wicket . Hanno usato ed è eccellente dà riutilizzabilità. E 'uno dei più vivaci forum / mailing list. Come una domanda e la sua intenzione di essere risolta in pochi minuti. Ha un eccellente supporto per AJAX. Uno dei soliti cons attribuiti al Wicket è la curva di apprendimento ripida. Beh quelli erano uno dei vecchi contro età che tengono alcun valore più ora.

JSF: Meglio stare lontano da esso. Un altro team che ha sviluppato un progetto su JSF ora sta pensando di passare a Wicket dopo il nostro successo con esso.

@Megadix: Come hai detto tu la documentazione era povero in principio, ma ora non più. V'è un eccellente libro intitolato Wicket in Action scritta dagli sviluppatori di Wicket. Il codice di esempio fornito sul sito è anche un buon punto di partenza e imparare

Mi piacerebbe chiedo se uno ha un livello di servizio che è distinto dal client Web, qualcosa che i controllori web semplicemente invocare per ottenere il loro lavoro svolto.

In caso contrario, la scelta della tecnologia web UI può essere disaccoppiato dal back-end. Se è esposto come un servizio di prima web del contratto, si può avere diverse applicazioni condividono. Fino a quando i vostri clienti possono inviare e ricevere XML possono interagire con i propri servizi. Vuoi passare a Flex? Nessun problema -. Puntarlo verso il servizio e rendere la risposta XML

Vedere il mio confronto di Wicket e Tapestry 5: Differenza tra Apache Tapestry e Apache Wicket .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top