Gtk # :
GTK # ist eine .NET-Bindung für das Gtk + -Toolkit. Das Toolkit ist aus Gründen der Geschwindigkeit und Kompatibilität in C geschrieben, während die GTK # -Bindung eine benutzerfreundliche, objektorientierte API für die verwaltete Verwendung bietet. Es ist in aktiver Entwicklung durch das Mono-Projekt, und es gibt verschiedene reale Anwendungen, die es verwenden ( Banshee , F-Spot , Beagle , MonoDevelop ).
Im Allgemeinen werden GTK # -Anwendungen mit MonoDevelop geschrieben, das einen visuellen Designer für die Erstellung von GTK # -GUs bietet.
Plattformen: Unix, Windows, OSX
Pros:
Nachteile:
Windows.Forms ist eine von Microsoft entwickelte Bindung an das Win32-Toolkit. Als beliebtes Toolkit, das von Millionen von Windows-Entwicklern verwendet wird (speziell für interne Unternehmensanwendungen), entschied sich das Mono-Projekt für eine kompatible Implementierung (Winforms), die es Entwicklern ermöglicht, ihre Anwendungen einfach auf Linux und anderen Mono-Plattformen zu portieren.
Während die .Net-Implementierung eine Bindung an das Win32-Toolkit darstellt, wird die Mono-Implementierung in C # geschrieben, damit sie auf mehreren Plattformen arbeiten kann. Die meisten Windows.Forms-APIs arbeiten mit Mono, jedoch umgehen einige Anwendungen (und insbesondere Steuerelemente von Drittanbietern) gelegentlich die API und P / Invoke direkt an die Win32-API. Diese Anrufe müssen wahrscheinlich geändert werden, um an Mono zu arbeiten.
Im Allgemeinen werden Winforms-Anwendungen mit Microsoft Visual Studio oder SharpDevelop geschrieben, die beide einen visuellen Designer zum Erstellen bereitstellen Winforms-GUIs.
Plattformen: Windows, Unix, OSX
Pros:
Nachteile:
Quelle: Auswahl des richtigen Toolkits
Sie sind beide GUI-Toolkits, die jeweils ihre Stärken und Schwächen haben. Aus meiner Erfahrung:
Kurz gesagt, ich würde die Verwendung von Winforms nicht empfehlen (außer wenn es einen starken Grund gibt, nicht mehr Abhängigkeiten als .NET FW zu haben), sondern Gtk # oder WPF.
Sie sind verschiedene grafische Toolkits zum Erstellen von Fensteranwendungen mit unterschiedlichen Ursprüngen.
GTK # ist eine Bindung für die GTK-Bibliothek, die hauptsächlich für Linux / Unix gedacht ist. Es funktioniert auch unter Windows, aber es ist nicht die native Umgebung, für die es entworfen wurde.
Winforms ist ein weiteres Toolkit, das von Microsoft stammt.
Sie sind völlig unterschiedliche APIs, um die gleichen Ergebnisse zu erzielen, sind aber für eine Plattform besser geeignet.
Wenn Sie nach einem Multiplattform-Fenster in .net suchen, könnte Qt eine Option sein, da es jetzt LGPLed ist.
Kurz gesagt: Ja
Beide sind GUI-Tookits, aber WinForms (wie der Name sagt) wurde hauptsächlich für Windows entwickelt. GTK wurde für Gimp entwickelt und ist ein Ansatz für ein Multi-Betriebssystem-Toolkit.
Wenn Ihre Anwendung nur unter Windows läuft, sollten Sie in den meisten Fällen WinForms verwenden.
Wenn Ihre Anwendung unter verschiedenen Betriebssystemen läuft (wie Linux, BSD, Windows, MacOS, ...), bevorzugen Sie GTK.
Für eine bessere Erklärung schauen Sie hier .
Tags und Links c# winforms mono monodevelop gtk