Domanda

Vorrei creare un'app web AJAX interattiva supportata da database che disponga di un sistema di calendario personalizzato (tipo specifico di eventi, modifica).Ciò comporterebbe molto JavaScript e AJAX e ho pensato a Google Web Toolkit per l'interfaccia e Ruby on Rails per il lato server.

Google Web Toolkit è affidabile e valido?Quali rischi nascosti potrebbero esserci se scelgo Google Web Toolkit?È possibile combinarlo facilmente con Ruby on Rails sul lato server?Oppure dovrei provare a utilizzare direttamente una libreria JavaScript come jQuery?

Non ho esperienza nello sviluppo web tranne un po' di HTML, ma sono un programmatore esperto (c++, java, c#) e vorrei utilizzare solo strumenti gratuiti per questo progetto.

È stato utile?

Soluzione

RoR è in realtà una delle cose con cui GWT funziona bene, purché si utilizzi REST correttamente.Si trova nel libro Applicazioni di Google Web Toolkit e puoi vedere una demo del libro utilizzando questo tipo di idea Qui.Questo non vuol dire che non avrai problemi, ma penso che il supporto sia sicuramente disponibile per questo.

C'è un bel progetto per rendere semplice RoR/GWT che puoi trovare Qui (licenza MIT).Non ho ancora avuto la possibilità di provarlo, ma sembra che ci sia stata pensata bene.Un problema è che sembra che non sia stato ancora completamente testato con 2.1 Rails, solo 2.0, quindi potresti incorrere in alcuni errori (probabilmente minori e risolvibili).

Altri suggerimenti

Se stai cercando di integrare GWT con backend non Java come ROR, PHP ecc., dovresti tenere presente che GWT 1.5 ora supporta i tipi di overlay JavaScript.Questa funzionalità consente di scrivere classi che possono essere mappate sopra oggetti JavaScript nativi per fornire facilmente metodi di accesso per le proprietà di tali oggetti e altre funzionalità estese.

Vedi questo link per maggiori dettagli:Tipi di sovrapposizione JavaScript

Quindi potresti restituire i dati codificati JSON dal tuo backend tramite chiamate AJAX, analizzarli in un oggetto JavaScript e quindi accedere ai dati tramite il tuo codice Java GWT utilizzando le classi overlay che hai creato.Oppure quando esegui il rendering della tua pagina puoi eseguire il rendering dei dati di configurazione statici come oggetti JavaScript e leggerli tramite questo meccanismo, anziché dover eseguire una chiamata AJAX per acquisire i dati.

Se conosci Java e hai un posto dove puoi ospitarlo (come un contenitore Tomcat o Glassfish), lo consiglierei molto più che usare Ruby per il back-end.Il motivo principale è che puoi condividere tutti i tuoi oggetti e utilizzare il meccanismo RPC integrato.L'ho fatto per molti dei nostri progetti ed è un enorme risparmio di tempo, per non parlare del fatto che il codice è meno soggetto a errori, perché non converti i tuoi oggetti Java in qualcosa e poi di nuovo indietro.

Ho già collegato il mio GWT a Rails, utilizzando la funzione to_json in Rails e quindi leggendo JSON in GWT.È tutto supportato, ma è molto più fastidioso che eseguire semplicemente il back-end in JAVA.

Ovviamente se disponi di un hosting economico, i contenitori Java sono praticamente fuori questione, nel qual caso penso che Rails sarebbe la cosa migliore.

GWT è di altissima qualità con una grande comunità.Tuttavia devi conoscere i CSS se vuoi modificare l'aspetto delle cose (lo farai): i CSS possono fare gran parte del layout, proprio come il normale web se lo desideri.Librerie come GWT-ext o ExtGWT possono aiutarti un po' poiché hanno un aspetto straordinario "pronto all'uso" ma a un prezzo (dimensioni extra per la tua app).

Puoi codificare tutto in Java utilizzando GWT e puoi integrare con esso le librerie Javascript di terze parti esistenti.È molto buono.Non ho mai usato molto RoR, quindi non posso dire nulla al riguardo.

Se hai esperienza in Java ma non in Javascript/CSS, allora GWT sarà un vero toccasana (a meno che tu non voglia impararli, ovviamente).I CSS hanno così tanti piccoli dettagli complicati.Non è raro passare mezza giornata a correggere un disallineamento di 2 pixel che si verifica solo in IE6.

Non sono sicuro di quanto sarebbe facile usare ROR per il back-end...È possibile, ne sono certo, poiché la comunicazione Ajax GWT è costituita solo da servlet.Ma forniscono alcune funzionalità davvero interessanti per passare oggetti Java avanti e indietro che non sarai in grado di utilizzare se anche il tuo server non utilizza Java.

Ne ho scritto alcuni gli svantaggi del GWT recentemente.Principalmente gli svantaggi sono:lungo ciclo di distribuzione per modifiche ad alcune parti dell'applicazione e una curva di apprendimento piuttosto ripida.Come programmatore Java esperto, il secondo dovrebbe essere un problema minore e se si utilizza un backend separato, anche il primo viene mitigato (poiché è necessaria principalmente una ridistribuzione completa quando si modifica la parte "server" dell'applicazione).

GWT è un framework meraviglioso con molte potenzialità.Tieni presente che è ancora abbastanza nuovo, però.Ci sono alcuni bug irrisolti che possono davvero infastidirti e di solito richiedono brutte soluzioni alternative per essere superati.La community è fantastica ma probabilmente prima o poi ti ritroverai con alcuni problemi a cui Google non può ancora rispondere.

Ma ehi, ti dico di provarci.Il potenziale per GWT è fantastico e scommetto che il futuro sarà luminoso.

Dovresti assolutamente usare GWT per un nuovo progetto (è abbastanza facile da usare anche in un vecchio progetto).

Secondo la mia esperienza è molto veloce da imparare e da usare.Il codice javascript compilato è molto migliore di qualsiasi cosa tu possa mai scrivere a mano e funziona anche velocemente.

Un altro vantaggio è la possibilità di eseguire il debug del codice (che è un inferno solo con Javascript)

Questo blog contiene input da molti utenti esperti di GWT e contiene alcuni ottimi punti di discussione.Personalmente ho una vasta esperienza con vari framework UI.Aggiungerò i miei due centesimi.Guardiamo fondamentale vantaggi e svantaggi del GWT

Vantaggio fondamentale

GWT porta la programmazione del livello web in JAVA.Quindi, gli ovvi vantaggi di Java iniziano a entrare in gioco.Fornirà programmazione orientata agli oggetti.Fornirà inoltre ottimi controlli del debug e del tempo di compilazione.Poiché genera HTML e Javascript, avrà anche la capacità di nascondere alcune complessità all'interno del suo generatore.

Svantaggio fondamentale

Lo svantaggio inizia dalla stessa affermazione.GWT porta la programmazione del livello web in JAVA.Se conosci JAVA, probabilmente non cercherai mai un linguaggio alternativo per scrivere la tua logica aziendale.È autosufficiente e fantastico.Ma quando si tratta di scrivere configurazioni per un'applicazione JAVA.Utilizziamo file di proprietà, database, XML ecc.Non memorizziamo mai le configurazioni in un file di classe JAVA.Pensaci bene, perché?

Questo perché la configurazione è un dato statico.Spesso richiede una gerarchia.Dovrebbe essere leggibile.Non richiede mai la compilazione.Non richiede la conoscenza del linguaggio di programmazione JAVA.In breve, è un gioco diverso.Ora la domanda è: come si collega alla nostra discussione?

Ora, pensiamo ad una pagina web.Pensi che quando scriviamo una pagina web scriviamo una logica di business?Assolutamente no.La pagina Web è solo una configurazione.È una configurazione di contenitori e campi gerarchici.Dobbiamo scrivere la logica aziendale per i dati che verranno acquisiti e visualizzati sulla pagina Web e non creare la pagina Web stessa.

Il paragrafo precedente fa una dichiarazione molto forte.Questo spiegherà perché le pagine web basate su HTML e XML sono ancora le più popolari.XML è il migliore nel mondo degli affari per scrivere configurazioni.Un framework deve consentire una chiara separazione della pagina Web dalla logica aziendale (l'obiettivo del framework MVC).In questo modo un web designer sarà in grado di applicare le sue capacità di visualizzazione e abilità artistica per creare pagine web dall'aspetto brillante semplicemente configurando XML e senza preoccuparsi delle complessità di un linguaggio di programmazione.Gli sviluppatori saranno in grado di utilizzare il meglio di Java aziendale per scrivere la logica aziendale.

Infine, parliamo delle ripercussioni in termini diretti.GWT infrange questo principio, quindi è destinato a fallire.Il costo per lo sviluppo dell'applicazione GWT sarà molto elevato perché avrai bisogno di programmatori multiskill per scrivere pagine web.L’aspetto e la sensazione richiesti saranno molto difficili da ottenere.Il tempo necessario per modificare la pagina web sarà molto elevato a causa della compilazione non necessaria.E infine, poiché stai scrivendo pagine web in JAVA, è molto facile corromperle con la logica aziendale.Inconsapevolmente introdurrai complessità che devono essere evitate.

Potresti anche considerare Graal ("Groovy on Rails") che offre i vantaggi di un framework Rails e l'utilizzo di Java VM.

Il nostro team ha recentemente posto la stessa domanda e abbiamo scelto di utilizzare GWT, soprattutto perché il plug-in di progettazione ha reso il lavoro con GWT più accessibile agli esperti non Java del team.Chiunque faccia questa scelta, faccia attenzione a NON utilizzare il plugin GWT Designer!!Non è stato aggiornato (da almeno un anno, a quanto pare) per creare un'applicazione GWT compatibile con IE8.

Il nostro team aveva quasi completato i layout delle nostre applicazioni, che funzionavano perfettamente su Chrome, FF e Safari.Poi sono esplosi in IE.IE 7 caricava pagine parziali (ma non include composite) e IE8 non era nemmeno in grado di caricare l'applicazione.È semplicemente appeso.

Il plug-in del designer dispone di pulsanti che consentono all'utente di aggiungere widget CellTable che non sono compatibili con IE (CellTable, DeckPanel, Pannello orizzontale, Pannello verticale, tra gli altri).Ciò causerà un intenso dolore quando i layout dovranno essere rifatti in Java senza l'assistenza del progettista.

Gli utenti esperti di GWT lo adorano, ma il plug-in del designer ti ucciderà.

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