やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

.NET Core 3.0 の Desktop Packs は Windowsのみ使用可(Linux非サポート)

 Microsoft様にはかないません。

概要

 クロスプラットフォームGUIを作成する単一のコードを書きたい。そのために.NETCoreとEto.Fromが使えないかと思い、調べてみた。

 .NETCoreとEto.Fromの併用はできないっぽい。.NET Core 3.0の Desktop Packs というのを見つけたので調べてみたが、これもLinuxでは使えないっぽい。

参考

.NET Core 3.0

Since WPF and WinForms are now coming to .NET Core with v3.0, this should eventually be possible on all platforms!

WPFとWinFormsは現在、v3.0の.NET Coreに移行しているため、最終的にはすべてのプラットフォームで使用できるはずです。

 な、なんだってー

 .NET Core 3.0はWPFやWinFormが使えるの? それってLinuxでも使えるってことだよね? .NET Core ってクロスプラットフォームだもんね? つまり、もうEto.Formは不要になるってこと? 

 と、期待したが裏切られた。

Windowsのみ (Desktop Packs)

 UWP, WPF, WindowsForm, EF6が加わるっぽい。Desktop Packsと呼ぶらしい。

 でも記事のコメント欄で、MacLinuxのサポート無しとある……。.NETCoreってクロスプラットフォームなんじゃなかったの?

 つまり、グラフィクス系はやっぱりWindowsでしか使えない。コメントでもLinuxで動くことを期待しているのに! というツッコミがある。当然すぎる。  MONO超えならず。Eto.Fromの代わりにもならない。イラネ。Xamarin.FormsこそがクロスプラットフォームGUIライブラリか。

 MicrosoftクロスプラットフォームGUIを開発するつもりはないらしい。HTML/CSSを使った技術ならあるが、開発者たちはHTMLが糞だと理解している。

.NET Core 3.0 Preview1

 やはりWindowsでしか使えない模様……。

 2018-12-17時点では、.NET Core 3.0 Preview1 までしかない。

 クロスプラットフォームに使えるGUIライブラリは幻想でしかないのか。AvaloniaUIが今のところ有力?

 MONOの歴史は以下参考。

所感

Microsoftの独裁

 .NET Frameworkが段階的に廃止されているようで、.NET Coreへの移行はいずれ必要。なもっと古い技術であるMFCの利用者も不満があるようだ。  Microsoftは古い技術のサポートを中止し、次々に半端物を作り出す。ユーザは学習コストを回収する前に開発したソフトを使えなくなる。

 Microsoftとしては自社製のOSでしか動作させないことで自分の利益を確保する狙いと思われる。MONOやGitHubまでMSに買収されてしまい、フリーソフトの未来は闇に閉ざされようとしている。  Microsoftの独裁が再び始まろうとしている?

クロスプラットフォームオープンソースGUIは?

  • MONO + Gtk#
  • MONO + Eto.Forms
  • .NETCore2.0 + Avalonia
  • HTTPServer + HTML/CSS/JS
  • Browser + HTML/CSS/JS
  • Electron(HTML/CSS/JS)
  • Neutronium (C# + XAML + HTML/CSS/JS)

 しかしMONOもMicrosoft支配下なので改悪されたり消されるかもしれない。利用を躊躇するのに充分な理由。

GUI開発ってどの技術使えばいいの?

 C++ + Qtも大変だったし。