Domanda

Recentemente abbiamo iniziato a sviluppare un'applicazione desktop Java e la direzione ha chiesto che ci avvaliamo di Rich Client Platform. So di quattro per Java e cioè:

  1. Eclipse RCP - link www a ecipse RCP ,
  2. Netbean RCP - Netbeans RCP sito web ,
  3. Primavera RCP - rich client primavera
  4. Valkyrie RCP - Valkyrie rich client

Qualcuno ha avuto alcuna esperienza in uno di questi e se si quali sono la forza e la weaknesess di ciascuno?

grazie

È stato utile?

Soluzione

Vi consiglio di dare un'occhiata a JSR 296 - non è ancora completo da qualsiasi tratto, ma penso che colpisce il punto dolce per fornire alcune funzionalità di base che si ha realmente, realmente bisogno in ogni applicazione Java GUI, senza forzare te di vivere in un quadro eccessivamente complicato.

Ho usato JSR 296 con successo per creare un medie dimensioni dell'applicazione. Per il layout della finestra in questa applicazione, usiamo MyDoggy (altamente consigliato). Per la gestione di layout, usiamo MiGLayout (Al di là altamente consigliato). Per l'associazione dati, usiamo una forma modificata di JSR 295 (abbiamo implementato qualcosa di simile a PresentationModel in cima di JSR 295 che usiamo per il nostro legame GUI). Sono nel processo di integrazione Guice come meccanismo DI ma non ho finito quello sforzo (finora, penso che sarà 'giocare bene' con JSR 296 con un tweak qua e là). Vediamo ... la persistenza è il grande anello mancante qui - Attualmente sto valutando semplice per la persistenza XML, ma sono incorrere in problemi con a farla funzionare con i contenitori dI come Guice. Ho Betwixt di lavoro, ma le dipendenze Betwixt sono enormi e quindi siamo alla ricerca di qualcosa di più snella.

Opinioni su altre opzioni RCP per Java:

NetBeans: Ho alcune obiezioni filosofiche fondamentali per l'approccio utilizzato da NetBeans (troppi progettazione anti-modelli per i miei gusti). Alla fine, le forze quadro di prendere decisioni progettuali poveri - ed è quasi impossibile da usare se non si utilizza NetBeans come IDE (ho provato, ma io non riuscivo a passare da Eclipse per NB). E 'probabilmente solo a me, ma sembra che dovrebbe essere possibile per scrivere il codice per un quadro RCP senza l'utilizzo di grandi maghi complicate e risme di codice ei file XML generati automaticamente. Ho passato tante ore la risoluzione dei problemi vecchio codice Visual C ++ generato da Visual Studio che sono estremamente diffidenti di qualsiasi quadro che non può essere codificato a mano.

Spring RCP: La gente a primavera hanno un buon design solido, ma la documentazione è molto, molto debole. E 'piuttosto difficile arrivare fino a velocità su di esso (ma una volta fatto, è possibile ottenere le cose fatte abbastanza rapidamente).

Eclipse RCP: Non ho usato Eclipse solo a causa del sovraccarico di distribuzione (dipende dal vostro target di riferimento - per noi, la distribuzione di un extra di 50 MB di autonomia semplicemente non ha funzionato). Senza dubbio Equinox è una bella cosa se la vostra applicazione ha bisogno di funzionalità significativa plug-in (ovviamente, è possibile eseguire Equinox con JSR 296 pure, o utilizzare modelli di progettazione simili al modello Lavagna promosso da OSGi).

Altri suggerimenti

INTRO - skip se siete solo interesterd nel risultato;)
Stavo sviluppando un editor per un linguaggio di programmazione personalizzato molto simili a JSP. In primo luogo ho implementato l'editor come la mia tesi di laurea utilizzando la piattaforma NetBeans . Dopo aver finito la scuola ho un lavoro e volevano che implementare la stessa cosa in Eclipse RCP , così ora posso confrontare queste due piattaforme almeno in roba che stavo affrontando durante questo progetto.

RISULTATO - Se avessi una scelta tra la piattaforma Netbeans ed Eclipse RCP, vorrei definitelly scegliere una piattaforma NetBeans . Perché?
Grandi screencast, buoni tutorial, comunità accogliente e disponibile molto attivo, molto ben documentati e il codice sorgente è scritto bene e con le convenzioni del buon codice. Ha anche alcuni gadget interessanti (biscotti, di ricerca). E 'adatta a me semplicemente.

E perché Eclipse RCP non fa per me?
La documentazione è più debole e le convenzioni e le API sono sometimes..ehm..too strano per me :-) E 'abbastanza ususal vedere metodi come:

/**
* Returns a description of the cursor position.
*
* @return a description of the cursor position
* @since 2.0
*/
protected String getCursorPosition() {
..
}

Beh, ho pensato che mi devono essere scherzando :-D Come faccio a usare questo metodo? O come questa:

/**
* Returns the range of the current selection in coordinates of this viewer's document.
*
* @return a <code>Point</code> with x as the offset and y as the length of the current selection
*/
Point getSelectedRange();

Anche se il numero e il tipo di attributi Fitts, che non trovano la struttura di dati ideale oggetto Point per la memorizzazione di gamma; -)

Ci sono numeri di theese tali surpises in Eclipse RCP

Troppo tardi per rispondere, ma alcuni ragazzi potrebbero colpire questa pagina.

vorrei andare per Netbeans RCP, 1) la piattaforma Netbeans. è abbastanza maturo e si è evoluto è un 'facile da usare' piattaforma per lo sviluppo di applicazioni.

2) È molto facile per iniziare con, mentre la curva di apprendimento di Eclipse RCP è piuttosto ripida. Proprio goto, http://netbeans.org/kb/trails/platform.html , lì si tutorial, video (non guardare i migliori 10 video di API e provare tutorial prima di leggere i libri, in questo modo si otterrà un blocco delle cose in anticipo).

3) Libri di NetBeans RCP (Credo che ci sono 2 su NetBeans RCP) sono uptodate (piccole modifiche solo che non avrai problemi con molto). mentre il libro principale sulla RCP non era disponibile per un lungo periodo di tempo (di recente .che è, maggio 2010, la nuova edizione è stato rilasciato, così che è una cosa molto buona per gli sviluppatori Eclipse RCP. Non era lì quando stavo cercando per imparare. ottengo frustrato con gli autori che non pubblicano nuove edizioni, quasi lasciando nuovi sviluppatori in asso. non a tutti piace leggere documenti. non la pubblicazione di libri aggiornato quasi equivale a uccidere la tecnologia). Mi piacerebbe vedere un libro tipo di libro di cucina per entrambe le piattaforme.

4) Netbeans ha pieno GUI builder integrato, che è grande vantaggio. Eclipse RCP, né è necessario il codice a mano o comprare un po 'di terze parti builder GUI.

5) la piattaforma Netbeans ha questa API di ricerca piuttosto fresco per la comunicazione intermodulo. Credo che i ragazzi usano Eclipse punti di estensione per questo scopo. Ma lookup api è facile una volta che si ottiene un blocco di esso.

6) In ogni modo, è un grande decisione di progettazione, su quale piattaforma per scegliere. la piattaforma Netbeans funziona per me. Potrebbe non funzionare per voi. Sia la piattaforma richiede sforzi, forniscono entrambi meraviglioso 'out of the box' caratteristiche. Test drive entrambi e poi decidere.

Ho esperienza con l'Eclipse RCP e lo consiglio.

Pro:

  • Componenti - Componente / plu-in modello consente per il riutilizzo.
  • SWT e JFace che consente nativa cercando UI
  • Pluggable Visto, editori e prospettive rendono layout semplice e configurabile.
  • Eclipse punti di estensione rendono l'estensione e l'integrazione con le API 3rd party e strumenti facili.

Contro:

  • curva di apprendimento

Se si sceglie Eclipse RCP, con aria di sfida ottenere questo libro, è invaluble quando appena agli inizi con il quadro: http://www.amazon.com/Eclipse-Rich-Client-Platform-Applications/dp/0321334612

Al momento sto sviluppando un'applicazione primavera RCP. La documentazione è veramente debole, questo è sicuro, ma i blog e forum hanno una buona quantità di informazioni per andare avanti. Una volta che si ottiene di crociera, le cose si muovono abbastanza veloce ed è davvero solo bisogno di imparare Primavera di base se non si ha familiarità con il quadro. Le integrazioni con librerie di primavera, come VLDocking è eccellente.

Credo primavera Rich è grande se il vostro caso d'uso è quello di sviluppare un applicazione stand-alone Java Desktop. Quello che voglio dire è che se non hai bisogno di distribuire i moduli e fare gli aggiornamenti on-line allora dovrebbe soddisfare la maggior parte delle esigenze.

Anche se non ho usato esplicitamente nessuno di loro, ho usato porzioni di Eclipse RCP. In particolare, ho usato il runtime Eclipse OSGi (Equinox) e alcuni programmi di utilità comuni e non ho molto soddisfatto. OSGi è fantastico con cui lavorare. Ho diversi amici su grandi contratti che utilizzano Eclipse RCP (oltre che uso io) e loro erano entusiaste.

Se il mio progetto non conteneva un gran monte di eredità swing, Eclipse RCP sarebbe la mia prima scelta. OSGi è proprio così divertente! (Immagino Spring usa troppo, non si sono verificati però)

Naturalmente tutto dipende dal tipo di applicazioni e servizi che si desidera offrire, e l'ambiente di destinazione. Ma posso anche consigliare OSGi come piattaforma di sviluppo e la distribuzione. L'architettura sottostante e le specifiche sono molto ben sviluppati e collaudati.

Oltre della Eclipse RCP si dovrebbe avere uno sguardo a Apache Felix ( http://felix.apache.org ) e Knopflerfish ( http://www.knopflerfish.org ), che sono (minore) open source OSGi implementazioni quadro.

Dal mio punto di vista dell'utente finale.

Ho visto più implementazioni in Eclipse che negli altri due. In realtà ho so Netbeans implementazioni, ma mai avuto uno tra le mani.

Dalla primavera questa è la prima volta che ho sentito parlare.

Mentre la mia risposta è sicuramente un super vista 10.000 piedi, si riflette in qualche modo la preferenza del settore aveva avuto su come utilizzare uno o l'altro.

Inoltre, la differenza è proporzionale al tempo della piattaforma è disponibile. Ricordate Eclipse creare SWT per risolvere i problemi Java Swing aveva indietro nel 1.3 dove è stato semplicemente prohibitely lento.

Netbeans sono stati molto beneficiato dai miglioramenti JVM e ora corre molto molto veloce.

La primavera è ancora giovane (rispetto agli altri due), ma, come sempre, le cose nuove imparare dal primo, è probabile che sia più semplice da usare.

Ecco un articolo su questi due piattaforma Eclipse RCP vs Netbeans RCP. Può essere utile

http://blogs.oracle.com/geertjan/entry/eclipse_platform_vs_netbeans_platform

Netbeans RCP è eccellente. Il suo percorso una lunga strada nel corso degli anni. Esso utilizza una tecnologia più robusta ( 'Swing') che molte persone usano e capire. Eclipse RCP (più precisamente SWT) mi confonde.

Eclipse RCP fornisce meccanismo di plug-in in modo che è possibile aggiungere nuove funzioni in seguito alla distribuzione. Inoltre tramite il meccanismo di aggiornamento è possibile modificare il sistema senza intervento da parte dell'utente. Nella fase di sviluppo, Eclipse RCP fornisce un facile, terreno robusto con meccanismi prospettive, viste, editori, di comando e di azione. Se il progetto richiede molte finestre differenti con differenti barra degli strumenti e menu (e anche i menu contesto personalizzato) vi consiglio di utilizzare Eclipse RCP. Posso controllare solo i video di Netbeans Platform ed eseguire il progetto Helloworld ma sembra lenti e impacciati :) 40 secondi per start-up (è possibile ricaricare l'applicazione se w / o riavvio.) Vogella.de è una buona collezione di tutorial per Eclipse RCP

C'è anche la generazione UI riflessione basata e personalizzazione.

Invece di personalizzazione di un IDE per soddisfare le vostre esigenze, potrete personalizzare una GUI generato per impostazione predefinita. Può essere interessante provare un nuovo approccio.

https://github.com/dotxyteam/ReflectionUI

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