Ist es möglich, Desktop-Anwendung, die mit Java backend & Web-UI-Technologien
Ich möchte erstellen Sie eine desktop-Anwendung in Java & web-Technologien. Der Hauptgrund für die Auswahl von Java ist, dass es ist kostenlos, open source, und damit unsere Investitionen wären minimal, und wir sparen würden viele Investitionen mit Bezug auf Lizenzkosten, etc. Auch, der Hauptgrund für die Auswahl von web-Technologien ist, weil unsere aktuellen Programmierer sind versiert mit web-Technologien wie HTMl, css, Ajax, und wir haben gute Erfahrung in der Erstellung von erstaunlichen Benutzeroberfläche in web-Technologien.
Gebe ich Ihnen einen überblick über die software, die wir erstellen möchten. Es wäre eine desktop-basierte software, nämlich so etwas wie eine ERP-software.
Die wichtigsten Anforderungen sind, dass es eine tolle Benutzeroberfläche-und es sollte schnell und nicht sehr Ressourcen-intensiv.
Ich habe gehört, dass die Umsetzung eine große GUI ist möglich, aber schwierig in Java. Es kann getan werden, aber ist Komplex, in der Erwägung, dass es ist ziemlich einfach zu tun, das gleiche in Visual Studio, Microsoft-Produkte.
Habe ich auch überprüft, Adobe Air, Nokia QT, etc, aber Sie alle sind ziemlich teuer für uns, und wir suchen nach front-end-browser-UI und back-End-embedded-server/Datenbank mit Hilfe von java-Technologien.
Ist es möglich, erstellen Sie eine desktop-software, in der die UI wird erstellt unter Verwendung der web-Technologien und es ist ein embedded-server (wie jetty oder tomcat) und Datenbank-und backend-Programmierung in Java. Wie funktioniert JavaFX passen in diese?
Also im Grunde, die desktop-Anwendung über einen eingebetteten browser (mozilla oder einige java-browser können Sie im Lieferumfang der software), aber der end-Benutzer sollte nie erkennen.
Ich freue mich auf feedback über das gleiche. Können Sie bitte einige Beispiele von software erstellt, die in eine ähnliche Kombination von java + web-Technologien.
Habe ich die Untersuchung einige Software wie PulpTunes & Zimbra, die sich entlang ähnlichen Linien, aber Sie scheinen eine Verbindung zum internet, um Daten anzuzeigen. Unsere software ist absolut ein offline-desktop-Anwendung.
- "Ziemlich einfach" hält nur so lange, wie die GUI selbst ist ziemlich einfach.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erste von allen, es ist möglich. Wenn Sie auf der Suche zum Beispiel, überprüfen Sie http://wiki.eclipse.org/Hudson-ci/Meet_Hudson.
Sie können die grundlegende Architektur, wenn Sie Graben sich in Ihre code. Es verwendet keine embedded db.
Sie sagen, Ihre Anwendung wird immer offline sein, in diesem Fall schlage ich vor, Sie gehen für Reine desktop-Anwendung, die mithilfe von Technologien wie Eclipse-plugin-Entwicklung.
Wenn Sie bereits Ihren Verstand, sind hier einige Punkte, die Ihnen helfen können, basierend auf meinen Erfahrungen mit einer ähnlichen Anwendung,
Obwohl Ihre Anwendung ist offline(ich nehme an, Ihre Anwendung brauchen nicht eine Verbindung zu einem server für jeden Anwendungsfall, aber die user-Maschine auf das internet zugreifen kann ), müssen Sie liefern änderungen(Z. B. ändern Sie im html-oder jsp-Seite )/bug fixes transparent für Ende-Benutzer. JNLP/Java web start ist eine gute Passform für diese.
Wenn Sie sich für JNLP-Art der Installation, Sie launcher sollte sich darum kümmern, embedded-db installation und Anschlüsse an der end-user-Maschine(dies ist ein großes problem, als es erscheint).
Auch wenn Sie die Einleitung-server(in meinem Fall, Jetty) durch JNLP, kommen Sie über Class loading-Fehler aufgrund von Berechtigungsproblemen. Bereit sein, zu Graben, durch server-code. Ich habe es vor langer Zeit getan und ich habe keine code nun zu Punkt genaue Fragen.
Zeigen Fortschrittsbalken während der installation und während dem Start der Anwendung. Ihr Krieges-Bereitstellung einige Zeit in Anspruch nimmt und den Bedürfnissen der Nutzer einige wissen, dass Sie auf Anwendung startup ist im Gange. Sie werden am Ende schriftlich einige swing-UI.
Start-URL der Anwendung automatisch im Standard-browser des Benutzers system, nach dem Start der Anwendung. Sie brauchen keine eingebetteten browser.Überprüfen Sie http://java.sun.com/developer/technicalArticles/J2SE/Desktop/javase6/desktop_api/.
Ja, es ist möglich. Sehen https://github.com/jreznot/electron-java-app demo. Dort finden Sie eine einfache Methode zum erstellen von Elektron-basierte Anwendung, die auf Java ohne Kompilierung JS, nur Java-Anwendung in embedded-Jetty-Instanz mit Vaadin UI.
Du wirklich Recht, java ist toll, wenn Sie die Entwicklung eines Projekts von selbst.
Server-side-Programmierung kann durchgeführt werden mit Feder (Für MVC, Datenbank etc...Sehr Reich und ligthweight Rahmen, einfach zu erlernen und zu verstehen) mit hibernate(ORM framework für Datenbank-handling, bietet Dialekte für jeden Datenbank-server).
Für die Benutzeroberfläche, die Sie verwenden können, Spring-MVC ODER JSF ODER GWT, ODER javaFX. JavaFX bietet JNLP herunterladen, die läuft auf java und ist ohne browser. überprüfen Sie den link für mehr JavaFX samples. http://javafx.com/samples/
So seine auf Sie, was Sie verwenden möchten, für die UI-Seite. Wenn Sie lieber web-UI (Nicht javaFX ich meine), dann können Sie viele Optionen.
Für Ajax, haben Sie Bibliotheken, die Unterstützung der einfachen ajax. wie DWR (Easy Ajax, JS, JAVA) und viele andere JS-Bibliotheken wie yahoo, jQuery etc.. verwendet werden kann.
hoffe, das hilft.
IMHO die ganze Idee mit einem web-server, nur um das erstellen eines desktop-app mit js und ajax und sowas ist schrecklich... ich hörte Apple-Schöpfer Titan, die ermöglicht das erstellen plattformübergreifende apps mit web-Techniken. Es gibt einige andere ähnliche Programme auch.
Denke ich, werden Sie besser dran Kauf eine gute wyswing Swing-design-tool für java-ui die kostet paar hundert Dollar, aber sparen Sie viel Entwicklung Schwierigkeiten. Es ist sehr schwer zu glauben, dass über ein nettes desktop-app ist komplizierter, als Verlegung aus einer web-Seite.
Ich hatte nicht den embedded jetty/tomcat Teil. Sie möchten, dass die desktop-app zum ausführen eines eingebetteten Servers, dass die Gespräche der Datenbank? Damit jeder desktop-app öffnen einer DB-Verbindung?
Warum nicht ein Java-desktop-app, die sendet HTTP-Anfragen an einen Java ee-server stellt die Verbindung zu der DB und bearbeitet die Anfragen? Also im Grunde, einen Java-client (das könnte so Reich, wie Ihre Entwickler es schaffen kann) ersetzt ein browser. Dies gibt Ihnen viel mehr Skalierbarkeit, etc.
Haben wir eine ähnliche (wenn auch wesentlich komplexer) Produkt entwickelt, mit
- Swing + Apache Commons HttpClient auf dem desktop. Dies macht eine HTTP POST-Anforderung mit serialisierten, binären Daten an den server.
- Ein dispatcher-servlet läuft in einem web-container, bildet das Java-Objekt auf dem server und führt die Anfrage.
Werde ich wahrscheinlich gesteinigt, aber ich schlage vor, JavaFX für diese. Wir haben erfolgreich eine JavaFX-Anwendung für den internen Gebrauch in einem größeren Unternehmen. Die Vorteile sind, dass die software "kontrolliert" auf der server-Seite (so, niemand wird eine "alte" version). Der Installation-Aufwand ist minimal (Java Web Start behebt dies für Sie, es wird sogar auslösen einer minimalen JRE-installation, wenn keine vorhanden sind) und last but not least, JavaFX können im browser ausgeführt werden und als Reine desktop-Anwendung gleichermaßen, ohne den code zu ändern.
Adobe FLEX ist ein weiterer Anwärter, aber es fehlt die "Web Start" - bit und ist nicht ganz so flexibel, wenn es um die einfache migration zwischen browser und desktop.
Sowieso, JavaFX ist nicht ganz feature complete FLEX aber version 1.3 kann als Kampf-bereit und Sie können nette Dinge mit der kostenlosen JavaFX-Plug-ins für Adobe Creative Suite (wenn die app enthält Grafiken, das ist).
Suchen wir eine sehr ähnliche Sache. Wir haben eine bestehende Java-Web-Anwendung. Wir haben getestet, läuft diese auf einem desktop-system installiert, mit Steg und MySql. Mit dem Chrome-browser im "app" Modus sieht es wie eine desktop-Anwendung.
Suchen wir in diesem Ansatz als eine Möglichkeit zur Implementierung einer cross-Plattform (pc/mac/linux) - offline-version unserer bestehenden Reifen-online-web-Anwendung. Ich würde gerne hören, ob jemand weiß, ähnliche Projekte oder kann poke Löcher in die Idee, einen Anwendungs-server für eine desktop-Anwendung. Unser Ziel war, natürlich, um im wesentlichen eine code-Basis für sowohl die server-und desktop-Implementierung mit Varianten, soweit erforderlich.