Skip to content

MS_GtkSharp

nishi_74322014 edited this page Aug 21, 2026 · 1 revision

Gtk Sharp

概要

GTK+(DNET_GTKPlus.md)の C# 版(.NET バインディングセット)

  • GUI ツールキット
  • GNOME ライブラリ

詳細

開発ツール類

いずれも、Gtk Sharp のプロジェクトを生成する。

  • Mono ランタイムで動作させる。

    • Linux 上
    • MAC は、Visual Studio for Mac を使用する。
    • Windows は、インストーラが提供されていない!
  • Visual Studio for Mac のプロジェクトと互換性がある。

≒ MAC 版の Mono Develop

補足(この 2 つはいずれも終了した): 本節の 2 つの開発ツールは、
現在いずれも提供されていない

【現況】★
   ・MonoDevelop      … 2024年にリポジトリがアーカイブ
   ・Visual Studio for Mac … 2024年8月31日にサポート終了
   → 詳細は
     [Mono Develop](MS_MonoDevelop) /
     [Visual Studio for Mac](MS_VisualStudioForMac)

【現在の GTK 開発環境】
   ・【VS Code】+ C# Dev Kit
   ・【JetBrains Rider】
   ・デザイナは後述の【Glade】または
     GTK4 の【Cambalache】を別途使う
   → 「IDE 内で完結」する構成は
     もう存在しない ★

dotnet new gtkapp

  • dotnet コマンドを使用する。

    IDE ではなく、Visual Studio Code のような、今風の、
    高性能エディタから使用する CLI (Command line interface)。

  • ランタイムは、.NET Core 一択と思われる。

  • 前述のプロジェクトと互換性があるかどうか、不明。

  • ただ、.NET Core 自体がクロスプラットフォームで動作する。

  • また、デザイナとしては、後述の Glade をインストールする。

補足(dotnet new gtkapp の現況): このテンプレートは
標準ではなく、GtkSharp プロジェクトが提供していたものである。

【当時の導入方法】
   dotnet new --install GtkSharp.Template.DotNet
   dotnet new gtkapp -o MyApp
   → GtkSharp/GtkSharp(後述の GitHub)が提供

【現況】★
   ・GtkSharp(GTK3 系)は
     【更新が低調】(2021年頃から動きが少ない)
   ・テンプレートも追随していない

【現在の選択肢】★
 ① 【gir.core】
     → GObject Introspection から自動生成する
       新世代のバインディング
     → 【GTK4 / libadwaita 対応】★
     → .NET 8 以降が前提
 ② 【GtkSharp】(従来)
     → GTK3 世代。既存資産の維持向け
 ③ 【Avalonia UI】★★
     → GTK を使わず、独自レンダラで描画する
     → XAML で書け、Windows/macOS/Linux/Web で動く
     → 【WPF からの移行先として最も現実的】
     → Linux デスクトップ アプリを .NET で作るなら
       まずこちらを検討する

デザイナ

  • 「Windows」側での GUI デザイナ用エディタについて…
  • Visual Studio」に組み込まれた GUI デザイナは今の処存在しない。
  • (直接コードで書く事も選択肢に入る...)

Stetic

Glade

(Glade Interface Designer(DNET_GladeInterfaceDesigner.md))

  • 「GTK2」「GTK3」両方に対応
  • 個別にインストールする。

補足(GUI デザイナの現況): 「Visual Studio に組み込まれたデザイナは
存在しない」という状況は今も変わっていない

【Stetic】★
   ・MonoDevelop に内蔵されていた GTK2 デザイナ
   ・MonoDevelop の終了とともに【事実上消滅】

【Glade】
   ・独立した GUI デザイナ。【GTK3 まで対応】
   ・出力は .glade(XML)
   ・コード側で GtkBuilder として読み込む
   ・GTK4 には【対応していない】★

【GTK4 のデザイナ】
   ・【Cambalache】が Glade の後継的な位置付け
   ・ただし GNOME 公式は
     「【手で .ui を書く / コードで組む】」方向を
     推している ★
     → デザイナ文化そのものが後退している
       (→ [開発支援ツールの自動生成方式](MS_DevSupportToolCodeGen)
         のデザイナ操作型に関する議論と同じ構図)

Gtk Sharp for .NET

前述の開発ツールではなかった。

  • Gtk Sharp の .NET Framework 実装。

  • コチラは、

    • Mono を必要としない。
    • ...が、ピュア .NET の場合は、
      • Mono ランタイム上で動作する。
      • 故に、クロスプラットフォームで動作する。

移行メモ(記述の不整合): 本節の箇条書きは
「Mono を必要としない」と「Mono ランタイム上で動作する」が
一見矛盾している
文脈からは「Windows では .NET Framework 上で動く(Mono 不要)が、
他 OS では Mono 上で動く
」という趣旨と解される。
作者の記述はそのまま残した。

参考

.NET On Rasbian(MS_DotNetOnRaspbian.md

Mono On Rasbian(MS_MonoOnRaspbian.md

.NET Core On Rasbian(MS_DotNetCoreOnRaspbian.md

GTK+(DNET_GTKPlus.md

GTK2

GTK3

(いずれも GTK+(DNET_GTKPlus.md)の該当節を参照)

mono-project.com

github.com

補足(2 つの GitHub リポジトリの違い): 名前が似ているが
別系統である。

【mono/gtk-sharp】★
   ・Mono プロジェクト由来の【古い系統】
   ・GTK2 が中心(gtk-sharp2)
   ・【アーカイブ済み】

【GtkSharp/GtkSharp】
   ・GTK3 対応の【新しい系統】
   ・.NET Standard / .NET Core 対応
   ・NuGet で配布(GtkSharp)
   ・前述の dotnet new gtkapp テンプレートの提供元
   ・【2021年頃から更新が低調】★

→ 「Gtk#」で検索すると両者が混在するため、
  【どちらの話か常に確認する】必要がある

Tags: 移行, .NET開発, Mono, UIサブシステム

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally