Ich möchte eine Desktop-Anwendung in Java & amp; Webtechnologien. Der Hauptgrund für die Auswahl von Java ist, dass es frei ist, Open Source, und daher unsere Investition minimal wäre und wir viel in Bezug auf Lizenzkosten usw. sparen würden. Der Hauptgrund für die Auswahl von Web-Technologien liegt auch in unserer aktuellen Programmierer sind mit Web-Technologien wie HTML, CSS, AJAX vertraut und wir haben gute Erfahrung in der Erstellung erstaunlicher UI in Web-Technologien.
Ich werde Ihnen eine Idee über die Software geben, die wir erstellen möchten. Es wäre eine Desktop-basierte Software, etwa so etwas wie eine ERP-Software.
Die wichtigsten Anforderungen sind, dass es eine großartige Benutzeroberfläche geben sollte, die schnell und nicht sehr ressourcenintensiv sein sollte.
Ich habe gehört, dass die Implementierung einer großartigen GUI zwar möglich, aber in Java schwierig ist. Es ist zwar möglich, aber komplex, während es in Visual Studio, Microsoft-Produkten, ziemlich einfach ist.
Ich habe auch Adobe Air, Nokia QT usw. überprüft, aber alle sind ziemlich teuer für uns und wir suchen Front-End Browser UI und Backend Embedded Server / Datenbank mit Java-Technologien.
Ist es möglich, eine Desktop-Software zu erstellen, in der die Benutzeroberfläche mithilfe der Webtechnologien erstellt wird und ein eingebetteter Server (wie Jetty oder Tomcat) und Datenbank vorhanden ist und die Back-End-Programmierung in Java erfolgt. Wie passt JavaFX dazu?
Im Grunde genommen hätte die Desktop-Anwendung einen eingebetteten Browser (Mozilla oder einen Java-Browser, der mit der Software gepackt werden kann), aber der Endnutzer sollte dies niemals realisieren.
Ich freue mich darauf, Feedback dazu zu bekommen. Können Sie bitte einige Beispiele für Software nennen, die in einer ähnlichen Kombination von Java + Web-Technologien erstellt wurde.
Ich habe einige Software wie PulpTunes & amp; Zimbra, die in ähnlichen Linien waren, aber sie scheinen sich mit dem Internet zu verbinden, um Daten anzuzeigen. Unsere Software wäre vollständig eine Offline-Desktop-Anwendung.
Zunächst ist es möglich. Wenn Sie zum Beispiel suchen, überprüfen Sie Ссылка . Sie können grundlegende Architektur erhalten, wenn Sie in ihren Code eintauchen. Es verwendet keine eingebettete Datenbank. Sie sagen, Ihre Anwendung wird immer offline sein, in diesem Fall schlage ich vor, dass Sie für reine Desktop-Anwendung mit Technologien wie Eclipse-Plugin-Entwicklung gehen.
Wenn Sie sich bereits entschieden haben, hier sind einige Punkte, die Ihnen basierend auf meiner Erfahrung mit ähnlichen Anwendungen helfen können,
Obwohl Ihre Anwendung offline ist (ich nehme an, Ihre Anwendung muss für keinen Anwendungsfall eine Verbindung mit einem Server herstellen, aber der Benutzercomputer kann auf das Internet zugreifen), müssen Sie Änderungen übermitteln (z. B. in html oder jsp ändern) Seite) / Bugfixes transparent für Endbenutzer. JNLP / Java Web Start ist eine gute Lösung dafür.
Wenn Sie JNLP installieren möchten, sollte Ihr Launcher die Installation der eingebetteten Datenbank und die Ports auf dem Endbenutzer-Rechner übernehmen (das ist ein großes Problem, als es erscheint).
Auch wenn Sie den Server (in meinem Fall Jetty) über JNLP starten, werden Sie aufgrund von Berechtigungsproblemen auf Ladefehler stoßen. Bereiten Sie sich darauf vor, durch den Servercode zu graben. Ich habe es vor langer Zeit gemacht und ich habe jetzt keinen Code, um genaue Probleme zu zeigen.
Fortschrittsbalken während des Installationsprozesses und während des Starts der Anwendung anzeigen Ihre War-Bereitstellung benötigt etwas Zeit und der Benutzer muss wissen, dass die Anwendung gerade gestartet wird. Sie werden am Ende eine Swing UI schreiben.
Starten Sie die URL der Anwendung automatisch im Standardbrowser des Benutzersystems nach dem Start der Anwendung. Sie benötigen keinen eingebetteten Browser. Überprüfen Sie Ссылка .
Sie haben wirklich recht, Java ist großartig, wenn Sie ein Projekt selbst entwickeln.
Die serverseitige Codierung kann mit Spring (für MVC, Datenbank usw. ... Sehr reichhaltiges und leichtgewichtiges Framework, leicht zu erlernen und zu verstehen) mit Hibernate (ORM-Framework für die Datenbankbehandlung, bietet Dialekte für jeden Datenbankserver) erfolgen / p>
Für die Benutzeroberfläche können Sie Spring MVC OR JSF ODER GWT OR javaFX verwenden. JavaFX bietet JNLP-Download, der auf Java und ohne Browser läuft. Überprüfen Sie den Link auf weitere JavaFX-Beispiele. Ссылка
So ist es auf Sie, was Sie für die UI-Seite verwenden möchten. Wenn Sie Web-UI bevorzugen (Nicht javaFX ich meine), dann können Sie viele Optionen haben.
Für Ajax werden Sie Bibliotheken haben, die easy ajax unterstützen. wie DWR (Easy Ajax, JS zu JAVA) und viele andere JS-Bibliotheken wie Yahoo, jQuery usw. können verwendet werden.
hoffe das hilft.
IMHO die ganze Idee, einen Web-Server zu laufen, nur um eine Desktop-App mit js und ajax und Sachen zu erstellen, ist schrecklich ... Ich hörte von Apple-creator Titanium , mit dem sich plattformübergreifende Apps mittels Web-Techniken erstellen lassen. Es gibt auch andere ähnliche Programme.
Ich denke, du wirst am Ende besser ein gutes Wingswing-Design-Tool für Java kaufen, das dich ein paar hundert Dollar kosten wird, aber dir viele und viele Entwicklungsschwierigkeiten ersparen wird. Es ist sehr schwer zu glauben, dass das Layout einer schönen Desktop-App komplizierter ist als das Layout einer Webseite.
Ich habe den Embedded Jetty / Tomcat Part nicht bekommen. Sie möchten, dass die Desktopanwendung einen eingebetteten Server ausführt, der mit der Datenbank kommuniziert? Also würde jede Desktop-App eine DB-Verbindung öffnen?
Warum haben Sie keine Java-Desktop-App, die HTTP-Anforderungen an einen JavaEE-Server sendet, der eine Verbindung zur Datenbank herstellt und die Anforderungen verarbeitet? Im Grunde genommen kann ein Java-Client (der so reichhaltig sein könnte wie Ihre Entwickler) einen Browser ersetzen. Dies gibt Ihnen viel mehr Skalierbarkeit, etc.
Wir haben ein ähnliches (wenn auch viel komplexeres) Produkt entwickelt - Swing + Apache Commons HttpClient auf dem Desktop. Dies macht eine HTTP-POST-Anfrage mit serialisierten Binärdaten an den Server. - Ein Dispatcher-Servlet, das in einem Web-Container ausgeführt wird, der das Java-Objekt auf dem Server neu erstellt und die Anforderung ausführt.
Ich werde wahrscheinlich dafür stoned, aber ich schlage JavaFX dafür vor. Wir haben erfolgreich eine JavaFX-Anwendung für den internen Gebrauch in einem größeren Unternehmen implementiert. Der Vorteil ist, dass die Software auf der Serverseite "kontrolliert" wird (also niemand wird eine "alte" Version haben). Der Installationsaufwand ist minimal (Java Web Start behebt dies für Sie, es wird sogar eine minimale JRE-Installation ausgelöst, wenn keine existiert) und nicht zuletzt kann JavaFX im Browser und als reine Desktop-Anwendung ausgeführt werden, ohne dass Änderungen erforderlich sind der Code.
Adobe FLEX ist ein weiterer Kandidat, aber es fehlt das "Web Start" -Bit und es ist nicht so flexibel, wenn es um einfache Migration zwischen Browser und Desktop geht.
Wie auch immer, JavaFX ist nicht komplett mit FLEX ausgestattet, aber Version 1.3 kann als kampfbereit angesehen werden und Sie können mit den kostenlosen JavaFX-Plugins für Adobe Creative Suite saubere Sachen erstellen (wenn Ihre App irgendwelche Grafiken enthält).
Wir versuchen, eine sehr ähnliche Sache zu machen. Wir haben eine bestehende Java Web Application. Wir haben das auf einem Desktop-System getestet, das mit Jetty und MySql installiert wurde. Mit dem Chrome-Browser im "App" -Modus sieht es wie eine Desktop-Anwendung aus.
Wir prüfen diesen Ansatz, um eine plattformübergreifende (pc / mac / linux) Offline-Version unserer bestehenden ausgereiften Online-Webanwendung zu implementieren. Ich würde gerne hören, wenn jemand von ähnlichen Projekten weiß oder irgendwelche Löcher in der Idee stecken könnte, einen Anwendungsserver für eine Desktop-Anwendung zu betreiben. Unser Ziel ist natürlich, im Wesentlichen eine Codebasis für die Server- und Desktop-Implementierung mit geschützten Varianten zu haben, wo dies notwendig ist.
Tags und Links java desktop browser embedded-jetty