2010-08-04 12 views
8

Vorrei creare un'applicazione desktop in Java & tecnologie web. Il motivo principale per selezionare Java è che è gratuito, open source, e quindi il nostro investimento sarebbe minimo e risparmieremmo molti investimenti per quanto riguarda i costi delle licenze, ecc. Inoltre, il motivo principale per selezionare le tecnologie web è perché il nostro attuale i programmatori sono esperti di tecnologie web come HTMl, css, Ajax e abbiamo una buona esperienza nella creazione di un'interfaccia utente straordinaria nelle tecnologie web.È possibile creare un'applicazione desktop utilizzando il backend Java e l'interfaccia utente Web Technologies

Ti darò qualche idea sul software che vorremmo creare. Sarebbe un software basato su desktop, vale a dire qualcosa come un software ERP.

I requisiti chiave sono che ci dovrebbe essere una grande interfaccia utente e dovrebbe essere veloce e non richiede molte risorse.

Ho sentito dire che l'implementazione di una grande GUI è possibile, ma difficile in Java. Può essere fatto ma è complesso, mentre è piuttosto semplice fare lo stesso in Visual Studio, i prodotti Microsoft.

Ho anche controllato Adobe Air, Nokia QT, ecc., Ma sono tutti piuttosto cari per noi e stiamo cercando un'interfaccia utente del browser front-end e un server/database incorporato di back-end utilizzando tecnologie java.

È possibile creare un software desktop in cui l'interfaccia utente viene creata utilizzando le tecnologie web e vi è un server incorporato (come jetty o tomcat) e un database e la programmazione del backend si trova in Java. Come si inserisce JavaFX in questo?

Quindi, in sostanza, l'applicazione desktop avrebbe un browser incorporato (mozilla o un browser java che può essere fornito con il software), ma l'utente finale non dovrebbe mai rendersene conto.

Non vedo l'ora di ricevere un feedback in merito. Potete fornire alcuni esempi di software creato in una combinazione simile di tecnologie web Java +.

Ho studiato alcuni software come PulpTunes & Zimbra che erano lungo linee simili, ma sembrano essere collegati a Internet per visualizzare i dati. Il nostro software sarebbe totalmente un'applicazione desktop offline.

+0

"Abbastanza semplice" contiene solo finché la GUI è piuttosto semplice. –

risposta

0

Hai davvero ragione, java è fantastico se stai sviluppando un progetto da solo.

La codifica del lato server può essere eseguita utilizzando Spring (per MVC, database, ecc.

Per l'interfaccia utente, è possibile utilizzare Spring MVC O JSF O GWT O javaFX. JavaFX fornisce il download JNLP, che viene eseguito su Java e senza browser. controllare il collegamento per ulteriori campioni JavaFX. http://javafx.com/samples/

Quindi è su di te, cosa vuoi usare per lato UI. Se preferisci l'interfaccia utente web (non javaFX intendo), puoi avere molte opzioni.

Per Ajax, sono disponibili librerie che supportano easy ajax. come DWR (Easy Ajax, JS in JAVA) e molte altre librerie JS come yahoo, jQuery ecc. possono essere usate.

spero che questo aiuti.

0

IMHO l'idea di eseguire un server Web solo per creare un'app desktop con js e ajax e roba è orribile ... Ho sentito parlare di Apple-creator Titanium che consente di creare app multipiattaforma usando tecniche web.Ci sono anche altri programmi simili.

Penso che ti ritroverai meglio a comprare un buon strumento di progettazione Swing di wyswing per java ui che ti costerà un paio di centinaia di dollari ma ti farà risparmiare un sacco di problemi di sviluppo. È molto difficile credere che la creazione di una bella app per desktop sia più complicata della stesura di una pagina web.

0

Non ho ricevuto la parte di jetty/tomcat incorporata. Vuoi che l'app desktop esegua un server incorporato che dialoga con il database? Quindi ogni app desktop aprirà una connessione DB?

Perché non disporre di un'app desktop Java che invii richieste HTTP a un server JavaEE che si connette al DB ed elabora le richieste? Quindi, fondamentalmente, un client Java (che potrebbe essere ricco come i tuoi sviluppatori possono farlo) sostituendo un browser. Questo ti dà molta più scalabilità, ecc.

Abbiamo un prodotto simile (anche se molto più complesso) sviluppato usando - Swing + Apache Commons HttpClient sul desktop. Ciò effettua una richiesta POST HTTP con dati binari serializzati sul server. - Un servlet di dispatcher in esecuzione in un contenitore Web che ricrea l'oggetto Java sul server ed esegue la richiesta.

2

Prima di tutto, è possibile. Se stai cercando ad esempio, controlla http://wiki.eclipse.org/Hudson-ci/Meet_Hudson. È possibile ottenere un'architettura di base se si scava nel loro codice. Non usa alcun db incorporato. Stai dicendo che la tua applicazione sarà sempre offline, in tal caso ti suggerisco di andare per pura applicazione desktop usando tecnologie come lo sviluppo di plugin Eclipse.

Se hai già fatto la tua mente, qui ci sono alcuni punti che possono aiutare in base alla mia esperienza con l'applicazione simile,

  1. Anche se l'applicazione non è in linea (presumo, l'applicazione non ha bisogno di collegarsi a qualsiasi server per ogni caso d'uso ma la macchina utente può accedere a Internet), è necessario fornire modifiche (ad esempio, modificare la pagina html o jsp)/correggere gli errori in modo trasparente all'utente finale. JNLP/Java web start è adatto per questo.

  2. Se si sta utilizzando il metodo di installazione JNLP, il programma di avvio deve occuparsi dell'installazione e delle porte di db incorporate nel computer dell'utente finale (questo è un grosso problema di quello che appare).

  3. Inoltre, se si avvia il server (nel mio caso, il Jetty) tramite JNLP, si verificheranno errori di caricamento di classe dovuti a problemi di autorizzazione. Preparati a scavare attraverso il codice del server. L'ho fatto molto tempo fa e non ho il codice ora per indicare i problemi esatti.

  4. Mostra barre di avanzamento durante il processo di installazione e durante l'avvio dell'applicazione. L'implementazione della tua guerra richiede un po 'di tempo e l'utente ha bisogno di sapere che l'applicazione è in fase di avvio. Finirai per scrivere un'interfaccia utente swing.

  5. Avviare l'URL dell'applicazione automaticamente nel browser predefinito del sistema utente, dopo l'avvio dell'applicazione. Non hai bisogno del browser integrato. Controlla http://java.sun.com/developer/technicalArticles/J2SE/Desktop/javase6/desktop_api/.

  6. Ho usato MySql come base dati incorporata. Controllare Embedding mysql in java desktop application. Ha funzionato per me, non ho incontrato problemi.
0

Probabilmente mi prenderò per questo, ma suggerisco JavaFX per questo. Abbiamo implementato con successo un'applicazione JavaFX per uso interno in un'azienda più grande.I vantaggi sono che il software è "controllato" sul lato server (quindi nessuno avrà una versione "vecchia"). Lo sforzo di installazione è minimo (Java Web Start corregge questo per te, provocherà anche un'installazione minima di JRE se non ce ne sono) e, ultimo ma non meno importante, JavaFX può essere eseguito nel browser e come applicazione desktop allo stesso modo senza dover cambiare il codice.

Adobe FLEX è un altro contendente, ma manca del bit "Web Start" e non è altrettanto flessibile quando si tratta di migrare facilmente tra browser e desktop.

In ogni caso, JavaFX non è abbastanza caratteristica completo come FLEX ma la versione 1.3 può essere considerato battaglia pronto ed è possibile creare roba pulita con i plugin JavaFX gratuiti per Adobe Creative Suite (se la vostra applicazione conterrà qualsiasi grafica, che è) .

0

Stiamo cercando di fare una cosa molto simile. Abbiamo un'applicazione Java esistente. Abbiamo testato questo in esecuzione su un sistema desktop installato con Jetty e MySql. Con il browser Chrome in modalità "app" sembra proprio come un'applicazione desktop.

Stiamo esaminando questo approccio come un modo per implementare una versione offline multipiattaforma (pc/mac/linux) della nostra esistente applicazione web online matura. Mi piacerebbe sapere se qualcuno conosce progetti simili o può attirare l'attenzione sull'idea di eseguire un server di applicazioni per un'applicazione desktop. Il nostro obiettivo è, ovviamente, avere essenzialmente una base di codice per l'implementazione sia del server che del desktop con variazioni protette ove necessario.

1

Sì, è possibile. Vedi demo https://github.com/jreznot/electron-java-app. Lì troverai un modo semplice per costruire un'applicazione basata su Electron su Java, senza compilazione su JS, solo l'applicazione Java all'interno dell'istanza di Jetty incorporata con l'interfaccia utente di Vaadin.