GTK#とWindowsフォームの違いは何ですか?それらは完全に異なりますか?
ありがとう
Gtk# :
GTK# は、Gtk+ ツールキットの .NET バインディングです。ツールキットは、速度と互換性のために C で記述されていますが、GTK# バインディングは、マネージドで使用するための使いやすいオブジェクト指向 API を提供します。これは Mono プロジェクトによって活発に開発されており、それを使用するさまざまな実世界のアプリケーション ( Banshee、F-Spot、Beagle、MonoDevelop ) が利用可能です。
一般に、GTK# アプリケーションは、GTK# GUI を作成するためのビジュアル デザイナーを提供するMonoDevelopを使用して作成されます。
プラットフォーム: Unix、Windows、OSX
長所:
短所:
Windows.Forms は、Microsoft によって開発された Win32 ツールキットへのバインドです。何百万人もの Windows 開発者 (特に社内のエンタープライズ アプリケーション) が使用する人気のあるツールキットとして、Mono プロジェクトは互換性のある実装 (Winforms) を作成して、これらの開発者が Linux やその他の Mono プラットフォームで実行するアプリケーションを簡単に移植できるようにすることを決定しました。
.Net 実装は Win32 ツールキットへのバインディングですが、Mono 実装は C# で記述されており、複数のプラットフォームで動作します。ほとんどの Windows.Forms API は Mono で動作しますが、一部のアプリケーション (および特にサードパーティ コントロール) は、API をバイパスし、Win32 API に直接 P/Invoke することがあります。これらの呼び出しは、Mono で動作するように変更する必要がある可能性があります。
一般に、Winforms アプリケーションは Microsoft の Visual Studio またはSharpDevelopを使用して作成され、どちらも Winforms GUI を作成するためのビジュアル デザイナーを提供します。
プラットフォーム: Windows、Unix、OSX
長所:
短所:
出典:適切なツールキットの選択
どちらも GUI ツールキットであり、それぞれに長所と短所があります。私の経験から:
要するに、Winforms の使用はお勧めしませんが (.NET FW より多くの依存関係を持たないという強い理由がある場合を除きます)、Gtk# または WPF を使用します。
これらは、ウィンドウ化されたアプリケーションを作成するためのさまざまなグラフィカル ツールキットであり、起源も異なります。
GTK# は、主に linux/unix を対象とした GTK ライブラリのバインディングです。Windows でも動作しますが、設計されたネイティブ環境ではありません。
Winforms は別のツールキットで、Microsoft から提供されています。
これらは同じ結果を達成するためのまったく異なる API ですが、それぞれがプラットフォームにより適しています。
.net でマルチプラットフォーム ウィンドウを探している場合、Qt は LGPL を取得したため、選択肢の 1 つになる可能性があります。
要するに:はい
どちらもGUI-Tookitsですが、WinForms(名前が示すように)は主にWindows用に開発されました。GTKはGimp用に開発されており、マルチOSGUIツールキットのアプローチです。
アプリケーションがWindowsでのみ実行される場合、ほとんどの場合、WinFormsを使用する必要があります。
アプリケーションが異なるOS(linux、bsd、windows、macosなど)で実行される場合は、GTKをお勧めします。
より良い説明については、こちらをご覧ください。