flashover
Goto Top

Plattformunabhängige GUI Anwendungen - welchen Weg sollte ich gehen

Guten Abend.
Ich habe jetzt hier mal eine Frage die mich schon länger beschäftigt. Da ich aber kein Programmierer bin und lediglich mit Bash und PowerShell und etwas Visual Basic .net Erfahrungen habe, hoffe ich dass die Frage eines Unwissenheit auf Verständnis stößt.

Generell geht es mir darum, daß ich gerne kleine Business Anwendungen als Hobby erstellen möchte. Das wären dann so Dinge wie Fahrtenbuch Lösungen oder etwas wie OneNote, Kennwort Manager etc. Mit VB.net kann ich das alles durchaus machen und müsste mir hier noch noch mehr Wissen aneignen. Die vb.net Anwendungen wäre dann aber an Windows gebunden. Da ich selbst aber auch ab und an mit Linux und Mac arbeite, fände ich es gut wenn Anwendungen, mit welchen ich der Allgemeinheit einen Mehrwert bieten möchte, auf mehreren Plattformen läuft.

Generell könnte ich nun natürlich auf eine Web Anwendungen setzen. Was mich hiervon abhält ist die Menge an Sprachen die ich nebenher lernen müsste, um eine GUI Anwendung auf die Beine zu stellen, die man auch gerne benutzen möchte. Das heißt ich bräuchte: HTML5, CSS, JavaScript, PHP und dann noch Frameworks wie Sencha ExtJS, AngularJS oder React etc. Ich komm zwar mit HTML und CSS einigermaßen klar, aber trotzdem würde es schon Ewig dauern, bis ich eine GUI mit JavaScript gebaut hätte. Mit ExtJS ginge es vielleicht schneller.
Daher denke ich als Laie, das schaffe ich nebenher einfach nicht.

Nun sehe ich Anwendungen wie TeamViewer und Firefox. Schöne GUI und gibt es für alle Plattformen.
JETZT die Frage aller Fragen. Womit machen diese Firmen solche Anwendungen, damit Sie diese für all diese Betriebssysteme bereitstellen können. Nach Java Swing oder Python TKinter sieht der neue Firefox definitiv nicht aus face-smile Ist das evtl. mit Qt gemacht?

Würde mich freuen wenn mir jemand auf die Sprünge helfen kann, damit ich mir wiederum überlegen kann, was für Sprachen etc. ich lernen müsste, um das Ziel zu erreichen und Software Lösungen anzubieten, welche die User auch gerne nutzen.

PS: Wenn die einfachste Lösung eine Web Anwendung wäre aus eurer Sicht, dann würde ich mich über eure Meinung zu ExtJS freuen. Das sieht mir so aus als wenn man damit relativ schnell schöne GUI Anwendungen erschaffen könnte, welche dann noch eine Business Logik und Datenbankanbindung benötigen würden.

PPS: Wenn man wissen möchte was ich denn z.B. machen wollte: Zwei Projekte hab ich im Kopf. Ersteres ist eine Kennwort Verwaltung für Teams die aber im Haus läuft. Also sowas wie KeePass für Teams. Und eine OneNote Alternative. OneNote von MS ist das mega Werkzeug für mich aber leider nicht für Linux. Alternativen laufen dann meist in der Cloud und das ich nichts was Betriebe machen sollten bzw. gezwungen sein sollten zu tun. Daher sowas wie OneNote vom Aufbau, Funktional aber einfacher gehalten.

Freue mich über Anregungen so daß ich weiß, womit ich mich über die Feiertage beschäftigen sollte.
Danke.

Content-Key: 355395

Url: https://administrator.de/contentid/355395

Printed on: April 24, 2024 at 23:04 o'clock

Member: H41mSh1C0R
H41mSh1C0R Nov 19, 2017 at 17:03:48 (UTC)
Goto Top
Nabend,

wenns Plattformunabhängig sein soll?

.Net --> Mono
Java

Die Powershell wird ja nun auch Stück für Stück auf alle Plattformen ausgeweitet.
Vorerst rein als Core, da würde wohl GUI ausscheiden.

VG
Member: marinux
marinux Nov 19, 2017 at 18:00:44 (UTC)
Goto Top
Hi,

Qt

Gruß
Member: maretz
maretz Nov 19, 2017 at 18:14:05 (UTC)
Goto Top
Du hast - wie immer - die freie Auswahl... Java wäre z.B. nur einmal schreiben, läuft (im Normalfall) auf jedem Rechner solang du nichts Systemspezifisches machst. Alternativ kannst du auch JSP damit machen bzw. Webapplikationen die auf nem Tomcat rennen.

Wichtiger als die Sprache ist aber das du dir mal nen Plan machst wie das aussehen soll - u.a. bei einer Kennwort-Verwaltung musst du schon nen bisserl was über Verschlüsselung machen, sonst wäre das fatal. Wenn du nicht im Vorfeld nen halbwegs guten Plan machst ist es nur das nächste Projekt für die Tonne...
Member: em-pie
Solution em-pie Nov 19, 2017, updated at Nov 20, 2017 at 08:44:39 (UTC)
Goto Top
Moin,

Würde versuchen wollen - sofern möglich - alles als WebApp zu gestalten. Nahezu jeder Client der irgendwie im Netzwerk hängt und einen Browser mitbringt käme damit klar.
Und wenn du ein Visual Studio im Portfolio hast, kannst du die drei Ebenen (GUI, Programm-Logic, Data-Management) alle samt darüber abfackeln.

Tipps:

Du müsstest im Backend dann "lediglich" einen MS-IIS und je nach Bedarf einen MS SQL-Server laufen lassen...

€dit: Denn mit dem VisualStudio kannst du (wie im Video zu sehen) eine Website per "Klicki-Bunti" zusammenstellen, Button etc. mit funktionalitäten versehen und das VS baut dir den dazu nötigen Code zusammen...

Gruß
em-pie
Member: FlashOver
FlashOver Nov 20, 2017 at 13:12:14 (UTC)
Goto Top
Vielen Dank für die schnellen Antworten.
Es sieht so aus, als wenn ich mit C# am flexibelsten wäre und sowohl ASP.net (Web Applikation) als auch WinForms Anwendungen (Windows, Mono) sowie mit Xamarin auf mobilen Geräten damit arbeiten könnte. Da Microsoft VB.net nur noch eingeschränkt weiter entwickeln möchte, ist das wohl auch die beste .net Sprache. Bei Java ist für mich als Hobby Programmierer die Lernkurve doch etwas steil, obgleich es nat. eine sehr flexibler Ansatz wäre.

Nun bleibt nur noch die Abwägung, ob eine Web Anwendung auf einem IIS (APS runtime gibt es glaub ich auch über Mono als Apache Modul) sinnvoller wäre oder eine WinForm Anwendung, welche dank Mono auch auf dem Mac und Linux mit geringen optischen Unterschieden laufen sollten. Die WinForm Anwendung hat man grafisch ja „verhältnismäßig“ schnell zusammengebaut. Bei einer Web Anwendung sehe ich, daß ich trotzdem noch viel CSS und JavaScript benötige, damit das optisch ansprechend wird und auf diversen Browsern läuft. Oder kann man diverse Teile der GUI für Web Anwendungen im Visual Studio zusammenklicken wie für die WinForm oder WPF Anwendungen?

Wichtig ist für mich, nebst dem Aufwand für mich, daß die Lösung dann möglichst viele kleine Betriebe ohne großen Aufwand und größere Infrastrukturanforderungen nutzen können. Im Idealfall läuft eine Web Anwendung auf einem Raspberry Pi oder schlanken Linux Server oder die Anwendung eben direkt auf dem Computer. Dank Softwareverteilung sind dann auch Updates kein Problem.
Member: maretz
maretz Nov 20, 2017 at 18:39:40 (UTC)
Goto Top
Moin,

was willst du genau machen? Also erstmal -> wenn es deine ersten Gehversuche als Programmierer sind rechne nicht gleich damit das du sowas direkt verkaufen kannst (oder solltest). Da sind dann noch andere Fragen relevant - Haftung wenn Daten verloren gehen, Zugriffsbeschränkungen,... Das willst du dir als Einsteiger nicht gleich ans Bein binden...

Dann: Was heisst für dich "relativ geringer Aufwand"? Ein geringer Aufwand ist immer die native Anwendung auf dem OS des Clients, dann braucht man in einer evtl. Firma nix an Server-Lizenzen zu haben. Alternativ eben eine Anwendung auf Tomcat-Basis da du hier recht weit ohne zusätzliche Lizenzen kommst. IIS ist dagegen schon wieder mit einem zusätzlichen Server verbunden, der gewartet werden will usw... Dazu dann das DB-System da drauf - ggf. auch noch wieder was extra. Die Applikation ist dabei im Normalfall das geringste der 1000 Übel...

Und je nachdem wie gut deine Kenntnisse sind (das kann und will ich nicht bewerten) kommst du da auch noch in die Bereiche rein das man eine DB gut oder schlecht bauen kann. Auch hier gilt: Einmal das Böse aus der Kiste geholt und du bekommst es nicht wieder rein. Nehmen wir an du verkaufst deine Anwendung an 20 Kunden. Die geben da auch fleissig Daten ein - und in 6 - 9 Monaten stellst du fest das dein DB-Ansatz leider Müll war. Willst du dann zum Kunden gehen und sagen "Pech gehabt, schmeiss die Daten halt weg"?

Daher baue erst mal für dich - und wenn es gut ist überlege ob du es ggf. verkaufen kannst...
Member: FlashOver
FlashOver Nov 21, 2017 at 09:52:57 (UTC)
Goto Top
Hi Maretz.

Ich leg keinen Wert darauf die Lösung zu verkaufen. Ich möchte primär Lösungen welche für mich selber und mein Untrenehmen passen bzw. uns unabhängiger und produktiver machen aber halt auf diversen Betriebssystemen laufen. Diese werden dann aber so gestrickt, daß auch andere Unternehmen oder kleine Betriebe damit was anfangen können wenn sie wollen.

Als relativ geringen Aufwand sehe ich, daß es für eine Lösung im Unternehmen nicht zu viel sein darf, nen IIS oder ne Datenbank zu betreiben.
Ne Anwendung die nur lokal läuft ist nat. günstiger, aber das ist für Betriebe einfach der falsche Ansatz wenn man nicht grad alleine ist.
Aber nat. jetzt nicht Cluster, Active Directory und Zertifikaten und revisionsicherem Speicher etc als Voraussetzung für ne Lösung, das ist zu viel für kleine Betriebe oder Einzelkämpfer. Aber nen Apache oder IIS, das sollte man hinbekommen. Wenn nicht muß man sich Hilfe einkaufen oder man bleibt bei einer Lösung aus dem Mediamarkt, AppStore oder managed service aus der Cloud.

Du hast nat. recht - die themen Datenbankdesign und so weiter sind nicht mein tägliches Brot. Ich möchte primär vermeiden, daß ich mir paar Programmierer hole für eine Lösung die ich haben möchte und selber null Ahnung habe. Ich hab kein Problem damit ab nen gewissen Punkt paar Freiberufler zu involvieren und lass die machen was Sie am besten können. Aber ich möchte schon vorher selbst einen gewissen Grad an Wissen aufgebaut haben um mitreden zu können und um Anforderungen mit technischen Möglichkeiten (und deren Sinn) in Einklang bringen zu können. Es ist ja auch schön wenn man selber was erschaffen hat.

Zudem - Programmieren hält geistig auch fit und das kann man auch prima im Flugzeug oder in der Bahn machen face-smile

Werde also erstmal für mich im kleinen Mastatab sowas wie Prototypen bauen und dann verbessern lassen.

Vielen Dank für alle Kommentare und Ratschläge.