2009-06-12 17 views
5

Sono nuovo nello sviluppo Flex e RIA in generale. Ho un servizio Java + Spring + Hibernate in stile CRUD in cima al quale sto scrivendo un'interfaccia utente Flex. Attualmente sto usando BlazeDS. Questa è un'applicazione interna in esecuzione su una rete locale.Devo investire in GraniteDS per lo sviluppo di Flex + Java?

È diventato chiaro per me che il modo in cui funzionano le RIA è più simile a un'applicazione desktop che a un'applicazione Web in quanto cariciamo l'intero modello e lavoriamo direttamente con esso sul client (o almeno la parte che abbiamo interessato a). Questo non funziona molto bene con BlazeDS perché in realtà supporta solo il remoting e non la gestione dei dati, quindi può diventare molto lavoro extra per assicurarsi che i client siano sincronizzati e per evitare di ricaricare il modello che può essere grande (specialmente da il caricamento lazy non è possibile).

Quindi mi sembra che quello che mi rimane è una situazione in cui devo trattare la mia applicazione Flex più come una vecchia web application regolare dove faccio un sacco di caricamento a grana fine dei dati.

LiveCycle è troppo costoso. La versione gratuita di WebOrb per Java esegue solo il servizio remoto.

Immettere GraniteDS. Per quanto posso determinare, è l'unica soluzione gratuita là fuori che ha molte delle funzionalità di gestione dei dati di LiveCycle. Ho iniziato a leggere un po 'la documentazione e all'improvviso mi sento come se fosse un altro pantano di framework che dovrò imparare solo per far funzionare un'applicazione.

Quindi la mia domanda (s) al pubblico StackOverflow è:

1) mi consiglia GraniteDS, soprattutto se il mio attuale di stack Java è primavera + Hibernate?

2) a che punto pensi che inizi a pagare ? Cioè, a quale livello di complessità dell'applicazione ti senti che l'utilizzo di GraniteDS inizia veramente con lo per rendere lo sviluppo più efficace di ? In che modo?

+0

si erano consapevoli che esiste una versione gratuita dei servizi di dati del ciclo dal vivo? http://www.adobe.com/products/livecycle/dataservices/faq.html – AndrewB

+1

La licenza è piuttosto restrittiva ... una CPU. – Boden

+0

Sto affrontando esattamente lo stesso problema esattamente dove è finito? – HDave

risposta

2

Se sei impegnato con Spring e non vuoi presentare Seam, allora non penso che Granite DS ti darà molto al di là di Blaze DS. Esiste un'utilità utile che garantisce che nel client esista solo una singola istanza di una qualsiasi entità in qualsiasi momento, ma in realtà è piuttosto semplice farlo con alcune istanze di Dizionario con riferimenti deboli e alcune elaborazioni successive applicate alle chiamate del server . Un sacco di altre caratteristiche sono Seam-specifici, come accennato qui nella documentazione:

http://www.graniteds.org/confluence/display/DOC/6.+Tide+Data+Framework

In generale, l'approccio di marea è di ridurre al minimo la quantità di codice necessario per far funzionare le cose tra il client e il server. I suoi principi sono molto simili a quelli di JBoss Seam, che è il motivo principale per cui la prima integrazione di Tide è stata fatta con questo framework. Sono disponibili anche le integrazioni con Spring e EJB 3, ma sono un po 'più limitate.

Penso tuttavia che l'approccio di Granite alla gestione dei dati sia un grande miglioramento rispetto a quello di Livecycle perché sono in effetti piuttosto diversi.Dai documenti Granite:

Tutte le interazioni client/server vengono eseguite esclusivamente tramite chiamate di metodo sui servizi esposti dal server e quindi rispettano i limiti di transazione e la sicurezza definiti dai servizi remoti.

Questo è diverso da come Livecycle DS utilizza "Collezioni gestite" in cui si richiama riempimento() per afferrare ampie fasce di dati e quindi richiama commit() per persistere i cambiamenti en-massa. Questo tratta il backend come una API di accesso ai dati non elaborati e inizia a complicarsi (o semplicemente a crollare del tutto) quando si hanno requisiti di sicurezza a grana fine. Quindi penso che l'approccio di Granite sia molto più praticabile.

+0

La gestione dei dati è la funzione che mi interessa di più. Non mi è chiaro dalla documentazione - questa è una funzionalità che funziona correttamente solo con Seam? – Boden

1

Tutte le funzionalità di gestione dei dati (serializzazione di entità distaccate JPA, caching delle entità client, paging dei dati ...) funzionano con Spring. GraniteDS non richiede nulla, hai solo bisogno di Seam se vuoi usare Seam sul server.

0

Hai guardato il progetto di integrazione spring-blazeDS?

+0

Certo, lo sto usando. La mia domanda riguarda GraniteDS, in quanto potrebbe riempire alcune delle funzionalità mancanti di BlazeDS (ad esempio la gestione dei dati). – Boden

0

GraniteDS con Seam Framework, Hibernate e MySql è una combinazione molto bella. Quello che faccio è creare il database, usare seamgen per generare entità di ibernazione e poi lavorare da lì.

1

In realtà, la versione gratuita di WebORB per Java esegue la gestione dei dati. Recentemente ho pubblicato un confronto tra WebORB per Java, LiveCycle DS, BlazeDS e GraniteDS. È possibile visualizzare questo grafico di confronto qui: http://bit.ly/d7RVnJ Sarei interessato ai vostri commenti e feedback in quanto vogliamo che questo sia il confronto di funzionalità più completo sul web.

Cheers, Kathleen

Problemi correlati