Domanda

Sono all'inizio/metà di un progetto che abbiamo scelto di implementare utilizzando GWT.Qualcuno ha riscontrato grossi problemi nell'utilizzo di GWT (e GWT-EXT) che non è stato possibile superare?Che ne dici dal punto di vista delle prestazioni?

Un paio di cose che abbiamo già visto/sentito includono:

  • Google non è in grado di indicizzare i contenuti
  • I CSS e lo stile in generale sembrano un po' traballanti

In attesa di ulteriori feedback anche su questi elementi.Grazie!

È stato utile?

Soluzione

Inizierò dicendo che sono un grande fan di GWT, ma sì, ci sono molte insidie, ma la maggior parte se non tutte siamo riusciti a superare:

Problema: Tempi di compilazione lunghi: man mano che il tuo progetto cresce, aumenta anche la quantità di tempo necessaria per compilarlo.Ho sentito parlare di compilazioni di 20 minuti, ma le mie durano in media circa 1 minuto.

Soluzione: Dividi il tuo codice in moduli separati e dì ad Ant di crearlo solo quando viene modificato.Inoltre durante lo sviluppo, puoi accelerare enormemente i tempi di compilazione costruendo solo per un browser.Puoi farlo inserendo questo nel tuo file .gwt.xml:

<set-property name="user.agent" value="gecko1_8" />

Dove gecko1_8 è Firefox 2+, ie6 è IE, ecc.


Problema: La modalità ospitata è molto lenta (almeno su OS X) e non si avvicina alle modifiche "in tempo reale" che ottieni quando modifichi elementi come pagine JSP o Rails e premi Aggiorna nel tuo browser.

Soluzione: Puoi dare alla modalità ospitata più memoria (in genere ho ottenuto 512 M) ma è ancora lento, ho scoperto che una volta che diventi abbastanza bravo con GWT smetti di usarlo.Si apportano numerose modifiche, quindi si compila per un solo browser (generalmente 20 secondi di compilazione) e quindi si preme semplicemente Aggiorna nel browser.

Aggiornamento:Con GWT 2.0+ questo non è più un problema, perché utilizzi la nuova "Modalità di sviluppo".Fondamentalmente significa che puoi eseguire il codice direttamente nel tuo browser preferito, quindi nessuna perdita di velocità, inoltre puoi attivarlo/ispezionarlo, ecc.

http://code.google.com/p/google-web-toolkit/wiki/UsingOOPHM


Problema: Il codice GWT è Java e ha una mentalità diversa rispetto al layout di una pagina HTML, il che rende più difficile prendere un progetto HTML e trasformarlo in GWT

Soluzione: Ancora una volta ti abitui a questo, ma sfortunatamente convertire un progetto HTML in un progetto GWT sarà sempre più lento che fare qualcosa come convertire un progetto HTML in una pagina JSP.


Problema: GWT richiede un po' di comprensione e non è ancora mainstream.Ciò significa che la maggior parte degli sviluppatori che si uniscono al tuo team o mantengono il tuo codice dovranno impararlo da zero

Soluzione: Resta da vedere se GWT decollerà, ma se sei un'azienda che ha il controllo su chi assumere, puoi sempre scegliere persone che conoscono GWT o vogliono apprenderlo.


Problema: GWT è una mazza rispetto a qualcosa come jquery o semplicemente javascript.Ci vuole molta più configurazione per realizzarlo rispetto al semplice inclusione di un file JS.

Soluzione: Utilizza librerie come jquery per attività più piccole e semplici adatte a queste.Utilizza GWT quando desideri creare qualcosa di veramente complesso in AJAX o quando devi trasferire i tuoi dati avanti e indietro tramite il meccanismo RPC.


Problema: A volte, per popolare la pagina GWT, è necessario effettuare una chiamata al server al primo caricamento della pagina.Può essere fastidioso per l'utente sedersi lì e guardare un simbolo di caricamento mentre recuperi i dati di cui hai bisogno.

Soluzione: Nel caso di una pagina JSP, la pagina è stata già renderizzata dal server prima di diventare HTML, quindi puoi effettivamente effettuare tutte le chiamate GWT in quel momento e pre-caricarle sulla pagina, per un caricamento istantaneo.Vedi qui per i dettagli:

Velocizza il caricamento delle pagine pre-serializzando le tue chiamate GWT


Non ho mai avuto problemi con lo styling CSS dei miei widget, fuori dagli schemi, personalizzati o meno, quindi non so cosa intendi con che è una trappola?

Per quanto riguarda le prestazioni, ho sempre scoperto che il codice GWT una volta compilato è veloce e le chiamate AJAX sono quasi sempre più piccole rispetto all'aggiornamento di un'intera pagina, ma questo non è proprio esclusivo di GWT, sebbene i pacchetti RPC nativi che ottieni se usi un back-end JAVA sono piuttosto compatti.

Altri suggerimenti

Lavoriamo con gwt da quasi 2 anni.Abbiamo imparato molte lezioni.Ecco cosa pensiamo:

  1. Non utilizzare librerie di widget di terze parti, in particolare gwt-ext.Ucciderà le tue prestazioni di debug, sviluppo e runtime.Se hai domande su come ciò accade, contattami direttamente.

  2. Usa gwt per compilare solo le parti dinamiche delle tue app.Quindi, se hai interazioni utente complesse con molti campi.Tuttavia, non utilizzare i pannelli forniti con esso.Prendi le pagine fornite dal designer di stock esistente.Ritaglia le aree che conterranno i controlli per la tua app.Allega questi controlli alla pagina all'interno di onModuleLoad().In questo modo puoi utilizzare le pagine standard del tuo designer ed eseguire anche tutto lo styling al di fuori di gwt.

  3. Non creare l'intera app come una pagina standard che poi crea dinamicamente tutte le parti.Se fai ciò che suggerisco al punto 2, ciò non accadrà comunque.Se crei tutto in modo dinamico, ucciderai le prestazioni e consumerai enormi quantità di memoria per app di medie e grandi dimensioni.Inoltre, se fai quello che ti suggerisco, il pulsante Indietro funzionerà benissimo, così come l'indicizzazione dei motori di ricerca, ecc.

Anche gli altri commentatori hanno dato dei buoni suggerimenti.La regola pratica che utilizzo è creare pagine come se stessi facendo una pagina web standard.Quindi ritaglia i pezzi che devono essere dinamici.Sostituiscili con elementi che hanno ID e quindi utilizza RootPanel.get( id ).add( widget ) per riempire quelle aree.

Insidie ​​in cui ci siamo imbattuti:

  • Anche se puoi ottenere molti risultati utilizzando qualcosa come GWT EXT, ogni volta che usi questo tipo di rivestimento sottile sopra una libreria JavaScript, perdi la possibilità di eseguire il debug.Più di una volta ho sbattuto la testa sulla scrivania perché non riesco a controllare (all'interno del mio debugger IntelliJ) cosa sta succedendo nella classe della tabella GWT EXT...Tutto quello che puoi vedere è che è un JavaScriptObject.Ciò rende piuttosto difficile capire cosa è andato storto...

  • Non avere qualcuno nel tuo team che conosca i CSS.Dalla mia esperienza, non importava che la persona non fosse esperta... è sufficiente che abbia una buona conoscenza pratica e conosca i termini giusti da cercare su Google quando necessario.

  • Debug tra browser.Tieni d'occhio la modalità ospitata fuori processo[1][2][3], si spera in arrivo in GWT 1.6...Per ora, devi solo fare le cose per bene con la modalità ospitata, quindi utilizzare il pulsante "Compila/Sfoglia", dove puoi giocare con altri browser.Per me, che lavoro su Windows, questo significa che posso visualizzare il mio lavoro in FireFox e utilizzare FireBug per modificare e migliorare le cose.

  • IE6.È sorprendente quanto IE 6 renderà le cose in modo diverso.Ho adottato l'approccio di applicare uno stile alla "viewport" più esterna in base al browser in modo da poter avere regole CSS come:

    .my-style { /* stuff that works most everywhere */ }
    
    .msie6 .my-style { /* "override" so that styles work on IE 6 */ }
    

Infine, assicurati di utilizzare un editor che ti aiuti.Io uso IntelliJ: ha molte funzionalità GWT.Ad esempio, se provo a utilizzare una classe che non è gestita dall'emulazione JRE, me lo fa sapere;se specifico uno stile per un widget e non ho ancora definito quello stile, il codice ottiene il piccolo simbolo ondulato rosso...Oppure, guardando il CSS, mi dirà quando ho specificato attributi in conflitto in una singola regola.(Non l'ho ancora provato, ma capisco che la versione 8 ha un supporto GWT ancora migliore, come mantenere sincronizzate le interfacce e le implementazioni RPC "locali" e "asincrone".)

GWT 2.0, che dovrebbe uscire nei prossimi mesi, risolve molti dei problemi discussi.

  • Crea layout utilizzando una sintassi simile a html/xml
  • Caricamento dinamico degli script: inizialmente verrà scaricato solo il JS essenziale.Il resto verrà scaricato secondo necessità
  • Modalità ospitata nel browser: questa opzione potrebbe risolvere i problemi di velocità della modalità ospitata discussi, tra gli altri vantaggi
  • "Ottimizzazioni del compilatore" - Compilazione più veloce, si spera

Video di anteprima di GWT 2.0 al Google I/O

Non "incapace di essere superato", ma un po' una seccatura per qualcosa di fondamentale.

Gestione della data:

GWT utilizza il deprecato java.util.Date che può portare a comportamenti imprevisti quando si gestiscono le date sul lato client. java.util.Calendar non è supportato da GWT. Maggiori informazioni qui.

Esempi di problemi correlati:

Aggiungo alcuni punti a quelli già citati:

  • Associazione/convalida dei dati.GWT non dispone di un supporto di associazione/convalida dei dati pronto all'uso, sebbene ci siano alcuni progetti in quest'area che iniziano ad emergere.Ti ritroverai a scrivere molto di questo:
TextField fname, faddress;
...
fname.setText(person.getName());
faddress.setText(person.getAddress());
...
  • Caricamento pigro.Poiché gwt è sul lato client, il caricamento lento non è davvero un'opzione.Dovrai progettare attentamente le tue RPC e gli oggetti di dominio per farlo
    • invia tutti i dati dell'oggetto necessari
    • evita di recuperare con impazienza tutti i tuoi dati
    • Dovrai anche assicurarti di non inviare proxy/oggetti non serializzabili. hibernate4gwt può aiutarti con questi punti.
  • Progettazione dell'interfaccia utente.È più difficile visualizzare un'interfaccia utente in Java (pannelli, pulsanti, ecc.) che in HTML.
  • Supporto storico.GWT non viene fornito con un sottosistema Cronologia, né viene fornito con alcun sottosistema per URL piacevoli o bookmarking stateful.Dovrai lanciarne uno tuo (sebbene abbia il supporto per i gettoni Storia, che è un inizio).Questo accade con tutti i toolkit AJAX AFAIK.

IMHO, a GWT manca un framework che abbia il supporto immediato per tutti i problemi menzionati in questo "thread".

Sto lavorando a un progetto in questo momento che utilizza EXT GWT (GXT) da non confondere con GWT EXT.C'è una differenza, EXT GWT è quello effettivamente prodotto dalla società che ha scritto ExtJS la libreria javascript.GWT EXT è un wrapper GWT attorno alla libreria ExtJS.GXT è GWT nativo.

Ad ogni modo, GXT è ancora un po' immaturo e manca di una solida community che ritengo abbia GWT EXT.Tuttavia, il futuro è con GXT, poiché è GWT nativo e attualmente sviluppato dalla società che ha creato ExtJS.GWT EXT è in qualche modo paralizzato poiché la licenza è cambiata sulla libreria ExtJS, rallentando così lo sviluppo di GWT EXT.

Nel complesso, penso che GWT/GXT sia una buona soluzione per lo sviluppo di un'applicazione web.In realtà mi piace molto la modalità ospitata per lo sviluppo, rende le cose facili e veloci.Hai anche il vantaggio di poter eseguire il debug anche del tuo codice.Anche i test unitari con JUnit sono piuttosto solidi.Non ho ancora visto un ottimo framework di test unitario JavaScript che ritenessi sufficientemente maturo per testare un'applicazione aziendale.

Per ulteriori informazioni su GWT EXT:http://gwt-ext.com/

Per ulteriori informazioni su EXT GWT (GXT):http://extjs.com/products/gxt/

Nessuna trappola importante che non sono riuscito a superare facilmente.Utilizza pesantemente la modalità ospitata.Poiché utilizzi GWT-ext, non avrai quasi mai bisogno di toccare i CSS da solo, a meno che tu non voglia modificare l'aspetto immediato.

Il mio consiglio è di utilizzare un widget "nativo" GWT rispetto a uno di libreria in cui sono vicini nelle funzionalità.

Riindicizzazione sui motori di ricerca:sì, il sito normalmente non avrà URL navigabili (a meno che tu non stia aggiungendo solo widget agli elementi di un normale sito web).Puoi però eseguire la funzionalità indietro/avanti della cronologia.

Ho usato GWT e GWT-ext insieme su un progetto qualche tempo fa.Ho trovato l'esperienza abbastanza fluida per quanto riguarda lo sviluppo web, ma il mio consiglio sarebbe questo:

Non mescolare widget nativi GWT con widget EXT.È molto confuso, poiché di solito i nomi sono gli stessi (GWT.Button o GWText.Button?)

Una cosa che mi è successa che ha reso il codice più complesso di quanto mi piacerebbe, era che volevo un pannello che era a) aggiornabile dinamicamente b) cascatabile

I pannelli nativi GWT sono dinamici, i pannelli Ext sono collegabili in cascata.Soluzione?Un GWT.VerticalPanel che avvolge un pannello GWText...Caos.:)

Ma ehi, funziona.;)

Condivido il commento di ykagano, il più grande svantaggio è perdere la V in MVC.Sebbene sia possibile separare la vera classe dell'interfaccia utente dal resto del codice lato client, non è possibile utilizzare facilmente una pagina HTML generata da un grafico/web designer.Ciò significa che hai bisogno di uno sviluppatore per tradurre l'HTML in Java.

Ottieni un editor wysiwyg ui, ti farà risparmiare un sacco di tempo.Utilizzo GWTDesigner.

Il più grande vantaggio di GWT è la possibilità di dimenticare i problemi tra browser diversi.Non è al 100% ma toglie quasi tutto quel dolore.Combinato con il vantaggio del debug in modalità ospitata (al contrario di Firebug che è eccellente ma non uguale a un debugger Java) offre allo sviluppatore un enorme vantaggio nella generazione di app Ajax complesse.

Oh ed è veloce in fase di esecuzione, soprattutto se usi un filtro gzip.

Leggermente fuori tema, ma il canale #gwt su irc è molto utile, nel caso in cui tu abbia un problema persistente.

GWT è piuttosto semplice e intuitivo.

Soprattutto con il rilascio di UIBinder per consentire ai widget GWT di essere disposti in XML e quindi codificati in Java.

Quindi, se hai utilizzato altri strumenti di progettazione Ajax o Flash, oppure Silverlight, ecc., GWT è molto facile da imparare.

L'ostacolo principale, se non la trappola, è il GWT RPC.Il vero motivo per cui desideri utilizzare GWT è a causa dell'RPC asincrono GWT.Altrimenti, perché non affidarti semplicemente ai CSS per formattare la tua pagina?

GWT RPC è quell'elemento che consente al tuo server di aggiornare i dati sul tuo server senza dover aggiornare la pagina.Questo è un requisito assoluto per pagine come il monitoraggio dell'andamento delle azioni (o l'attuale debito nazionale e pubblico degli Stati Uniti o il numero di bambini non ancora nati abortiti in tutto il mondo entro il secondo).

GWT RPC richiede un po' di impegno per comprenderlo, ma nel giro di poche ore tutto dovrebbe risultare chiaro.

Oltre a ciò, dopo aver fatto qualche sforzo per apprendere GWT RPC, scopri finalmente che non puoi utilizzare JSP come componente di servizio per RPC, a meno che...Ho una serie in 8 parti (credo) sul mio blog su come utilizzare JSP come servicer GWT RPC.Tuttavia, poiché non mi hai chiesto risposte ma solo domande, desisterò dal pubblicizzare il mio blog.

COSÌ.Sono fermamente convinto che i peggiori ostacoli/insidie ​​​​nell'utilizzo di GWT siano scoprire come distribuire correttamente l'RPC asincrono GWT e come consentirgli di utilizzare i servizi JSP.

Abbiamo avuto molte difficoltà a sposare la nostra base di codice GWT con i modelli web HTML che abbiamo ottenuto da un web designer (pagine HTML statiche con ID div specifici che volevamo che GWT gestisse).Almeno quando lo usavamo, non riuscivamo a far sì che GWT si integrasse con parti del nostro sito web che non erano codificate in GWT.Alla fine l'abbiamo fatto funzionare, ma è stato un grosso trucco.

  • L'interfaccia Async che devi scrivere per ciascuna interfaccia di servizio assomiglia a qualcosa che potrebbe essere stata generata automaticamente dal compilatore GWT.
  • I tempi di compilazione diventano lunghi per progetti di grandi dimensioni

Ma per un progetto Javascript di grandi dimensioni è la scelta migliore

GWT 2.4 ha risolto molti dei problemi sopra menzionati e una fantastica libreria di widget è appena uscita dalla Beta (Ext GWT 3.0.4 a.k.a.GXT), che è scritto completamente in GWT, non un wrapper di una libreria JS.

Dolore residuo:

  • Mancanza di supporto per il selettore CSS3, in alcuni casi è possibile utilizzare "literal()" per aggirare il problema.
  • Mancanza di supporto per CSS3 e eventi del browser moderno come transizioneFine.
  • Mancanza di supporto per la classe Java Calendar (molti anni dopo).
  • Mancanza di supporto JUnit4 (5 anni e oltre).
  • Mancanza di una road map chiara e di un programma di rilascio da parte del team GWT di Google.

Per quanto riguarda GWT 2.4, Usa Firefox durante il debug di GWT, è molto più veloce dell'utilizzo di Chrome.E se utilizzerai solo Firefox, considera di inserire questa riga nel tuo file progetto.gwt.xml file

<set-property name="user.agent" value="gecko1_8" />

Inoltre, se stai utilizzando Eclipse, aggiungi quanto segue in argomenti -> Argomenti VM:

-Xmx512m -XX:Dim.Permmax=1024m -XX:Dim.Perm=1024m

Puoi dividere il tuo server e client e utilizzare quanto segue in argomenti -> Argomenti del programma:-codeServerPort 9997 -startupUrl http://tuoserver/progetto -noserver

Inoltre, per evitare di aggiornare il tuo server ad ogni modifica, usa JRebelhttp://zeroturnaround.com/blog/how-to-rock-out-with-jrebel-and-google-web-toolkit-gwt/Ed ecco una demo dal vivohttp://www.youtube.com/watch?feature=player_embedded&v=4JGGFCzspaY

Uno dei principali problemi è che a volte è necessario assegnare esplicitamente un ID a quello che alla fine diventa un elemento HTML per poter utilizzare determinati stili CSS.Ad esempio:un TabPanel GWT eseguirà il passaggio del mouse su tabBarItems solo quando alla tabBar del tabPanel è stato assegnato un ID e si specifica un :hover su quell'elementId.

Ho scritto di qualcun altro svantaggi del GWT altrove, ma sono già coperti dalla risposta di Rustyshelfs :).

Ho lavorato molto su GWT recentemente, e questo è quello che devo dire:

  1. Lo stile CSS è complicato solo a volte, usa lo strumento di sviluppo IE in IE e firebug in Firefox per capire cosa sta succedendo esattamente e avrai un'idea chiara di cosa CSS deve essere modificato
  2. Puoi usare dei trucchi per convincere Google a indicizzarlo.Un sito molto famoso è http://examples.roughian.com/ controlla le sue valutazioni su Google.Un sito molto meno famoso lo è www.salvin.in (non ho potuto resistere a dirlo), l'ho ottimizzato in parole:home page di salvin (cerca su google queste tre parole)

Non so molto di GWT-EXT, ma anch'io sono convinto che non sia necessario includere librerie di terze parti.

Buona fortuna per la tua decisione :)

Il team GWT ha apportato molti miglioramenti rispetto allo scorso anno rilasciando GWT 2.7.Uno dei principali punti deboli di GWT era che la compilazione richiedeva molto tempo in GWT 2.6 e versioni precedenti.Ora non c'è più GWT non ha una compilazione incrementale che è super veloce e compila solo le modifiche.

GWT 2.7 ora ha (Fonte):

  • Le build incrementali ora durano solo pochi secondi
  • SourceMaps più compatte e più precise
  • Supporto GSS
  • JSInterop
  • Ottime prestazioni JavaScript
  • Dimensioni del codice più piccole

Il modo migliore per ottenere fatti affidabili è da sondaggio gwt.Uno dei maggiori problemi con GWT è sempre stato il lungo tempo di compilazione.Fortunatamente, sta migliorando molto rapidamente, quindi non sarà un problema significativo nel prossimo futuro.Un'altra trappola è che GWT è notevolmente più complicato perché Java è un linguaggio più complicato che resiste ai programmatori inadeguati in ogni fase del processo.Inoltre, la compilazione aggiunge un livello.Ad esempio, l'interoperabilità js richiede un po' di standard.La questione fondamentale è che GWT non è stato progettato per essere semplice.È stato progettato da zero per app Web estremamente complicate e l'intera comunità dà costantemente priorità alle prestazioni, alla qualità del codice, all'architettura ecc. rispetto alla codifica semplice.
Ricorda che puoi utilizzare js in GWT in qualsiasi momento, quindi se hai difficoltà con GWT considera l'utilizzo di js.Alla fine GWT è js, quindi puoi fare tutto ciò che puoi fare in GWT in js.In effetti, la maggior parte dei progetti GWT utilizzano js.Il problema è che GWT è drasticamente più complicato.Tuttavia, a volte vale la pena aggiungere ulteriore complessità.

Vale la pena notare che GWT 3.0 porterà enormi miglioramenti.

Riutilizzo degli oggetti di servizio RPC.
Causa condizioni di competizione con sintomi che assomigliano al blocco dell'app.

Insidie ​​ho incontrato 1.Comportamento diverso in modalità superdev.Per esempio.Someclass.class.getName() funziona perfettamente in modalità Superdev e restituisce il nome completo della classe.In modalità produttiva questo non funziona.

  1. addWidget(widget) chiamerà il comandoremovefromparent() del widget

GWT è un capolavoro della tecnologia.Unisce la programmazione client e server rendendola un'applicazione coerente: il modo in cui il software veniva scritto prima della "stratificazione" e il modo in cui dovrebbe essere scritto.Elimina diversi set di competenze, problemi di comunicazione tra i membri del team e in generale l'intera fase di Web Design:sia artistico che di programmazione.Ed è la cosa più vicina al cellulare, ad es.Sviluppo Android.In effetti GWT è stato progettato per generare diverse UI native, non solo HTML.Anche se è necessaria un'enorme disciplina per garantire tale disaccoppiamento, per mantenere i tuoi strati interni indipendenti dalla presentazione.

Il primo errore che dovresti evitare, e che mi ci sono voluti quattro anni per realizzarlo, è utilizzare estensioni di terze parti come EXT-GWT alias GXT e SmartGWT.È molto forte la tentazione di iniziare a utilizzare i loro widget piuttosto desktop invece di investire nel proprio stile, ma non posso dire quanti problemi ho avuto con SmartGWT finché non mi sono stufato.In breve, congela il set di funzionalità principali di GWT a un certo livello (piuttosto obsoleto) e poi si basa su di esso.Tieni inoltre presente che l'aspetto cesellato del desktop sembra sciocco al giorno d'oggi, per non parlare delle prestazioni lente, delle tonnellate di bug e delle funzionalità di compatibilità, specialmente sui dispositivi mobili.Vuoi rimanere il più vicino possibile ai controlli nativi del browser, ad es.menu a discesa visualizzati come elementi <select> nativi, non alcuni controlli personalizzati.

Grazie alle tendenze mobili, l'intera UX sta diventando più semplice e piatta, quindi non è necessario fare molto per creare un'applicazione dall'aspetto nitido.Tuttavia, se vuoi un aspetto "3D", ci sono anche le sfumature.CSS3 ha reso tutto semplice e GWT lo avvolge in un modo elegante orientato agli oggetti a differenza del CSS grezzo.Quindi non scoraggiarti guardando i controlli barebone piuttosto brutti nella vetrina GWT.Il team GWT non ha intenzionalmente offerto alcuno stile, perché è il lavoro dello sviluppatore.

Il resto è praticamente una programmazione browser convenzionale in Java fortemente tipizzato con API bellissime e concise.Ma ovviamente non dimenticare mai che il tuo codice viene eseguito all'interno del browser, quindi tutte le chiamate sono asincrone, ad es.non è possibile chiamare i metodi GWT-RPC in un ciclo (per popolare un elenco), ma è necessario concatenarli ricorsivamente se mai si arriva a questa situazione.

Esistono alcuni "anti-pattern" autoproclamati come non utilizzare GWT-RPC.Mi è andata bene finora:per 10 anni.La semplicità è la chiave.Non penserei nemmeno per un secondo di sacrificare alcune prestazioni marginali per l'eleganza e la manutenibilità del codice.inoltre non è qui che si troverebbero i colli di bottiglia: nel database.Ovviamente fai attenzione a quanti dati stai inviando al client.

E se non riesci a trovare o ad applicare uno stile al gadget esistente, leggi il ricco set di elementi HTML5, puoi sempre inserirne uno di terze parti.L'ho fatto con un popolare jQuery FullCalendar.Non è affatto scienza missilistica.Tutto il resto, come Google Maps e Google Charts, ha wrapper GWT semi-ufficiali.

GWT è perfetto.L'unica ragione per cui non riceve abbastanza amore è perché i primi utilizzatori di Internet che ancora influenzano il settore non provenivano dall'informatica e dai linguaggi orientati agli oggetti per apprezzarli.Hanno un background artistico (Photoshop/WordPress) o di rete (Perl/Python).

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