Ubuntu(Linux) 上で動かしたり開発したりする 環境 を提供する、
Mono (MonoDevelop) 。
試して見ますか?。
Mono Cross platform, open source .NET framework
https://www.mono-project.com/ が 公式サイト ですね。
其処には、冒頭に以下の記述があります。
Mono is a software platform designed to allow developers to easily create cross platform applications part of the .NET Foundation.
GUI は OS 毎の Graphic Module に依存しますから、
基本的には、
OS 毎に異なる GUI が必要でした。
Windows なら、GDI+ や UWP や WPF 等。
Ubunto 等 Linux (X11)なら、GTK 。
CUI なら、依存度が低く、壁も 薄く低い訳ですが、
GUI になると ... 。
.Netframework を提供していた Microsoft さま は Multi Platform に対応する為、
.Net Core そして .Net への移行を進めています。
そう、謂わば、今は 過渡期! 。
Mono は .Net Core 直前の環境 を 他の OS に持ち込めます。 の、様です。
以前の公表では、WPF は 除外 扱い。 従って、GUI は Form が主体、との事。
ちょっと、脱線しますね。
Ubuntu を使い出して、気付かされたのは、
Windows では 自分で書いた サポート アプリ 群 が 有効に機能していますが、
Ubuntu(Linux) には 開発環境 を入れておらず、
また、開発言語も異なる事から、
痛い(痒い)処に手が届かない! を思い知らされる事になったのです。
入れていない、と書きましたが、 確か、Python は OS 標準で 入っていた筈ですが ... 。
私は、此れを使って、開発に着手! と言うレベルではありません。 (現在は。)
サポート アプリ は 自分の環境に依存する形で書いてあり、
汎用アプリ 等の 機能不足 を補っています。
無論、OS に慣れていない事が、其れに輪を掛けます。
或る意味、手を捥ぎ取られた状態。
ああ!、 と、嘆きの 溜息 ... 。
OS 依存する部分に気を付けて書いてあれば、
Windows の Visul Studio で 自動生成した Form アプリの .exe が、
Ubuntu(Linax) 上で、Mono 経由を条件に、動くのです。
実際に、Windows 上で作成した実行ファイルが そのままで 動くのは 驚き! でした。
下図は、Windows 上で稼働する、OS Native と Ubuntu Mono (Remote Desktop) 経由 との様子です。 同一バイナリ。
OS 依存する部分;
実行時に、OS を判別し、条件分岐するのが最低限必要です。
そうすれば、ひとつの実行ファイルで使い廻しが可能ですね。
ファイルパスは、
Windows では 各ドライブレターから始まり、区切り記号 ¥ ですが、
Ubuntu では / から始まる単一ツリーに、区切り記号 / で、各ドライブ等も含めてマウントされます。
ファイルやパス等に係る 文字列 の 大文字小文字 の違いも留意が必要!。
外部プロセスを呼ぶ場合も、
Windows は C:¥Program Files 等に存在するのが標準ですが、
Ubuntu では アプリを取得した方法に依存して、まちまちですね。
/user/bin や /snap/bin 等。
そう、確認は必須でしょう。
でも、過渡期感は免れません。
.Net 6 (LTS) 正式公開を待つのが正解なのかも。
急ぐのなら、.Net 5 (Current) でも良いのかも知れませんが。
個人的には、
Visual Studio 2022 & .Net 6 登場を待ってから判断したいと思っています。
其れ迄は、暫定的に、Mono (Runtime) を使う事もあり! でしょう。
但し、現状では、色々と、妥協する点があるのも、事実!。 其れは。後日に。
Mono 導入方法や、 実行ファイル実行については、割愛させて戴きます。
[2021/07/06] リンク化、引用形式、図に注記等を挿入
0 件のコメント:
コメントを投稿