-
Notifications
You must be signed in to change notification settings - Fork 0
MS_Mono
nishi_74322014 edited this page Aug 31, 2026
·
3 revisions
- 戻る(.NETのクロスプラットフォーム対応)
- Mono
- .NET Core
- .NET Standard
-
GNOME プロジェクト創設者のミゲル・デ・イカザが開発
-
Ecma 標準に準じた .NET Framework 互換の環境を実現するための
- オープンソースのソフトウェア群
- またそのプロジェクト名である。
-
2018 年 3 月現在、Xamarinと .NET Foundation が
開発、販売、サポート業務を行っている。
補足(最新化:現在の立ち位置): Mono を巡る状況は大きく変わった。
時期 出来事 2016 Microsoft が Xamarin を買収し、Mono も傘下に 2020〜 .NET 5 以降、Mono ランタイムが .NET 本体に取り込まれる 2024 Microsoft が Mono プロジェクトを WineHQ に移管 つまり現在は次の 2 つに分かれている。
- 「.NET のランタイム実装の 1 つとしての Mono」 — 現役。
Blazor WebAssembly(Blazor)や
モバイル(.NET MAUI)で使われている- 「独立プロジェクトとしての Mono」 — WineHQ が引き継ぎ、
.NET Framework 互換の実装として維持「Mono は終わった」でも「Mono がすべて」でもなく、
CoreCLR と並ぶ、もう 1 つのランタイム実装として生き続けている
というのが正確な理解になる。
-
ピュア .NET のバイナリを動作させることができる。
(中間言語(IL)を Mono JIT して動かすことが出来る。) -
Linux 上で .NET の GUI アプリを動作させる際のランタイムにもなっている模様。
-
故に(、そう言う経緯で)、Xamarinの基盤にもなっている。
-
参考
- .NETアプリをLinux対応にするMono
https://www.ibm.com/developerworks/jp/linux/library/l-mono/index.html
- .NETアプリをLinux対応にするMono
補足(CoreCLR との使い分け): .NET には
2 つのランタイム実装が同居している。
CoreCLR Mono 主な用途 サーバー・デスクトップ WASM・iOS・Android JIT 高性能な階層型 JIT(ReadyToRun + Tiered Compilation) 軽量 JIT / インタプリタ AOT NativeAOT Full AOT(iOS は JIT 禁止のため必須) フットプリント 大きめ 小さい iOS は OS のポリシーで実行時コード生成が禁止されているため、
AOT が必須であり、そこで Mono の AOT が使われている。
ブラウザ(WASM)も同様の制約があり、Mono が担当している。
-
Mono (ソフトウェア) - Wikipedia
https://ja.wikipedia.org/wiki/Mono_(%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2)
- インサイドXamarin
https://www.buildinsider.net/mobile/insidexamarin- Xamarinの基盤となっている「Mono」と、C#コンパイラー「mcs」
http://www.buildinsider.net/mobile/insidexamarin/02 - Xamarinの基盤「Mono」のmonoランタイムとクラスライブラリ
http://www.buildinsider.net/mobile/insidexamarin/03
- Xamarinの基盤となっている「Mono」と、C#コンパイラー「mcs」
- dotnet/runtime(Mono ランタイムは本リポジトリに統合)
https://github.com/dotnet/runtime/tree/main/src/mono - Mono Project(WineHQ 管理)
https://www.mono-project.com/
Tags: 移行, .NET開発, Mono
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。