Multi: Plattformübergreifende GUI-Programmierung

Beitrag lesen

Meine Zielgruppe hat allerdings deutlich gemacht, dass eine rein serverbasierte Software nicht ideal wäre.

Also wenn ich ein Programm schreibe, ist meine Zielgruppe die Anwender. Die wissen entweder gar nicht, was der Unterschied zwischen Server- und Clientbasiert ist oder es ist ihnen egal, hauptsache es läuft.

Welche Argumente haben die denn?

Daher überlege ich nun, eine "richtige" Software mit GUI mit einer der eher klassischen Sprachen zu entwickeln. Da ich mich sowieso neu einlesen und -lernen müsste, hab ich quasi die Qual der Wahl ;-)

Selbst da kann der Grossteil der Logik auf dem Server stattfinden, ebenso wie bei einer browserbasierten Lösung nicht zwingend ein Server benötigt wird,  solange die benötigte Software (also minimal ein Browser) auf dem Arbeitsplatzrechner installiert ist.

Ich habe allerdings den Anspruch, die Software für Windows, Linux und Mac zu programmieren. Am liebsten wäre es mir, wenn ich dafür die Software nicht für jede Plattform neu schreiben müsste.

Es gibt schon lange Möglichkeiten auf mehreren Plattformen gleichzeitig zu entwickeln. Bestes Beispiel ist IMO der Firefox. Ich löse solche Sache mit GTK+, Pidgin basiert da z.B. auch drauf.

Zudem möchte ich nur die kompilierte Software ausliefern, meine Zielgruppe wäre auch mit dem selber-kompilieren überfordert.
Sprich: Zip-Datei runter laden, entpacken, ausführen und mit der Software glücklich werden.

Wo das Problem? Das kannst du mit jeder Programmiersprache machen. Lediglich müssen deine Kunden dann deine Systemvorraussetzungen erfüllen.

Was ich da aber nicht verstehe, wenn deine Kunden zwar Argumente gegen eine rein Serverbasierte Lösung haben, muss da einiges an Hintergrundwissen da sein. Wenn sie dann aber mit dem Kompilieren überfordert sind, (was eine Installationsroutine automatisieren kann), passt das nicht zusammen. Entweder sind deine Kunden Schwätzer oder deine Kunden sind nicht deine Zielgruppe.

Ich möchte das erste Release innerhalb der nächsten 6 Monate raus bringen. Klingt ehrgeizig, aber die Software besteht aus etlichen Formularen, einer DB-Anbindung, Bilder herunter skalieren und etwas XML-Austausch mit dem Internet. Also keine Quantenphysik, sollte man meinen. Und ich habe etwa 2-3 Tage die Woche Zeit dafür.

Und auf jedem Rechner eine eigene Datenbank? Wenn nicht, hast du wieder einen zentralen Server. Ob dann noch die Logik drauf läuft ist echt völlig Latte. Da eh schon ein zentraler Server da sein muss, wäre es völliger Unfug, dem Client ein eigenes Programm aufzuzwingen.

Abgesehen davon, dass du dir dadurch unnötig Arbeit machst, dauern Updates (grad bei kritischen Fehlern) unnötig lange, was im Extremfall hohe Kosten verursacht durch Ausfälle, Hacker usw.

Als DB tendiere ich derzeit zu Sqlite, weil es wahrscheinlich zu aufwendig (bzw. lizenztechnisch schwierig) wäre, einen SQL-Server mit der Software mit zu liefern.

Dann hoffe ich für dich, deine Datensätze halten sich in Grenzen, sonst säuft dir eine sqlite schnell ab, wenn viele Clients gleichzeitig drauf zugreifen.

Ist C++ noch aktuell oder wird Desktop-Software nur noch in .NET entwickelt? Ein wenig zukunftssicher sollte das Ganze ja auch sein ;-)

Nur als Anmerkung, Linux ist komplett in C programmiert, Hardwaretreiber auf unterster Ebene in Assembler. Soviel zum Thema, was noch aktuell ist.

Was mich jetzt aber wieder stutzig macht, du willst Plattformübergreifend sein und schreibst jettz von .NET
Was willst du jetzt? Dass es nur unter Windows läuft mit .NET oder Plattformübergreifend mit einer Programmiersprache, die nicht von einer Firma erfunden wurde, die andere Beitrebssyteme am liebsten per Gesetzt verbieten lassen würde?