Ich sehe viele alte Informationen zu dieser Frage und viele Artikel, die durch die Interwebs fliegen, aber ich kann nicht genau sagen, wo sich die Dinge befinden.
Grundsätzlich möchte ich C # -Code schreiben, den ich dann in eine native Windows-Anwendung und auch in eine native Mac-Anwendung kompilieren kann (keine Parallelen, kein Wine usw.). Kann das gemacht werden?
Sind Produkte wie Xamarin der richtige Weg? Auf der Xamarin-Website heißt es: "Verwenden Sie dieselbe Sprache, dieselben APIs und Datenstrukturen, um durchschnittlich 75% des App-Codes auf allen mobilen Entwicklungsplattformen gemeinsam zu nutzen." Aber ich kann nicht sagen, was diese 25% des plattformspezifischen App-Codes bedeuten könnten ... Ich kann auch nicht sagen, ob sie auf OSX und Windows abzielen, ihre Website ist sehr mobilgeräteorientiert.
[später hinzugefügt]
Zusammenfassung: Xamarin ist nicht für plattformübergreifende Anwendungen konzipiert. Sie bieten Ihnen die Möglichkeit, Mac-Anwendungen mithilfe der GUI-Vorgänge des Mac in C # zu schreiben. Was sie empfehlen, ist, Ihre gesamte "Geschäftslogik" plattformübergreifend zu schreiben und dann zwei vollständig separate GUIs zu schreiben - eine für Windows, eine für Mac.
C # / Qt scheint sich in einer sehr frühen Phase zu befinden (wenn jedoch jemand 2016 oder später auf diesen Artikel stößt, schauen Sie ihn sich an).
Es scheint, dass Mono plattformübergreifend einschließlich GUI funktioniert, jedoch nur, wenn Sie Windows Forms verwenden.