Domanda

Io sono su un progetto in cui si cerca di costruire una GUI in sostituzione della vecchia applicazione.Prima abbiamo davvero implementare la funzionalità abbiamo iniziato la prototipazione con Eclipse RCP (Rich Client Platform) e GWT (Google widget toolkit, una Rich Internet Application).Qual è la vostra esperienza con RIA e RCP interfacce grafiche?Quando ha senso per l'utilizzo di RIA e le situazioni in cui un ricco cliente è più adatto?Con le attuali possibilità di RIA, diventa sempre più difficile tracciare la linea..Avete esperienze?


EDIT:Tutte le vostre risposte sono davvero interessanti.Mi piacerebbe accettare tutti loro contribuiscono alla risposta della mia, ammetto un bel questione aperta.Quindi il mio voto per ciascuno di essi.Spero che il bounty saranno condivisi tra di voi.

È stato utile?

Soluzione

Non c'è alcun dettaglio sui requisiti della vostra applicazione che è davvero la chiave per rispondere alla domanda.

La grande vittoria per l'utilizzo di GWT è la facilità di implementazione rispetto a qualcosa come RCP. Non c'è niente di più facile per l'utente che puntare il proprio browser web in un URL e niente di più facile per il team operativo che spingere il codice al server, rimbalzando e chiamarlo un giorno.

Per quanto riguarda la funzionalità, la grande area dove GWT arriverà a breve sarebbe più ricche visualizzazioni di dati: grafici, albero / node, diagrammi di rete, ecc Questa roba è possibile con GWT e qualche aiuto sul server, ma i limiti di DHTML iniziare a mostrare attraverso, anche con un kit di strumenti potenti come GWT. D'altra parte, RCP ti dà tutta la potenza di Java 2D di visualizzare tutto quello che vuoi. Questi tipi di funzionalità potrebbero non essere necessario per voi ma sono anche quelli che fanno le applicazioni davvero interessante, molto più di un pasticcio di controlli struttura a schede, alberi e griglia di dati.

ho sviluppato con Adobe Flex per diversi anni e trovo che sia davvero potente, avendo più o meno gli stessi vantaggi di implementazione come qualcosa di simile GWT, ma che offre lo stesso tipo di potere come RCP. Si potrebbe voler controllare che troppo.

Altri suggerimenti

Anche se GWT va un lungo cammino, non dando lo stesso la flessibilità e l'accessibilità come una corretta applicazione.

Anche thouhg un GWT applicazione può fare quasi tutto ciò che una vera e propria applicazione, ma una serie di fattori indica che RCP sarebbe lo strumento migliore.

  • Ripetute lavoro
  • Un sacco di input
  • Lunghe sessioni
  • Ripetute attività
  • Widget personalizzati per la modifica o la presentazione.
  • Più finestre con dati diversi.
  • Tasti di scelta rapida per usato spesso le operazioni di
  • Risposte rapide.
  • Un vero e proprio menu bar, coolbars.
  • Una apposita finestra di dialogo che permette di trovare facilmente nella barra delle applicazioni.
  • Menu di contesto per raramente utilizzato per le operazioni di
  • Limitata (o noto base del numero di utenti.
  • Ampia o animazioni complesse o aggiornamenti in tempo reale.

Se pensate che la vostra applicazione ha bisogno di un banco di lavoro con diversi punti di vista e gli editori, quindi la scelta è dato.

RCP e il banco di lavoro, non sono così facili da lavorare, ma si ottiene molto di connessione se l'applicazione potrebbe beneficiare di più "libero" e aprire il modello di lavoro con più vista aperta/editor etc.

Se l'applicazione è per il più occasionale attività, quindi GWT è veramente buono.

GWT è veramente bello, ma la sua ancora di un'applicazione web, e che fa schifo a volte.Non vorrei fare il mio lavoro in un'applicazione web dove posso accidentalmente premere un tasto e perdere tutto il mio lavoro e la sessione.(La mia tastiera ha anche un tasto accanto ai tasti freccia, che sembra essere impossibile disattivare).Il suo potente abbastanza, di fare quasi tutto quello che si può fare in RCP, ma la sua ancora in esecuzione all'interno del browser web, e che può essere irritante.

Ricordate che è possibile utilizzare java Webstart per distribuire RCP applicazioni.

Abbiamo sviluppato una (progetto pilota) plug-in per Eclipse che è stato poi convertito in entrambi un'applicazione RCP standalone (non volevamo spedirlo come un plug-in in quanto non volevamo Eclipse come pre- req, quindi abbiamo dovuto aggiungere qualche codice di supporto rende leggermente più complicato di una semplice mossa nel RCP) e in un'applicazione RIA utilizzando jQuery.

Nonostante i migliori sforzi del campo RCP, la versione RIA ha preso circa lo stesso tempo di sviluppare (anche se era da zero) e sembrava più liscia in esecuzione.

L'argomento decisivo era che non c'era alcuna installazione è richiesto con la versione RIA dal momento che tutti i nostri clienti hanno già application server e gli aggiornamenti sono centralizzate in un server, non ogni cliente.

La versione RCP è stato da tempo lasciato alle spalle in termini di funzionalità. Per quanto ci riguarda, Eclipse è sottile come un ambiente di sviluppo (per Java, non abbiamo alcuna esperienza con le altre lingue), ma lo sforzo che hanno messo in divisione a parte l'IDE dalla GUI (RCP per rendere possibile) non è < em> molto finito.

D'altra parte, jQuery sembra su misura per questo genere di cose (probabilmente perché è stato creato su misura per questo genere di cose). Sia lo sviluppo e la gestione di applicazioni sono molto belle.

applicazioni rich internet è un buon modo per rendere il software robusto che agiscono come software desktop tradizionale. Un problema diffuso con RIA è che molti sviluppatori tendono a mettere la logica di business nel codice lato client. logica di business e gli stati nel codice lato client è molto sicuro, come si può manipolare il codice lato client in fase di esecuzione. Inoltre, si tratta di un sistema di whitebox, che consente agli hacker di esaminare il codice e scoprire punti deboli, come la convalida dell'input fatto solo nel codice lato client o manipolare gli stati. Non lasciatevi ingannare da offuscamento, in quanto rallenta solo giù un hacker, ma non lo ferma. Billy Hoffman ha scritto un buon libro sulla sicurezza AJAX (chiamato, ta-daa , "Ajax sicurezza") e lo consiglio a tutti, sviluppatori RIA.

Questo non significa che l'AIR è per definizione male, è possibile scrivere sicuro RIA se si sa cosa si sta facendo (senza logica di business nel codice lato client, nessuno stato, ingresso convalida [anche] fatto sul lato server, ecc) . Ci sono un paio di quadri che implementano questo server sicure guidato RIA, si è IT Mill Toolkit (sulla base degli GWT) e ICEfaces dovrebbe essere anche quello di mia conoscenza.

Nella mia esperienza, RIA GUI tendono ad essere abbastanza robusto per comunicare più informazioni agli utenti. Ci sono alcune probabilmente alcune eccezioni a questo, ma non riesco a pensare ad un buon momento. RIA ha il vantaggio di essere accessibile a chiunque attraverso un browser web, senza installare un client di spessore (RCP). A meno che non avete un po 'di visualizzazione speciale complesso che non può essere fatto attraverso le tecnologie web mi consiglia di andare via RIA.

Un'organizzazione ho lavorato per scegliere RCP perché i loro utenti necessari per lavorare con l'applicazione sia online che offline (quando sono in viaggio, ecc). So che questo è possibile con Google grears ora, ma gli ingranaggi non è davvero corrente principale abbastanza per grande organiazation basarlo sul prodotto di punta. Ma se i vostri utenti non hanno la necessità di andare offline si sarebbe davvero salvare il fastidio di sincronizzazione dati utente / prodotto aggiornamenti ect tra la vostra applicazione e il server RCP, RIA sarebbe la strada da percorrere in questo caso.

C'è anche la possibilità di schierare una RCP con alcuni dei vantaggi di una RIA. Una soluzione in fase di studio per il nostro cliente (utilizzati esclusivamente da personale all'interno della loro società) è l'uso di un'applicazione Java lanciato tramite una servlet Java.

Alcuni vantaggi individuati sono:

  • E 'facilmente aggiornato, molto simile a un RIA (appena ri-distribuire il suo file JAR, verrà scelto il momento prossima volta accede alla pagina con l'applet)
  • Si guarda, si sente, si comporta e si comporta come un'applicazione nativa, molto simile a un RCP (grazie a SWT)

Alcuni svantaggi individuati sono:

  • computer dell'utente deve avere un plugin Java installato.
  • La domanda deve essere sviluppata in una versione di Java compatibile con i plugin degli utenti (anche se il cliente può richiedere una versione minima per essere installato sui computer del personale). Lo strumento Retroweaver può aiutare, anche se non ho molto esperienza con esso.
  • L'utente deve mantenere il browser web aperto, altrimenti l'applicazione verrà terminata.

Qual è la natura di questa applicazione. Dovrebbe essere in esecuzione completamente su un computer client? Ha bisogno di accedere ai dati memorizzati in locale? Sei solo replcaning la GUI per un'applicazione esistente con il motore ancora è il codice legacy?

Il mio altro significativo sta lavorando su un appliance software in cui ha sfruttato AJAX come un mezzo per la configurazione dell'apparecchio. Il set di funzionalità per la configurazione è ricca e si allinea molto bene con RIA. Allo stesso modo, la necessità di installare software in locale sul browser web è estremamente scoraggiato.

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