-
Notifications
You must be signed in to change notification settings - Fork 0
MS_GtkSharp
- 戻る(Mono Develop)
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 コマンドを使用する。
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 デザイナは今の処存在しない。
- (直接コードで書く事も選択肢に入る...)
- 「GTK2」のみ対応
- 「Mono Develop」「Xamarin Studio」に
含まれている。
(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 の .NET Framework 実装。
-
コチラは、
移行メモ(記述の不整合): 本節の箇条書きは
「Mono を必要としない」と「Mono ランタイム上で動作する」が
一見矛盾している。
文脈からは「Windows では .NET Framework 上で動く(Mono 不要)が、
他 OS では Mono 上で動く」という趣旨と解される。
作者の記述はそのまま残した。
-
Gtk Sharp - Wikipedia
https://ja.wikipedia.org/wiki/Gtk_Sharp -
MonoDevelopの衝撃 - 七誌の開発日記
https://7shi.hateblo.jp/entry/2012/04/24/233941 -
1研究中: C# VisualStudio for Mac でGtk#を使ってみた。gtk-sharp
http://1studying.blogspot.com/2017/04/c-visualstudio-for-mac-gtkgtk-sharp.html
(いずれも GTK+(DNET_GTKPlus.md)の該当節を参照)
- GtkSharpTutorials | Mono
https://www.mono-project.com/docs/gui/gtksharp/tutorials/
-
mono/gtk-sharp:
Gtk# is a Mono/.NET binding to the cross platform Gtk+ GUI toolkit
and the foundation of most GUI apps built with Mono
https://github.com/mono/gtk-sharp -
GtkSharp/GtkSharp:
.NET wrapper for Gtk and other related libraries
https://github.com/GtkSharp/GtkSharp
補足(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サブシステム
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。