Ergebnis 1 bis 14 von 14

Programmiersprache / Framework für Cross-Plattform-GUI-Anwendung

  1. #1 Zitieren
    Knight Avatar von Kalkihe
    Registriert seit
    Jan 2008
    Ort
    Kerlsruhe
    Beiträge
    1.579
    Hallo zusammen,

    für eine Arbeit an der Hochschule möchte ich ein Tool implementieren, mit auf welchem Daten eingegeben und diese angezeigt werden soll. Die Daten sollen lokal in einem beliebigen Format gespeichert werden können.

    Knackpunkt an der ganzen Geschichte ist, dass ich diese Applikation gerne mit geringstmöglichem Aufwand für mehrere Betriebssysteme verwendbar machen möchte. Primär hatte ich da jetzt an Windows und Linux-Derivate wie Debian, Ubuntu gedacht. Nun suche ich eben ein entsprechendes Framework bzw. die entsprechenden Tools und Programmiersprachen, um dies umzusetzen.

    Nun die Frage an euch: Habt ihr mit so etwas bereits Erfahrungen gemacht, die ihr mit mir teilen könntet?

    Ich habe vor langer Zeit mal ein wenig mit Qt/C++ rumgespielt, das sollte das ja auch realisieren können, richtig? Hat damit jemand erfahrungen gemacht? Für C# gibt es in Linux ja Mono, vielleicht wäre das auch eine Alternative? Oder ganz simples Java? Was meint ihr?

    Danke im Voraus für die Hilfe.
    Zitat Zitat von Matteo Beitrag anzeigen
    Gewagte These: Ein Bewohner von Kalkihes Wohnheim arbeitet offensichtlich in Professor Hunts Unternehmen.
    Kalkihe ist offline

  2. #2 Zitieren
    Halbgott Avatar von Progrinator
    Registriert seit
    Apr 2018
    Ort
    München
    Beiträge
    9.174
    Ansich geht alles, wenn du es auf dem jeweiligen System Compelierst, aber ansonsten, wäre C# und Java davon unabhängig, da bei beiden, eine entsprechende Zwischenschicht vorhanden ist.

    Gerade bei verschiedene Betriebssysteme muss du halt aufpassen, dass die Eigenheiten der Betriebssysteme durch eine entsprechende gestaltung des Programmes auffängst.
    Progrinator ist offline

  3. #3 Zitieren
    Ritter Avatar von TheLongestDay
    Registriert seit
    Jul 2008
    Beiträge
    1.441
    Was für Daten sind das und wie sollen die angezeigt werden? Wenn das Anzeigen (mit Grafiken oder so?) der wichtige Teil ist, kannst du ja danach gehen, wo eine entwicklerfreundliche GUI/Grafik-Bibliothek zur Verfügung steht. Bei Java gibt es da einiges. Bei C# bestimmt auch, wobei ich mich da nicht auskenne, habe damit bisher nur native Windows Apps gemacht. Soll die Anwendung verteilt sein, damit mehrere Leute auf dieselben Daten zugreifen können etc?
    TheLongestDay ist offline

  4. #4 Zitieren

    Batmanistrator
    Avatar von Thoronador
    Registriert seit
    Jul 2005
    Ort
    Morrowind, Vvardenfell-Distrikt
    Beiträge
    20.426
    Zitat Zitat von Kalkihe Beitrag anzeigen
    Knackpunkt an der ganzen Geschichte ist, dass ich diese Applikation gerne mit geringstmöglichem Aufwand für mehrere Betriebssysteme verwendbar machen möchte. Primär hatte ich da jetzt an Windows und Linux-Derivate wie Debian, Ubuntu gedacht. Nun suche ich eben ein entsprechendes Framework bzw. die entsprechenden Tools und Programmiersprachen, um dies umzusetzen.
    Mit welchen Frameworks und Programmiersprachen hast du denn schon Erfahrungen gemacht?

    Zitat Zitat von Kalkihe Beitrag anzeigen
    Ich habe vor langer Zeit mal ein wenig mit Qt/C++ rumgespielt, das sollte das ja auch realisieren können, richtig? Hat damit jemand erfahrungen gemacht?
    Qt und C++ ist unter Linux kein Ding, da eigentlich alle gängigen Linux-Distributionen entsprechende Pakete von Haus aus mitbringen.
    Wie das unter Windows mit Qt aussieht, kann ich aus eigener Erfahrung nicht sagen. Allerdings gibt's bei mir auf Arbeit ein GUI-Programm, welches ein anderer Kollege in C++ geschrieben und mit Qt erstellt hat. Das ist mittlerweile ca. zwei Jahre her. Knackpunkt war (aus meiner Sicht, aber ich habe nur nebenbei ein wenig davon mitbekommen) der Buildvorgang. Man musste sich halt die entsprechenden Buildtools von Qt herunterladen und konnte nicht Visual Studio C++ dafür nehmen. Die Qt-Bibliotheken mussten dann auch beim Ausliefern der Anwendung in Form von DLLs mitgeliefert werden, sonst lief's nicht. Keine Ahnung, ob das bei dir noch als "mit geringstmöglichem Aufwand" durchgeht.

    Zitat Zitat von Kalkihe Beitrag anzeigen
    Für C# gibt es in Linux ja Mono, vielleicht wäre das auch eine Alternative?
    Ja, Mono wäre die eine Möglichkeit. Im Prinzip kann man damit auch unter Windows erstellte Executables unter Linux ausführen. Im Zweifelsfalls muss man das natürlich immer erstmal ausprobieren, ob's unter Linux dann auch so klappt wie unter Windows.
    Eine andere Möglichkeit wäre .NET Core, ebenfalls von Microsoft und soll plattformübergreifende Entwicklung mit .NET / C# ermöglichen. Im Fall von Linux baut dies wohl auch auf Mono auf. Seit Visual Studio 2017 kann man auch Bibliotheken und Anwendungen für .NET Core statt für das "normale" .NET Framework unter Windows erstellen. (Wenn man kann, sollte man in dem Fall aber gleich mit Visual Studio 2019 anfangen.) Nachteil bei .NET Core ist, dass WinForms, also die klassische GUI mit Formularen (Fenstern), Buttons, Textfeldern, Labels, etc. bei .NET Core zur Zeit (Stand: .NET Core 3.0) nur unter Windows unterstützt wird und nicht unter Linux. Ob sich das in Zukunft ändert, weiß ich nicht.
    Thoronador ist offline

  5. #5 Zitieren
    Knight Avatar von Kalkihe
    Registriert seit
    Jan 2008
    Ort
    Kerlsruhe
    Beiträge
    1.579
    Zitat Zitat von Progrinator Beitrag anzeigen
    Ansich geht alles, wenn du es auf dem jeweiligen System Compelierst, aber ansonsten, wäre C# und Java davon unabhängig, da bei beiden, eine entsprechende Zwischenschicht vorhanden ist.
    Den Gedanken habe ich auch schon bekommen. Mit der JVM (im Fall Java dazwischen) lässt sich das ja dann überall ausführen, wo auch Java läuft.
    Gerade bei verschiedene Betriebssysteme muss du halt aufpassen, dass die Eigenheiten der Betriebssysteme durch eine entsprechende gestaltung des Programmes auffängst.
    Zitat Zitat von TheLongestDay Beitrag anzeigen
    Was für Daten sind das und wie sollen die angezeigt werden? Wenn das Anzeigen (mit Grafiken oder so?) der wichtige Teil ist, kannst du ja danach gehen, wo eine entwicklerfreundliche GUI/Grafik-Bibliothek zur Verfügung steht. Bei Java gibt es da einiges. Bei C# bestimmt auch, wobei ich mich da nicht auskenne, habe damit bisher nur native Windows Apps gemacht. Soll die Anwendung verteilt sein, damit mehrere Leute auf dieselben Daten zugreifen können etc?
    Grafiken sind kein Thema, höchstens als "Anhang", müssen aber nicht dargestellt werden. Es geht um eine reine Ein-/Ausgabemaske für Daten.

    Welche Frameworks unter Java kennst dafür bzw. mit welchen hast du gute Erfahrungen gemacht?

    Die Daten müssen nicht verteilt sein. Es soll höchstens Export-/Import-Funktionen geben, das ist ja dann aber nur Datei schreiben und lesen, also nichts kompliziertes.
    Zitat Zitat von Thoronador Beitrag anzeigen
    Mit welchen Frameworks und Programmiersprachen hast du denn schon Erfahrungen gemacht?
    Wie erwähnt habe ich mal mit Qt ein wenig rumgespielt. C++ ist an sich auch schon eine Weile her.

    In letzter Zeit habe ich am meisten mit C# gearbeitet, dabei stand die Oberflächenentwicklung aber eher im Hintergrund. Vor kurzer Zeit habe ich auch mal wieder viel mit Python gemacht und würde mich auch damit fit fühlen, etwas aufzustellen. Damit kann man ja auch in Qt arbeiten. In Java habe ich nur so typische "Studentenerfahrungen", also bisher noch nicht wirklich etwas implementiert.

    Mit Frameworks habe ich darüber hinaus noch nicht wirklich Erfahrung.

    Qt und C++ ist unter Linux kein Ding, da eigentlich alle gängigen Linux-Distributionen entsprechende Pakete von Haus aus mitbringen.
    Wie das unter Windows mit Qt aussieht, kann ich aus eigener Erfahrung nicht sagen. Allerdings gibt's bei mir auf Arbeit ein GUI-Programm, welches ein anderer Kollege in C++ geschrieben und mit Qt erstellt hat. Das ist mittlerweile ca. zwei Jahre her. Knackpunkt war (aus meiner Sicht, aber ich habe nur nebenbei ein wenig davon mitbekommen) der Buildvorgang. Man musste sich halt die entsprechenden Buildtools von Qt herunterladen und konnte nicht Visual Studio C++ dafür nehmen. Die Qt-Bibliotheken mussten dann auch beim Ausliefern der Anwendung in Form von DLLs mitgeliefert werden, sonst lief's nicht. Keine Ahnung, ob das bei dir noch als "mit geringstmöglichem Aufwand" durchgeht.
    Wenn ich Qt verwende, würde ich auch schon gerne die Tools von denen dafür verwenden. Bin jetzt nicht auf Visual Studio fixiert, da ich eh unter Linux entwickeln möchte. Mit "geringstmöglichem Aufwand" meine ich, dass ich auf "Umprogrammierungen" oder so für verschiedene BS verzichten möchte. Ich habe schon damit gerechnet, dass man entsprechende Anpassungen, gerade in Bezug auf Bibliotheken machen möchte.
    Ja, Mono wäre die eine Möglichkeit. Im Prinzip kann man damit auch unter Windows erstellte Executables unter Linux ausführen. Im Zweifelsfalls muss man das natürlich immer erstmal ausprobieren, ob's unter Linux dann auch so klappt wie unter Windows.
    Eine andere Möglichkeit wäre .NET Core, ebenfalls von Microsoft und soll plattformübergreifende Entwicklung mit .NET / C# ermöglichen. Im Fall von Linux baut dies wohl auch auf Mono auf. Seit Visual Studio 2017 kann man auch Bibliotheken und Anwendungen für .NET Core statt für das "normale" .NET Framework unter Windows erstellen. (Wenn man kann, sollte man in dem Fall aber gleich mit Visual Studio 2019 anfangen.) Nachteil bei .NET Core ist, dass WinForms, also die klassische GUI mit Formularen (Fenstern), Buttons, Textfeldern, Labels, etc. bei .NET Core zur Zeit (Stand: .NET Core 3.0) nur unter Windows unterstützt wird und nicht unter Linux. Ob sich das in Zukunft ändert, weiß ich nicht.
    Es gibt doch auch noch WPF, das unterscheidet sich doch von WinForms, oder? Vielleicht könnte ich ja das verwenden.

    Da kommt dann nur eben dazu, dass ich am liebsten unter Linux entwickeln möchte, weswegen Visual Studio da wohl rausfällt... Es sei denn ich überlege mir das nochmal und wechsele ggf. auf den Arbeitsrechner... Was würdest du denn empfehlen? Mono finde ich halt etwas "unschön", da man ja eben "nur" die .exe mit Mono als Hilfsprogramm ausführt. Das hätte ich schon lieber direkter. Eventuell könnte mir Qt da eher den Output liefern, den ich gerne hätte.
    Zitat Zitat von Matteo Beitrag anzeigen
    Gewagte These: Ein Bewohner von Kalkihes Wohnheim arbeitet offensichtlich in Professor Hunts Unternehmen.
    Kalkihe ist offline

  6. #6 Zitieren

    Batmanistrator
    Avatar von Thoronador
    Registriert seit
    Jul 2005
    Ort
    Morrowind, Vvardenfell-Distrikt
    Beiträge
    20.426
    Zitat Zitat von Kalkihe Beitrag anzeigen
    Wenn ich Qt verwende, würde ich auch schon gerne die Tools von denen dafür verwenden.
    Spricht ja erstmal nichts dagegen.

    Zitat Zitat von Kalkihe Beitrag anzeigen
    Es gibt doch auch noch WPF, das unterscheidet sich doch von WinForms, oder? Vielleicht könnte ich ja das verwenden.
    Nur für Windows, nicht für Linux oder Mac. WPF steht für "Windows Presentation Foundation" und meines Wissens gilt hier auch das gleiche wie für WinForms: Unterstützt gibt es momentan nur unter Windows (auch mit .NET Core 3) und Microsoft hat bisher auch nicht verkündet, dass sich in Zukunft etwas daran ändern soll. Vermutlich ist das auch nicht so ganz einfach, da auf Windows-spezifische Funktionalitäten zurückgegriffen wird. Also GUI ist mit C# eher mau, wenn's plattformübergreifend sein soll.

    Zitat Zitat von Kalkihe Beitrag anzeigen
    Was würdest du denn empfehlen?
    Das kann ich so pauschal nicht sagen, da ich mich bei "meinen" kleinen GUI-Anwendungen bisher immer nur auf einer Plattform - Windows oder Linux - bewegt habe, aber nicht auf beiden. Wenn's nur für Windows wäre, könnte ich ohne weiteres zu C# / .NET / Visual Studio raten. Da es plattformübergreifend sein soll, würde ich im Moment aber eher zu Qt und C++ tendieren. Da gibt's ja auch den Qt Designer, mit dem man sich GUIs im Grundgerüst zusammenklicken kann.
    Thoronador ist offline

  7. #7 Zitieren
    Pretty Pink Pony Princess  Avatar von Multithread
    Registriert seit
    Jun 2010
    Ort
    Crystal Empire
    Beiträge
    11.230
    Für C# gibt es durchaus Desktopumgebungen, welche Cross-Platform Laufen sollten:
    Avalonia

    Das mit dem "WIndows only" ist ja nur ein Problem bei den beiden Windows Ansätzen, nicht aber, wenn man ein komplett eignes System von Grund auf aufbaut.
    [Bild: AMD_Threadripper.png] Bei Hardware gibt es keine eigene Meinung, bei Hardware zählen nur die Fakten.


    Probleme mit der Haarpracht? Starres Haar ohne Glanz? TressFX schafft Abhilfe. Ja, TressFX verhilft auch Ihnen zu schönem und Geschmeidigen Haar.
    [Bild: i6tfHoa3ooSEraFH63.png]
    Multithread ist gerade online

  8. #8 Zitieren
    Knight Avatar von Kalkihe
    Registriert seit
    Jan 2008
    Ort
    Kerlsruhe
    Beiträge
    1.579
    Zitat Zitat von Thoronador Beitrag anzeigen
    Qt und C++ ist unter Linux kein Ding, da eigentlich alle gängigen Linux-Distributionen entsprechende Pakete von Haus aus mitbringen.
    Wie das unter Windows mit Qt aussieht, kann ich aus eigener Erfahrung nicht sagen. Allerdings gibt's bei mir auf Arbeit ein GUI-Programm, welches ein anderer Kollege in C++ geschrieben und mit Qt erstellt hat. Das ist mittlerweile ca. zwei Jahre her. Knackpunkt war (aus meiner Sicht, aber ich habe nur nebenbei ein wenig davon mitbekommen) der Buildvorgang. Man musste sich halt die entsprechenden Buildtools von Qt herunterladen und konnte nicht Visual Studio C++ dafür nehmen. Die Qt-Bibliotheken mussten dann auch beim Ausliefern der Anwendung in Form von DLLs mitgeliefert werden, sonst lief's nicht. Keine Ahnung, ob das bei dir noch als "mit geringstmöglichem Aufwand" durchgeht.
    Ich hab mich mittlerweile etwas mehr mit Qt beschäftigt. Und tatsächlich, ich sehe nun mittlerweile, was du meinst. Neben den Bibliotheken muss man zig Sachen machen, um einen Installer zu generieren. Das geht bei mir aktuell nicht mehr unter "geringstmöglicher Aufwand" für mich durch. Es sei denn, es gibt kein anderes Framework/Tool, welches dies einfacher für micht macht.

    Daher überlege ich gerade eher auf Java umzusteigen, da auch der C# Ansatz für mich noch etwas undurchsichtig ist... Kennt ihr da gute bzw. aktuelle Framworks für die GUI-Gestaltung bzw. gibt es auch einen Designer? Bin mir nicht sicher, ob ich mal was von einem Swing-Designer gelesen habe...
    Zitat Zitat von Matteo Beitrag anzeigen
    Gewagte These: Ein Bewohner von Kalkihes Wohnheim arbeitet offensichtlich in Professor Hunts Unternehmen.
    Kalkihe ist offline

  9. #9 Zitieren
    Knight Avatar von Kalkihe
    Registriert seit
    Jan 2008
    Ort
    Kerlsruhe
    Beiträge
    1.579
    Damit der Thread auch eine Lösung hat, falls mal jemand ein ähnliches Problem hat:

    Ich habe mal noch ein wenig mit JavaFX rumprobiert: Da müsste ich aber auf Java-Version 10 (aktuelle ist 13) runter, um das als .jar deployen zu können. Jar-Deployment macht meine Applikation relative einfach Cross-Plattform. Das sollte nun sogar auf MAC funktionieren, auch wenn ich das natürlich nicht getestet habe.

    Als GUI-Framework werde ich nun doch Swing verwenden und versuchen, über gewisse Tweaks und das Verwenden von Look and Feels ein einigermaßen modernes Design hinzubekommen. Für Swing bietet Intellij auch einen funktionablen Designer an.

    Danke für eure Hilfe.
    Zitat Zitat von Matteo Beitrag anzeigen
    Gewagte These: Ein Bewohner von Kalkihes Wohnheim arbeitet offensichtlich in Professor Hunts Unternehmen.
    Kalkihe ist offline

  10. #10 Zitieren
    Legende Avatar von jabu
    Registriert seit
    Jul 2011
    Beiträge
    7.363
    Zitat Zitat von Kalkihe Beitrag anzeigen
    Damit der Thread auch eine Lösung hat, falls mal jemand ein ähnliches Problem hat:
    Davon könnte sich der eine oder andere eine Scheibe abschneiden!

    Ich habe mal noch ein wenig mit JavaFX rumprobiert:
    Dort bin auch ich in der Zwischenzeit (still mitlesend) angekommen (habe es extra auf die neuesten Versionen angelegt: OpenJDK13 + OpenJFX13 mit FXML (hat sein Für und Wider) und dem SceneBuilder (OpenJDK von der Oracle-Community, OpenJFX u. SceneBuilder von Gluon (kann ich empfehlen, auch die hilfreichen Anleitungen zu den IDEs dort)), funktioniert unter NetBeans, Eclipse sowie IntelliJ IDEA bei manueller Konfiguration (bei NetBeans normales Java-Projekt als Basis nötig, da der Assistent externes JavaFX nicht akzeptiert). Ein lesenswerter Artikel, dessen Gegenstand Konsequenzen für Auswahl und Verteilung haben kann: https://www.heise.de/developer/artik...g-4144533.html
    jabu ist offline

  11. #11 Zitieren
    Ritter
    Registriert seit
    Feb 2003
    Beiträge
    1.554
    Zitat Zitat von Kalkihe Beitrag anzeigen
    Es geht um eine reine Ein-/Ausgabemaske für Daten.
    Warum dann nicht eine Web-Applikation?
    Man spart sich dann den ganzen Hick-Hack, die Anwendung auf den Rechnern zu installieren und läuft überall, wo auch ein Browser zur Verfügung steht. Sogar auf einem Smartphone.
    Whiz-zarD ist offline

  12. #12 Zitieren
    Halbgott Avatar von Progrinator
    Registriert seit
    Apr 2018
    Ort
    München
    Beiträge
    9.174
    Zitat Zitat von Whiz-zarD Beitrag anzeigen
    Warum dann nicht eine Web-Applikation?
    Man spart sich dann den ganzen Hick-Hack, die Anwendung auf den Rechnern zu installieren und läuft überall, wo auch ein Browser zur Verfügung steht. Sogar auf einem Smartphone.
    entsprechende Limitierungen und offener Quellcode. (wäre meine Annahme.
    Progrinator ist offline

  13. #13 Zitieren
    Ritter
    Registriert seit
    Feb 2003
    Beiträge
    1.554
    Offener Quellcode ist kein Hindernis. Eigentlich wäre für mich eine Java-Applikation ein No-Go, weil man die Applikation auf den Rechnern installieren müsste.
    Java WebStart würde die Sache auch nicht besser machen.
    Whiz-zarD ist offline

  14. #14 Zitieren
    Knight Avatar von Kalkihe
    Registriert seit
    Jan 2008
    Ort
    Kerlsruhe
    Beiträge
    1.579
    Zitat Zitat von Whiz-zarD Beitrag anzeigen
    Offener Quellcode ist kein Hindernis. Eigentlich wäre für mich eine Java-Applikation ein No-Go, weil man die Applikation auf den Rechnern installieren müsste.
    Java WebStart würde die Sache auch nicht besser machen.
    Eine Web-Applikation muss ja auch erstmal gehostet werden. Und von außerhalb des Intranets, wenn intern gehostet, muss dann auch erstmal ein Zugriff bestehen. Offline verwenden ist dann nicht. Des Weiteren sind die Daten teilweise kritisch, da müssten dann noch diverse Sicherheitsaspekte betrachten werden und und und. Das würde den Zeitrahmen, den ich für die Arbeit habe maßlos übersteigen. Außerdem möchte ich mich mit dem Thema Cross-Plattform beschäftigen.

    Die Applikation soll im Arbeitsumfeld eingesetzt werden. Dort werden normalerweise noch recht häufig Applikationen installiert. Man denke an Outlook, Browser, Office, MS-Project... Da macht es das eine Tool auch nicht mehr aus, wenn es dafür jemandem die Arbeit erleichtert.
    Zitat Zitat von Matteo Beitrag anzeigen
    Gewagte These: Ein Bewohner von Kalkihes Wohnheim arbeitet offensichtlich in Professor Hunts Unternehmen.
    Kalkihe ist offline

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •