現時点で.NET5について分かってきたこと、感想を簡単にまとめる。
- .NET Core 3でWinFormが使えるという話は「馬鹿野郎」レベルで夢想的なものであり、これでもう.NET Frameworkは要らないという主張する者は相手にする意味すらなかった。しかし、.NET 5では最低限の入口ぐらいは入れた
- .NET 5のデスクトップ開発はMAUIではなく、Windows専用。まだマルチプラットフォームではない。MAUIは.NET6待ち
- .NET 5は約束の地ではなかったが、そこを目指していることは分かった。たぶん、.NET 6から7ぐらいではそこそこの線まで行けそうな気もする
- 現在の問題はそこではないことが分かってきた。電子署名がない実行ファイルはインストールしても実行時に警告が出る模様。(何回かで消える模様)
- 実行ファイル(インストーラー含む)のダウンロードは電子署名があってもダウンロード数が少ないと警告を食らい、回りくどい操作をしないとダウンロードできない模様
つまり、手軽にすぐ利用できるという前提を持つ限り、デスクトップアプリのハードルは非常に高い。以前はインストールするためにセットアップを起動してあとは全部リターンで済んでいたが、済まなくなってきている。.NET5でデスクトップ開発ができるとしても、配布は現実的ではない。
代案は2つ。
- Windowsストアで配布する
- Webアプリにする (Blazor開発)
Windowsストアは機能的な制約も大きく審査は厳しい。そもそも配布できるかどうか不明確であり、リスクが高すぎる。そもそも、Windowsストアの制約から解放されるための.NET5の検討でもあった。
Webアプリ化はもっと制限が大きく、機能不足は著しい。こんなものを世界の標準にしているWeb技術関係者は全員切腹ものだろう。しかし、利用するための制約の低さという意味では最も低い。幅広く使われることを想定するアプリはWebアプリとして作りたいが、これも機能の制約との相談である。
結論 §
このままだとMAUIは産まれる前に死ぬ。
好き勝手にGUIアプリを作って配布する文化は事実上既に死んでいる。2010年頃の方法論はもう通用しない。
.NET5は、.NET Core 3時代と比較すると驚くほど良くなっているが、全く別の次元で逆風に晒されている。
雑感 §
Blazorにマルチスレッドの機能がまだ無いのは、WebAssemblyの標準にまだないかららしいのだが、実装は既にあるので、昔のMSなら実装している状況だと思う。
ちなみに、標準準拠100%でも、動かないソフトの価値はゼロである。
我々はこの不自由な状況からどう解放されれば良いのだろうか?