Ich entwickle Rich-Client-Software unter Mac OS X und Linux. Ich möchte eine Anwendung auf Windows portieren und nicht ein Benutzer von Microsoft-Produkten sein, ich bin nicht sehr vertraut mit Windows im Allgemeinen.Welche Windows-API wähle ich für eine Rich-Client-Anwendung?
Was mit Ich kenne:
Unter Mac OS X, ich habe die Möglichkeit, Cocoa und Objective C oder Kohlenstoff und C/C++. Unter Linux habe ich die Option von GTK + und C/C++ oder Qt und C++. Ich bevorzuge Cocoa unter Mac OS X und GTK + unter Linux. Interface Builder für Kakao und Glade für GTK + machen mein Leben einfach. Es ist Spaß, Rich-Clients in diesen Betriebssystemen zu erstellen.
Meine Kernklassen, oder "Modell" in MVC, wird in plattformübergreifendem C++ geschrieben. Die Benutzeroberflächenklassen oder "View and Controller" in MVC sind in der "bevorzugten" Sprache und GUI-API für jede jeweilige Plattform geschrieben.
C++ ist die Sprache, mit der ich am meisten vertraut bin. Ich benutze die Boost-Bibliotheken ausgiebig. Besonders Smart Pointer, Threads und Asio-Netzwerkbibliotheken. Für Unicode, Lokalisierung usw. verwende ich International Components for Unicode (ICU).
Frage 1: Was ist die "bevorzugte" Sprache und GUI-API für die Windows-Plattform, die mit meinen plattformübergreifenden Modellklassen kompatibel ist?
Frage 2: Wie greife ich auf meine plattformübergreifenden Modellklassen zu?
Unter Mac OS X beispielsweise greife ich über Controller-Klassen auf meine Modellklassen zu. Die Controller-Klassen sind in Objective-C++ implementiert. Objective-C++ ist eine Mischung aus C++ und Objective-C. Zeigen Sie Objekte "sprechen" mit Controllerobjekten in Objective-C an, während die Controllerobjekte in C++ mit Modellobjekten "sprechen".
Unter Linux sind alle Klassen in C++ implementiert.
richtig, es gibt keinen Nutzen beim Schreiben von Windows-only-Code, wenn Sie es crossplatform behalten können. natürlich würde ich Qt über GTK + bevorzugen (kein Performance-Overhead oder GUI-Mistmatch!), aber die Frage erwähnt bereits GTK +, also behalte es einfach. – Javier