Mono(ソフトウェア)

単核症
原作者西面
開発者ワインHQ
初回リリース2004年6月30日 (2004年6月30日
安定版リリース
6.12.0.206 / 2024年2月13日[ 1 ] (2024年2月13日
リポジトリ
書かれたCC#XML
オペレーティング·システムWindowsmacOSLinuxIBM AIXIBM i [ 2 ]
プラットフォームIA-32x64IA-64ARMMIPSRISC-VPowerPCSPARCS390
タイプソフトウェアフレームワーク
ライセンスMITライセンス[ 3 ]
Webサイトwww.mono-project.com

Monoは、 .NET Framework向けに作成されたソフトウェアをLinuxやその他のOSで実行することを目的とした、無料のオープンソースソフトウェアフレームワークです。元々はNovellに買収されたXimianによって開発され、後にMicrosoftに買収されたXamarinによって開発されました。[ 4 ] 2024年8月、MicrosoftはMonoの所有権をWineHQに譲渡しました。[ 5 ]

歴史

カリフォルニア州サンノゼで開催されたOSCON 2009のMonoブース

マイクロソフトが2000年6月に初めて.NET Frameworkを発表したとき、それは「インターネット標準に基づいた新しいプラットフォーム」と説明されました。[ 6 ]そしてその年の12月には基礎となる共通言語基盤がオープン標準「ECMA-335」として公開され、[ 7 ]独立した実装の可能性を切り開きました。[ 8 ] XimianMiguel de Icazaは、.NETがプログラマの生産性を向上させる可能性を信じ、Linux版が実現可能かどうか調査を始めました。[ 9 ]彼らは小さなチームで完全な製品を構築してサポートすることは期待できないと認識し、2001年7月19日のO'ReillyカンファレンスでMonoオープンソースプロジェクトを立ち上げました。

3年間の開発期間を経て、Mono 1.0は2004年6月30日にリリースされました。[ 10 ] Monoは、当初のLinuxデスクトップアプリケーションの開発プラットフォームに重点を置いたものから、組み込みシステムを含む幅広いアーキテクチャとオペレーティングシステムをサポートするものへと進化しました。[ 11 ]

Novellは2003年にXimianを買収した。2011年4月にAttachmateに買収された後、AttachmateはNovellの従業員数百人の人員削減を発表し、[ 12 ] Monoの将来に疑問を投げかけた。[ 13 ] [ 14 ]

2011年5月16日、ミゲル・デ・イカザは自身のブログで、Monoは引き続きXamarinでサポートされると発表した。同社は彼がノベルを解雇された後に設立した会社である。元のMonoチームも新会社に移籍していた。XamarinはMonoの開発を継続し、iOSAndroid向けの独自の.NETスタックを一から書き直す計画だった。これは当時、MonoTouchとMono for Androidはノベルがまだ所有していたためである。[ 15 ]この発表後、プロジェクトの将来が疑問視されるようになった。MonoTouchとMono for Androidは、現在Attachmateが所有する既存の商用製品と直接競合することになり、Xamarinチームがノベルに雇用されていた当時に開発した技術を同じ仕事に使用していないことを証明するのは困難だろうと考えられたからである。 [ 16 ]しかし、2011年7月、現在Attachmateの子会社であるNovellとXamarinは、XamarinにMono、MonoTouch、Mono for Androidの永久ライセンスを付与し、正式にプロジェクトの管理を引き継いだと発表しました。[ 17 ] [ 18 ]

2016年2月24日、マイクロソフトはXamarinを買収する正式契約を締結したと発表した。[ 19 ]

2024年8月27日、マイクロソフトはMonoの所有権をWindows互換レイヤーであるWineの開発チームであるWineHQに譲渡した。 [ 5 ]

現状とロードマップ

Monoの現在のバージョンは6.12.0(2024年6月現在)です。このバージョンでは、 .NET FrameworkのコアAPIとVisual Basic.NETおよびC# 7.0のサポートが提供されます。LINQ to Objects、XML、SQLは配布に含まれています。Windows Forms 2.0もサポートされていますが、積極的に開発されていないため、Monoでのサポートは不完全です。[ 20 ]バージョン4.0は、Microsoftが.NET Coreプロジェクトの一環としてリリースしたMicrosoft独自のソースコードを組み込んだ最初のバージョンでした。

2021年1月14日現在、MonoはWindows Presentation Foundation (WPF)(Monoチームは作業量が多いためWPFのサポートは予定していない)[ 20 ]Windows Workflow Foundation (WF)を除く.NET 4.7のすべての機能を完全にサポートしており、 Windows Communication Foundation (WCF)とASP.NET非同期スタックについては限定的なサポートのみとなっています。ただし、System.WebとWCFは、.NET参照ソースからMonoに「ほぼ即時に」移植できる候補です。[ 21 ] .NET Frameworkの不足している部分の一部は、実験的なMonoサブプロジェクト「 Olive」で開発中です。[ 22 ]

Monoプロジェクトは、Visual Basic .NETコンパイラと、VB.NETアプリケーションの実行用に設計されたランタイムも開発しました。現在、Rolf Bjarne Kvinge氏によって開発が進められています。

月光

Microsoft Silverlightのオープンソース実装であるMoonlightは、Mono 1.9以降に含まれています。[ 23 ] Silverlight 1.0 APIをサポートするMoonlight 1.0は、2009年1月20日にリリースされました。Moonlight 2.0は、Silverlight 2.0とSilverlight 3.0の一部の機能をサポートしています。[ 24 ] Moonlight 3.0のプレビューリリースは2010年2月に発表され、Silverlight 3サポートのアップデートが含まれています。[ 25 ]

Moonlightプロジェクトは2012年5月29日に中止された[ 26 ]。ミゲルによると、プロジェクトの運命を決定づけた要因は2つある。マイクロソフトが「デスクトッププログラミングには役に立たない」ような「人為的な制限」を加えたことと、この技術がWeb上で十分な普及を得られなかったことである。さらに、Silverlight自体も2012年までにマイクロソフトによって非推奨とされた。

モノコンポーネント

Mono は 3 つのコンポーネント グループで構成されます。

  1. コアコンポーネント
  2. Mono/Linux/GNOME 開発スタック
  3. Microsoft 互換性スタック

コアコンポーネントには、C#コンパイラ、共通言語基盤(CLI)用の仮想マシン、コアクラスライブラリが含まれます。これらのコンポーネントはECMA-334およびECMA-335標準に基づいており[ 27 ]、Monoは標準に準拠した無料のオープンソースCLI仮想マシンを提供できます。Microsoftは、両標準をCommunity Promiseライセンスの対象とする声明を発表しました[ 28 ]

Mono /Linux/GNOME開発スタックは、既存のGNOMEフリーでオープンソースのライブラリを使いながらアプリケーション開発を行うためのツールを提供する。これらには、グラフィカルユーザーインターフェース(GUI)開発用のGtk# 、 Geckoレンダリングエンジンを操作するためのMozillaライブラリ、Unix統合ライブラリ(Mono.Posix)、データベース接続ライブラリ、セキュリティスタック、XMLスキーマ言語RelaxNGなどが含まれる。Gtk#を使うと、MonoアプリケーションをネイティブアプリケーションとしてGnomeデスクトップに統合することができる。データベースライブラリは、オブジェクトリレーショナルデータベースdb4oFirebirdMicrosoft SQL Server(MSSQL)、MySQLOpen Database Connectivity(ODBC)、OraclePostgreSQLSQLiteなどへの接続を提供する。Monoプロジェクトは、ウェブサイトでデータベースコンポーネントの開発を追跡している。[ 29 ]

Microsoftの互換性スタックは、 Windows .NET アプリケーションをLinuxに移植するための手段を提供します。このコンポーネント群には、 ADO.NETASP.NETWindows Forms (および libgdiplus)などが含まれます。これらのコンポーネントはEcma標準の対象外であるため、一部のコンポーネントは依然として特許に関する懸念や懸念の対象となっています。

フレームワークアーキテクチャ

Mono の主なコンポーネントは次のとおりです。

コード実行エンジン

Mono ランタイムには、ECMA CILバイトコードをネイティブ コードに変換するコード実行エンジンが含まれており、ARMMIPS (32 ビット モードのみ)、SPARCPowerPCz/ArchitectureIA-32x86-64 、およびIA-64 (64 ビット モード) など、さまざまなプロセッサをサポートしています。

コード ジェネレーターは、次の 3 つのモードで公開されます。

  • ジャストインタイム (JIT) コンパイル: ランタイムは、コードの実行時に ECMA CIL バイトコードをネイティブ コードに変換します。
  • Ahead-of-Time (AOT) コンパイル: このコードは、ECMA CIL バイトコード (通常は .exe または .dll ファイル内) を変換し、オペレーティングシステム、アーキテクチャ、CPU 固有のファイル (foo.exe ファイルの場合、Linux では foo.exe.so が生成されます) に格納されたネイティブコードを生成します。この動作モードでは、通常実行時に実行されるコードのほとんどがコンパイルされます。ただし、トランポリンなどの管理コードなど、JIT を必要とする例外もあるため、AOT イメージは完全にスタンドアロンではありません。
  • 完全静的コンパイル:このモードは一部のプラットフォームでのみサポートされており、事前コンパイルプロセスをさらに一歩進め、プログラムに静的にリンク可能な静的ファイルに必要なすべてのトランポリン、ラッパープロキシを生成し、実行時のJITコンパイルを必要としません。AppleのiOS、SonyのPlayStation 3、MicrosoftのXbox 360といったオペレーティングシステムで使用されています。

Mono 2.6以降では、Mono独自のコード生成エンジンではなく、 LLVMをコード生成エンジンとして使用するようにMonoを設定できるようになりました。これは、高パフォーマンスコンピューティングの負荷など、起動時のパフォーマンスよりも実行時のパフォーマンスが重要となる状況で役立ちます。

Mono 2.7プレビュー版以降では、設定時にどちらかのエンジンを選択する必要がなくなりました。起動時に--llvmまたは--nollvmコマンドライン引数を使用してコード生成エンジンを選択でき、デフォルトでは起動が速いMonoコード生成エンジンが選択されます。

Mono 5.18以降、LLVMのサポートはデフォルトの設定オプションになりました。以前のバージョンでは特別なLLVMフォークが必要でしたが、現在ではMonoはLLVMで処理できない問題に遭遇した場合、独自のコードジェネレーターにフォールバックできるようになりました。[ 30 ]

ガベージコレクター

Mono 2.8以降、Monoランタイムには2つのガベージコレクターが搭載されています。世代別ガベージコレクターとBoehm–Demers–Weiser保守型ガベージコレクターです。Boehmガベージコレクターは特定の種類のアプリケーションでメモリリークを引き起こす可能性があり、長時間実行されるサーバーアプリケーションには適していません。[ 31 ] [ 32 ] Monoはバージョン3.1.1で、デフォルトのガベージコレクターをシンプル世代別GC (SGen-GC)に変更しました。

SGenガベージコレクターは、従来の保守的なスキャナに比べて多くの利点があります。世代別ガベージコレクションを採用しており、新しいオブジェクトはナーサリから割り当てられ、ガベージコレクションサイクル中に生き残ったすべてのオブジェクトは旧世代のメモリプールに移行されます。これは、多くのオブジェクトは一時的なものであり、すぐに収集でき、アプリケーションの存続期間中ずっと存在する長期オブジェクトはごくわずかであるという考え方に基づいています。パフォーマンスを向上させるため、このコレクターは各スレッドにメモリプールを割り当て、スレッドが他のスレッドと調整することなく新しいメモリブロックを割り当てられるようにします。ナーサリから旧世代へのオブジェクトの移行は、ナーサリから旧世代のプールにデータをコピーし、そのデータを指す有効なポインタを新しい場所を指すように更新することによって行われます。この処理は大きなオブジェクトに対してはコストがかかる可能性があるため、MonoのSGenは大きなオブジェクト用に別のメモリプール(ラージオブジェクトセクション)を使用し、それらのオブジェクトに対してマークアンドスイープアルゴリズムを採用しています。[ 31 ]

クラスライブラリ

クラスライブラリは、アプリケーション開発のための包括的な機能セットを提供します。主にC#で記述されていますが、共通言語仕様(CLS)に準拠しているため、任意の.NET言語で使用できます。クラスライブラリは名前空間構造を持ち、アセンブリと呼ばれる共有ライブラリに展開されます。.NET Frameworkについて語る場合、主にこのクラスライブラリを指します。[ 33 ]

名前空間とアセンブリ

名前空間は、類似のクラスを論理的に階層構造にグループ化するメカニズムです。これにより、名前の競合を回避できます。この構造はドット区切りの単語を使用して実装され、最も一般的な最上位レベルの名前空間はSystem(System.IO、System.Netなど)です。AccessibilityやWindowsなど、他にも最上位レベルの名前空間があります。ユーザーは、名前空間ブロック内に要素を配置することで名前空間を定義できます。

アセンブリはクラスライブラリの物理的なパッケージです。これらは.dllファイルであり、Win32共有ライブラリと似ています(ただし、混同しないでください)。アセンブリの例としては、mscorlib.dll、System.dll、System.Data.dll、Accessibility.dllなどがあります。名前空間は複数のアセンブリに分散されることが多く、1つのアセンブリが複数のファイルで構成されることもあります。

共通言語基盤と共通言語仕様

共通言語インフラストラクチャ(CLI)は、共通言語ランタイム(CLR)によって実装され、Mono実行ファイルによって実装されます。ランタイムは.NETアプリケーションをコンパイルおよび実行します。共通言語インフラストラクチャはECMA標準によって定義されています。[ 27 ]アプリケーションを実行するには、関連するパラメータを指定してランタイムを呼び出す必要があります。

共通言語仕様(CLS)はECMA-335の第6章で規定されており、Enumの基底型などの規則を含む、CLIへのインターフェースを定義しています。MonoコンパイラはCLSに準拠したイメージを生成します。これが共通中間言語(Common Intermediate Language)です。Monoランタイムはこのイメージを受け取って実行します。ECMA標準では、CLSに準拠したライブラリをフレームワークとして正式に定義しています。

マネージドコードとアンマネージドコード

ネイティブ .NET/Mono アプリケーション内では、すべてのコードがマネージドコードです。つまり、CLI のメモリ管理とスレッドセーフティ方式によって制御されます。その他の .NET または Mono アプリケーションでは、System.Runtime.InteropServices ライブラリを使用して C# バインディングを作成することで、アンマネージドコードと呼ばれるレガシーコードを使用できます。Mono に同梱されている多くのライブラリは、Gtk#など、CLI のこの機能を利用しています。

単一特異的イノベーション

Mono は、コア C# および CLI 仕様への新しい拡張機能により、いくつかの領域で革新を実現しました。

  • C#コンパイラーをサービスとして利用する(C#コンパイラーをライブラリとして利用する)。[ 34 ]
  • C#インタラクティブシェル。[ 35 ]
  • SIMDサポート[ 36 ]はMono.SIMD名前空間の一部として提供され、特殊なベクトル型へのメソッド呼び出しが、基礎となるプロセッサCPUのSIMD命令に直接マッピングされます。
  • .NETコードの完全な静的コンパイル[ 37 ](Mono/iPhone、Mono/PS3で使用)。
  • モノコルーチン(マイクロスレッドコードと継続を実装するために使用され、主にゲーム開発者向け)。[ 38 ]
  • ライブプロセスへのアセンブリ注入。[ 39 ]
  • JIT バックエンドとしてLLVMを使用します。
  • Cxxi とCppSharp は、C++ コードおよびライブラリと直接相互運用します。

さらに、Monoは様々なオペレーティングシステムやアーキテクチャで利用できます。[ 40 ]

システム要件

Windows 7、Windows 8、Windows 8.1、Windows 10、macOS、または Linux

いくつかのプロジェクトがMonoを拡張し、開発者が自身の開発環境でMonoを利用できるようにしています。これらのプロジェクトには以下が含まれます。

クロスプラットフォーム:

macOS:

  • Cocoa# – ネイティブ macOS ツールキット ( Cocoa ) のラッパー (非推奨)。
  • Monobjc – macOS プログラミング用のバインディングのセット。
  • MonoMac – MonoTouch API 設計に基づいた、macOS プログラミング用の新しいバインディング。

モバイル プラットフォーム:

  • MonoDroid。Androidオペレーティングシステム用のMono。Android APIバインディング付き。
  • MonoTouch。iPhone、iPad、iPod Touch用のMono。iOS APIバインディング付き。

ウィンドウズ:

その他の実装

Microsoftは、現在Windows XPでのみ利用可能なShared Source CLI (Rotor)と呼ばれる.NET 2.0のバージョンを提供しています。MicrosoftのShared Source Licenseは、コミュニティのニーズを満たすには不十分かもしれません(商用利用は明示的に禁止されています)。

フリーソフトウェア財団の廃止されたPortable.NETプロジェクト。[ 44 ]

モノデベロップ

MonoDevelopは、 C#やNemerleBooJavaIKVM経由)などの.NET言語向けに設計された無料の統合開発環境です。C 、C++PythonValaなどの言語もサポートしています。MonoDevelopは元々 SharpDevelopをGtk#に移植したものでしたが、その後Mono開発者のニーズに合わせて進化しました。このIDEには、クラス管理、組み込みヘルプ、コード補完、Stetic(GUIデザイナー)、プロジェクトサポート、統合デバッガーが含まれています。

MonoDocブラウザは、APIドキュメントとコードサンプルへのアクセスを提供します。ドキュメントブラウザはWikiスタイルのコンテンツ管理を採用しており、開発者はドキュメントを編集・改善することができます。

Xamarin.iOS と Xamarin.Android

Xamarin.iOSとXamarin.Androidは、どちらもXamarinによって開発され、 iPhoneおよびAndroidベースのスマートフォン向けのMonoの実装でした。以前は商用ライセンスのみで提供されていましたが[ 45 ]、2016年にMicrosoftがXamarinを買収した後、Monoランタイム自体がMITライセンスの下で再ライセンスされ[ 46 ]、Xamarin.iOSとXamarin.Androidはどちらも無料のオープンソースとなっています[ 47 ] 。

Xamarin.iOSとXamarin.Androidは2024年5月1日にサポート終了となり、.NETに直接統合されました。[ 48 ] [ 49 ] Microsoftは.NET MAUIへの移行を推奨しています。[ 49 ]

Xamarin.iOS

Xamarin.iOS(旧称MonoTouch)は、iPhone、iPod、iPadデバイスで動作するC#および.NETベースのアプリケーションを開発者が作成できるライブラリでした。Monoフレームワークをベースとし、Novellと共同で開発されました。Monoアプリケーションとは異なり、Xamarin.iOSの「アプリ」はApple iPhoneおよびiPadに特化したマシンコードにコンパイルされていました。[ 50 ]これは、iOSカーネルがデバイス上で ジャストインタイムコンパイラの実行を阻止するためです。

Xamarin.iOS スタックは以下で構成されます。

  • コンパイラ
    • Mono プロジェクトの C#
    • RemObjectのOxygeneのようなサードパーティコンパイラはXamarin.iOSもターゲットにできる
  • コア .NET ライブラリ
  • 開発SDK:
    • リンカー – 最終アプリケーションで使用されるコードのみをバンドルするために使用されました
    • mtouch – ターゲットデバイスに展開するために使用されるネイティブコンパイラとツール
    • インターフェースビルダー統合ツール
  • ネイティブCocoaTouch APIをバインドするライブラリ
  • Xamarin Studio IDE

主な IDE として Xamarin Studio が使用されましたが、Xcodeおよび iOS シミュレータへの追加リンクも記述されています。

2010年4月から9月初旬にかけて、AppleがiPhone開発者向けにC、C++、Objective-C以外の言語での開発と、iOSプラットフォームとiPhoneアプリケーション間の中間層の使用を禁止する新しい規約を導入したため、MonoTouchの将来は不透明になった。これにより、MonoTouchやUnityなどの他の技術の将来は不透明になった。[ 51 ]その後、2010年9月、Appleはこの制限を撤回し、同年初めに導入した言語制限を緩和すると発表した。[ 52 ] [ 53 ]

バージョン履歴

リリース履歴
日付バージョン注記
2009年9月14日モノタッチ1.0 [ 54 ]初回リリース
2010年4月5日モノタッチ2.0 [ 55 ]iPadサポート
2010年4月16日モノタッチ3.0 [ 56 ]iPhone 4のサポート
2011年4月6日モノタッチ4.0 [ 57 ]iOS 4のサポート
2011年10月12日モノタッチ5.0 [ 58 ]iOS 5のサポート
2012年9月19日モノタッチ6.0 [ 59 ]iOS 6のサポート
2013年2月20日Xamarin.iOS 6.2 [ 60 ]Visual Studio サポート
2013年7月24日Xamarin.iOS 6.4 [ 61 ].NET 4.5 async/await サポート
2013年6月19日Xamarin.iOS 7.0 [ 62 ]XCode 5とiOS 7のサポート
2014年9月10日Xamarin.iOS 8.0 [ 63 ]iOS 8およびXcode 6のサポート
2015年9月16日Xamarin.iOS 9.0 [ 64 ]iOS 9およびXcode 7のサポート
2016年9月13日Xamarin.iOS 10.0 [ 65 ]iOS 10とXcode 8のサポート
2017年9月19日Xamarin.iOS 11.0 [ 66 ]iOS 11とXcode 9のサポート
2018年9月14日Xamarin.iOS 12.0 [ 67 ]iOS 12およびXcode 10のサポート
2019年9月13日Xamarin.iOS 13.0 [ 68 ]iOS 13とXcode 11のサポート
2020年9月20日Xamarin.iOS 14.0 [ 69 ]iOS 14とXcode 12のサポート

Xamarin.Android

Xamarin.Android(旧称Mono for Android)は、当初Novell社が開発し、その後Xamarin社が引き継いだ、Androidベースのスマートフォン向けMonoの独自仕様[ 70 ]実装でした。 [ 71 ] [ 72 ] [ 73 ] 2011年4月6日に初めてリリースされました。[ 74 ] Mono for Androidは、開発者があらゆるモバイルプラットフォームで動作するクロスプラットフォームアプリケーションをより簡単に作成できるようにするために開発されました。[ 75 ] H-Onlineとのインタビューで、ミゲル・デ・イカザ氏は、「私たちのビジョンは、開発者がすべてのモバイルプラットフォームでエンジンとビジネスロジックのコードを再利用し、ユーザーインターフェースのコードをプラットフォーム固有のAPIに置き換えることです」と述べています。[ 76 ]

2010年8月、マイクロソフトの広報担当者であるマイクロソフト・オープンソース・テクノロジー・センターのトム・ハンラハン氏は、AndroidのJava使用をめぐってオラクルがGoogleを提訴した訴訟について、「オラクルがJavaをめぐってGoogleに対して取っているような行動は起こらないだろう。Androidへの.NET移植がMono経由であれば、マイクロソフト・コミュニティ・プロミス・アグリーメントの対象となる」と述べた。[ 77 ] [ 78 ]

Xamarin.Android スタックは次のコンポーネントで構成されています。

  • Monoランタイム
  • Android UIデザイナー[ 79 ]
  • ライブラリ:
    • Core .NET クラスライブラリ
    • ネイティブの Android/Java API をバインドするライブラリ
  • パッケージ化、展開、デバッグを行うための SDK ツール
  • Xamarin Studio と Visual Studio 2010 を統合して、UI を設計し、リモートでデバッグし、展開します。

macOS上のMono

ココアシャープ

Cocoa#(CocoaSharpとも呼ばれる)は、 Mac OS X用のブリッジフレームワークであり、Monoランタイムで開発されたアプリケーションがCocoa APIにアクセスできるようにしました。2004年8月12日に最初にリリースされ、[ 80 ]、2005年2月18日にリリースされたバージョン1.0.6からMonoディストリビューションに含まれていました。2008年以降は開発が進められておらず、現在は非推奨となっています。[ 81 ]

モノオブジェクト

MonobjcはCocoaSharpの後継です。Monobjcにより、.NET開発者はネイティブコードを使わずに、Cocoaを含むMac OS X APIのほとんどを利用でき、ネイティブUIを実現できます。

Xamarin.Mac

Xamarin.Macは、開発者がMac上で.NETおよびC#アプリを実行できるようにするライブラリです。[ 82 ]

ライセンス

Monoは、 QtMozilla Application Suiteなどの製品と同様に、Xamarinによってデュアルライセンスされています。MonoのC#コンパイラとツールはGNU General Public License(GPLv2のみ)(Monoバージョン2.0以降、Mono C#コンパイラのソースコードはMIT X11 Licenseでも利用可能)の下でリリースされています。[ 83 ]ランタイムライブラリはGNU Lesser General Public License(LGPLv2のみ)の下で、クラスライブラリはMIT Licenseの下でリリースされています。これらはすべてフリーソフトウェアおよびオープンソースライセンスであるため、Monoはフリーオープンソースなソフトウェアです。

C#コンパイラのライセンスはGPLからMIT X11ライセンスに変更され[ 84 ]、 GPLでは不可能だった以下のいくつかのケースでコンパイラコードの再利用が可能になった。

  • Monoのサービスとしてのコンパイラ
    • Monoインタラクティブシェル
    • Mono埋め込み可能C#コンパイラ
  • Mono による C# 4.0 動的バインダーの実装。
  • MonoDevelopの組み込みパーサーとASTグラフ

2016年3月18日、マイクロソフトによるXamarinの買収が正式に完了した。[ 85 ] 2016年3月31日、マイクロソフトはMicrosoft Buildで、以前は商用ライセンスが必要だったシナリオでも、MonoをMITライセンスの下で完全に再ライセンスすると発表し、 [ 86 ]また、マイクロソフトは「Monoを使用、販売、販売のために提供、輸入、または配布」する当事者に対して「適用可能な特許」を主張しないと述べた。[ 87 ] [ 88 ]また、XamarinがMonoプロジェクトを.NET Foundationに寄贈したことも発表された。[ 87 ]

MonoとMicrosoftの特許

2009年7月6日、マイクロソフトはECMA 334およびECMA 335仕様をコミュニティプロミスの下に置くことを発表しました。これは、.NETの代替実装を実装、配布、または使用する者に対して特許を主張しないことを誓約するものです。[ 89 ] Monoによる.NETスタックのコンポーネントの実装は、標準化のためにECMAに提出されていませんでしたが、プロジェクトの存続期間の大部分において特許侵害の懸念の原因となっていました。[ 90 ]特に、マイクロソフトが特許訴訟を通じてMonoプロジェクトを破壊する可能性があるかどうかについて議論が交わされてきました。[ 91 ]

ECMA に提出された基本テクノロジ、つまり Unix/GNOME 固有の部分は、Microsoft が ECMA 334 ( C# ) および ECMA 335 ( CLI ) 標準の両方をMicrosoft Community Promiseの下に明示的に配置しているため、安全であると主張されています。懸念は主に、ASP.NETADO.NETWindows Forms (非標準化された名前空間を参照) など、.NET Framework 上に Microsoft が開発したテクノロジ、つまり Mono の Windows 互換性スタックを構成する部分に関係しています。これらのテクノロジは現在、Mono に完全に実装されておらず、Mono アプリケーションの開発に必須ではありません。これらは、Windows システムとの完全な互換性を必要とする開発者とユーザーのために用意されているだけです。

2009年6月、Ubuntu技術委員会は「Monoやそれをベースにしたアプリケーションをアーカイブやデフォルトのインストールセットから除外する理由はない」と述べた。[ 92 ]

フリーソフトウェア財団(FSF)のリチャード・ストールマン氏は2009年6月2日、「C#でプログラムを書くことを推奨すべきではない。したがって、GNU/LinuxディストリビューションのデフォルトインストールやGNOMEの主なインストール方法にC#実装を含めるべきではない」と述べた。[ 93 ] 2009年7月1日、ブレット・スミス氏(FSF所属)は「マイクロソフトの特許の方がはるかに危険だ。GNU/Linuxの敵を自称し、特許を使ってコミュニティを攻撃する意向を表明した唯一の大手ソフトウェア企業だ」「C#は私たちにとって独特の脅威である」「コミュニティの約束はこれらを変えるものではない」と述べた。[ 94 ]

Fedoraプロジェクトのリーダーであるポール・フリールズ氏は、「Monoについては深刻な懸念を抱いており、法律顧問と引き続き検討し、我々の側でどのような措置が必要か検討していく」と述べているが、「Monoを削除する決定を下すのに十分な法的結論にはまだ達していない」としている。[ 95 ]

2011年11月、Ubuntu開発者サミットにおいて、開発者らはUbuntu 12.04以降、MonoベースのBansheeメディアプレーヤーをUbuntuのデフォルトインストールから削除することに投票した。削除理由としてはARMアーキテクチャでのパフォーマンス問題、GTK+ 3バージョンでのブロッキング問題、そして開発者らの意見では「メンテナンスが不十分」であることなどが挙げられたが、Monoに依存する残りのプログラムであるgbrainyTomboyも削除対象となったため、この決定はMonoを基本ディストリビューションから削除したいという意向にも影響されたのではないかという憶測も浮上した。Mono開発者のJoseph Michael ShieldsはARM上でのBansheeのパフォーマンスを擁護し、またBansheeが適切にメンテナンスされていないという主張は主要な貢献者の一人に対する「直接的な個人的侮辱」であると述べた。[ 96 ]

Monoで開発されたソフトウェア

Bansheeメディアプレーヤー
GNOME Do

Monoアプリケーション・プログラミング・インターフェース(API)とC#を用いて、様々なアプリケーションをカバーする多くのプログラムが開発されています。Linuxデスクトップ向けに開発されたプログラムには、BansheeBeagleF-SpotGbrainyDocky / GNOME DoMonoTorrentPintaTomboyなどがあります。Logos 5 Bible Study Software(OS X版)は、macOS向けに開発されました。

シムズ3セカンドライフスクリプト言語のため)、OpenSimulator仮想世界サーバー、UnityMonoGameゲームエンジンで構築されたゲームなど、多くのビデオゲームもMonoを使用しています。[ 97 ] OpenRAはAppleディスクイメージとLinux AppImagesをMonoにバンドルし、ゲームからほぼすべての依存関係を削除しています。[ 98 ]

バージョン履歴

リリース履歴[ 99 ]
日付バージョン[ 100 ]注記
2004年6月30日1.0 [ 101 ]C# 1.0 サポート
2004年9月21日1.1 [ 102 ]
2006年11月9日1.2 [ 103 ]C# 2.0サポート
2008年10月6日2.0 [ 104 ]MonoのAPIは.NET 2.0と同等になりました。C # 3.0およびVisual Basic 8コンパイラが導入されました。新しいMono固有のAPI:Mono.Cecil、Mono.Cairo、Mono.Posix。Gtk # 2.12がリリースされました。Gendarme検証ツールとMonoリンカーが導入されました。
2009年1月13日2.2 [ 105 ]MonoはJITエンジンを新しい内部表現[ 106 ]に切り替え、パフォーマンスを向上させ、Mono.Simd [ 36 ] Mono.Simd名前空間でSIMDサポートを導入しました。Monoは、開発者が完全な静的アプリケーションを作成できるようにするFull Ahead of Timeコンパイルを導入し、C# Compiler as a Service [ 34 ]とC# Interactive Shell [ 35 ](C# REPL) を導入しました。
2009年3月30日2.4 [ 107 ]このリリースでは、2.2 で出荷されたすべての機能がほぼ改良され、SUSE Linux での Mono の長期サポートの基盤となりました。
2009年12月15日2.6 [ 108 ]Monoランタイムは、コード生成バックエンドとしてLLVMを使用できるようになりました。このリリースでは、Monoコルーチン、Monoソフトデバッガー、そしてMoonlightやその他のWebベースプラグインに必要なCoreCLRセキュリティシステムが導入されています。クラスライブラリSystem.IO.Packagingでは、WCFクライアント、WCFサーバー、LINQ to SQLが新たにサポートされています。インタラクティブシェルは自動補完をサポートし、LINQ to SQLは複数のデータベースバックエンドをサポートしています。xbuildビルドシステムも導入されました。
2010年9月22日2.8 [ 109 ].NET 4.0 プロファイルのデフォルト、C# 4.0のサポート、新世代のガベージコレクター、Parallel Extensions、WCF Routing、CodeContracts、ASP.NET 4.0 を含み、1.0 プロファイルのサポートは廃止。LLVM エンジンは生成されたコードの 99.9% をサポートするように調整され、ランタイムに選択可能な llvm と gc。MicrosoftのDynamic Language Runtime、MEF、ASP.NET MVC 2、OData Client オープンソースコードが組み込まれています。リリース 3.0 になります。
2011年2月15日2.10 [ 110 ]
2012年10月18日3.0 [ 111 ]C# 5.0サポート、非同期サポート、非同期基本クラス ライブラリのアップグレード、および MVC4 - 部分的、非同期機能はサポートされません。
2013年7月24日3.2 [ 112 ]デフォルトのガベージコレクタはBoehmではなくSGENになりました
2014年3月31日3.4 [ 113 ]
2014年8月12日3.6 [ 114 ]
2014年9月4日3.8 [ 115 ]
2014年10月4日3.10 [ 116 ]
2015年1月13日3.12 [ 117 ]
2015年4月29日4.0 [ 118 ].NET 4.5プロファイルをデフォルトとし、.NET 4.5アセンブリのみを同梱。デフォルトはC# 6.0。Microsoftのオープンソース.NET Coreコードを統合した最初のリリース。
2017年5月10日5.0 [ 119 ]C#7 のサポートを有効にする Roslyn C# コンパイラの出荷。互換性向上のため、msbuild の出荷と xbuild の非推奨。GC の所要時間を削減するために、同時実行 SGen ガベージ コレクターの有効化。HTTPS 接続用に macOS に AppleTLS スタックを導入。.NET クラス ライブラリの統合の継続的な進捗。macOS パッケージの libjpeg の更新。
2017年7月14日5.2 [ 120 ].NET Standard 2.0、厳密なアセンブリ名、実験的な既定のインターフェイス メンバーのサポート。
2017年10月5日5.4 [ 121 ]JIT ランタイムは、並行メソッドのコンパイルとその他のさまざまなパフォーマンス最適化をサポートするようになりました。.NET 4.7 参照アセンブリが追加されました。
2018年2月1日5.8 [ 122 ]初期のWebAssemblyポート。SGen GC のモード。Roslyn の csi (C# インタラクティブ) REPL ツールが含まれています。
2018年2月26日5.10 [ 123 ]インタプリタがデフォルトのインストールに含まれるようになりました。ランタイムがデフォルトのインターフェースメソッドをサポートするようになりました。WebAssembly が信頼できるものと見なされるようになりました。.NET 4.7.1 / C# 7.2 / F# 4.1 をサポートします。
2018年5月8日5.12 [ 124 ]IBM AIX/i への移植。VB.NET コンパイラーが含まれるようになりました。jemalloc使用するオプションがあります。
2018年8月7日5.14 [ 125 ].NET との互換性を向上させるWindows.Forms のメジャーアップデート
2018年10月8日5.16 [ 126 ]ハイブリッドサスペンドガベージコレクター、クライアント証明書のサポート、C# 7.3 のサポート
2018年12月21日5.18 [ 127 ].NET 4.7.2 のサポート; より多くのCoreFXコードが使用される
2019年4月11日5.20 [ 128 ]System.DataアセンブリのSSPI(セキュリティサポートプロバイダーインターフェイス); さまざまな問題が解決されました
2019年7月17日6.0 [ 129 ]C#コンパイラのデフォルトバージョンはC# 8.0 RC。デバッガーサポートのさまざまな安定性の向上。Monoインタープリターは機能が完全かつ安定しています。
2019年9月23日6.4 [ 130 ]C# 8 言語バージョンの C# コンパイラ サポート、.NET Standard 2.1 のサポート
2019年12月10日6.6 [ 131 ].NET 4.8 参照アセンブリを追加しました
2020年1月15日6.8 [ 132 ]さまざまなバグ修正
2020年5月19日6.10 [ 133 ]さまざまなバグ修正
2020年11月24日6.12 [ 134 ]さまざまなバグ修正
2025年3月4日6.14 [ 135 ]WineHQへの移管後の最初のリリース

参照

参考文献

引用

  1. ^ 「Monoリリース」。Mono
  2. ^ AIX および IBM i での Mono の紹介
  3. ^ 「FAQ: ライセンス」 。 2020年7月3日閲覧
  4. ^ 「MicrosoftがXamarinを買収し、より多くの開発者があらゆるデバイスでアプリを構築できるように支援」公式Microsoftブログ。2016年2月24日。 2016年2月24日閲覧
  5. ^ a b Sourav, Rudra (2024年9月2日). 「MicrosoftがオープンソースプロジェクトをWineチームに引き継ぐという予想外の動き:寛大な変化か?」 It 's FOSS News . 2024年9月8日閲覧
  6. ^ Bonisteel, Steven (2000年6月23日). 「Microsoftは.NETの将来にしか目を向けていない」 . ZDNet. 2011年11月5日時点のオリジナルよりアーカイブ。 2011年4月5日閲覧
  7. ^ 「ECMA-335-Part-I-IV - ECMA-335、第1版、2001年12月」(PDF)
  8. ^ Wilcox, Joe; Shankland, Stephen (2001年6月28日). 「Microsoft、コード共有に進出」 . ZDNet.
  9. ^ "[Mono-list] Monoの初期の歴史" . mono-list (メーリングリスト). 2003年10月13日. 2011年6月6日時点のオリジナルよりアーカイブ2005年3月30日閲覧。
  10. ^ 「OSS .NET実装Mono 1.0リリース - Ars Technica」 ArsTechnica 2004年6月30日. 2009年10月23日閲覧
  11. ^ 「サポートされているプラ​​ットフォーム」。MonoのWebサイト。
  12. ^ Koep, Paul (2011年5月2日). 「従業員によると、Novellのプロボオフィスで数百人が解雇された」 . KSL-TV . 2011年5月7日閲覧
  13. ^ Vaughan-Nichols, Steven J. (2011年5月4日). 「Monoは死んだのか? Novellは死につつあるのか?」 ZDNet . 2024年8月2日閲覧
  14. ^ Clarke, Gavin (2011年5月3日). 「.NET Android and iOS clones stripped by Attachmate」 . The Register . 2011年5月7日閲覧。
  15. ^ “Xamarin の発表 - Miguel de Icaza” .ティラニア.org 2011-05-16 2013 年 7 月 17 日に取得
  16. ^ 「Monoの終焉と再生」 infoq.com 2011年5月17日閲覧2011年5月29日たとえサポートしていないとしても、AttachmateはXamarinの将来の製品と直接競合する製品を所有しています。AttachmateとXamarinの間で何らかの法的取り決めがなければ、Xamarinは新しい開発が以前の製品で使用されていた技術を一切使用していないことを証明するという困難な課題に直面することになります。これは実際にはネイティブAPIのラッパーに過ぎないことを考えると、Attachmateのコードに精通していないチームであっても、クリーンルーム実装であることを証明するのは困難でしょう。
  17. ^ 「SUSEとXamarin、イノベーションの加速とMono顧客およびコミュニティのサポートで提携」 Novell 2011年7月18日。 2011年7月18日閲覧この契約により、XamarinはMono、MonoTouch、Mono for Android、Mono Tools for Visual Studioを含むすべての知的財産に対する広範な永続ライセンスを付与されます。Xamarinはまた、Monoベースの製品を使用するSUSE顧客に技術サポートを提供し、Monoオープンソースコミュニティプロジェクトの運営を担います。
  18. ^ de Icaza, Miguel (2011-07-18). 「Novell/Xamarin Partnership around Mono」. 2011年7月18日閲覧。
  19. ^ 「MicrosoftがXamarinを買収し、より多くの開発者があらゆるデバイスでアプリを構築できるように支援」公式Microsoftブログ。2016年2月24日。 2016年2月24日時点のオリジナルよりアーカイブ。 2016年2月24日閲覧
  20. ^ a b de Icaza, Miguel (2011-03-07). "GDC 2011" . 2011-03-11閲覧。WPFを構築する予定はありません。実装を適切な期間内に構築するための人員が不足しているからです(...)OpenGL/DirectX ベースのツールの場合は Windows.Forms を使用してください。ただし、Windows.Forms は現在開発が活発ではないため、ツール側でバグ修正や回避策が必要になる可能性があることにご留意ください。
  21. ^ 「Mono互換性リスト」
  22. ^ 「Monoプロジェクトロードマップ - Mono」 . Mono-project.com . 2013年7月17日閲覧
  23. ^ "MoonlightRoadmap" . Mono Team . 2008年11月8日閲覧。
  24. ^ 「Moonlight 2のリリース、Moonlight 3および4へのロードマップ — Miguel de Icaza」 Tirania.org、2009年12月17日。 2013年7月17日閲覧
  25. ^ “Moonlight 3.0 プレビュー 1 — Miguel de Icaza” .ティラニア.org 2010年2月3日2013 年 7 月 17 日に取得
  26. ^ 「Xamarin が Linux 向け Silverlight テクノロジーを放棄ZDNet
  27. ^ a b「Ecma-335」
  28. ^ "Technet.com" . 2013年5月23日時点のオリジナルよりアーカイブ2009年7月7日閲覧。
  29. ^ 「データベース アクセス - Mono」
  30. ^ 「Mono LLVM」 . Mono .
  31. ^ a b「Compacting GC」 . mono-project.com . 2008年12月16日閲覧
  32. ^ Boehm, Hans-J. 「保守的ガベージコレクションの利点と欠点」 Xerox PARC . 2013年7月24日時点のオリジナルよりアーカイブ。 2008年12月16日閲覧
  33. ^ 「.NET Framework アーキテクチャ」。公式 Mono ドキュメント。
  34. ^ a b「MonoのC#コンパイラーがWindows上でサービスとして利用可能に。 - Miguel de Icaza」 Tirania.org、2010年4月27日。 2013年7月17日閲覧
  35. ^ a b「CsharpRepl - Mono」 . Mono-project.com . 2013年7月17日閲覧
  36. ^ a b「MonoのSIMDサポート:Monoをゲームに安全に - Miguel de Icaza」 Tirania.org、2008年11月3日。 2013年7月17日閲覧
  37. ^デ・イカザ、ミゲル。「Mono での静的コンパイル」
  38. ^ 「継続 - モノ」
  39. ^デ・イカザ、ミゲル。「Monovation: ライブ プロセスへのアセンブリ インジェクション」
  40. ^ 「サポートされているプラ​​ットフォーム - Mono」
  41. ^ Narayanaswamy, Anand (2012年11月23日). 「Xwtでクロスプラットフォームアプリケーションを構築する」 . InfoQ . 2016年4月15日時点のオリジナルよりアーカイブ2016年4月15日閲覧。
  42. ^ de Icaza, Miguel (2013年2月22日). 「Xamarin Studioの誕生」 . InfoQ . 2016年4月15日時点のオリジナルよりアーカイブ。 2016年4月15日閲覧
  43. ^ 「Xwt Read Me」 . Xwt on GitHub . 2012年1月15日. 2016年4月16日時点のオリジナルよりアーカイブ。 2016年4月15日閲覧
  44. ^ 「DotGNUプロジェクト」 。 2014年6月2日閲覧
  45. ^ 「FAQ」 . os.xamarin.com. 2011-08-01. MonoTouch はオープンソースの Mono プロジェクトをベースにした商用製品であり、開発者ごとにライセンスが付与されます。
  46. ^ “モノラル再ライセンスMIT” . www.mono-project.com。 2016年3月31日。
  47. ^ 「Xamarin for Everyone」 blog.xamarin.com. 2016年3月31日。2016年4月12日時点のオリジナル記事よりアーカイブ2016年4月11日閲覧。本日、Android、iOS、Mac向けのXamarin SDKをMITライセンスに基づき、今後数ヶ月以内にオープンソース化することを発表します。
  48. ^ 「公式Xamarinサポートポリシー」 . dotnet.microsoft.com . Microsoft . 2026年1月26日閲覧
  49. ^ a b "Xamarin" . dotnet.microsoft.com . Microsoft . 2026年1月26日閲覧
  50. ^ 「MonoTouchとiPhone 4」。MonoTouchで構築されたアプリケーションは、他のネイティブアプリケーションと区別がつかないネイティブアプリケーションです。
  51. ^ 「AppleがAdobeを狙う…それともAndroidか?」 2010年4月9日。
  52. ^ 「App Store Reviewガイドラインに関するAppleの声明」彼らの意見に基づき、本日、iOS開発者プログラムライセンスのセクション3.3.1、3.3.2、および3.3.9に重要な変更を加え、今年初めに導入した一部の制限を緩和します。特に、iOSアプリの作成に使用される開発ツールに関するすべての制限を緩和します。ただし、作成されたアプリがコードをダウンロードしない限りです。これにより、開発者が望む柔軟性を提供しつつ、必要なセキュリティを確保できるようになります。
  53. ^ 「MonoTouchユーザーにとって素晴らしいニュース」これらの新しい用語により、曖昧さは解消され、C#愛好家はMonoTouchを再び使い始めることができます。ガベージコレクションや強い型付け言語を好む開発者は、作業を再開できます。
  54. ^デ・イカザ、ミゲル。「MonoTouch 1.0 のリリース」
  55. ^MonoTouch 2.0.0」。Xamarin
  56. ^MonoTouch 3.0.0」。Xamarin
  57. ^MonoTouch 4.0.0」。Xamarin
  58. ^MonoTouch 5.0」。Xamarin
  59. ^MonoTouch 6.0」。Xamarin
  60. ^ "Xamarin.iOS 6.2" . Xamarin . 2023年1月28日.
  61. ^ "Xamarin.iOS 6.4" . Xamarin . 2022年7月8日.
  62. ^ 「iOS 7とXamarin:準備は万端」 Xamarinブログ2013年9月18日閲覧。 2021年3月20日閲覧
  63. ^ 「iOS 8、Xamarinでさらに大きく、さらに便利に」 Xamarinブログ2014年9月10日2021年3月20日閲覧
  64. ^ 「Xamarin for iOS 9: Search Deeper」 Xamarin Blog 2015年9月16日. 2021年3月20日閲覧
  65. ^ 「メジャーアップデート:iOS 10、Android Nougat、その他の注目機能」 Xamarinブログ2016年9月13日閲覧。 2021年3月20日閲覧
  66. ^ spouliot (2017年9月19日). 「Xamarin.iOS 11.0 リリースノート - Xamarin」 . docs.microsoft.com . 2021年3月20日閲覧
  67. ^ spouliot (2018年9月14日). 「Xamarin.iOS 12.0 リリースノート - Xamarin」 . docs.microsoft.com . 2021年3月20日閲覧
  68. ^ spouliot (2019年9月13日). 「Xamarin.iOS 13.0 リリースノート - Xamarin」 . docs.microsoft.com . 2021年3月20日閲覧
  69. ^ spouliot (2020年9月21日). 「Xamarin.iOS 14.0 リリースノート - Xamarin」 . docs.microsoft.com . 2021年3月20日閲覧
  70. ^ 「Mono for Androidのライセンスはどのように付与されますか?」 Mono for Android FAQ. 2011年8月28日. 2012年3月29日閲覧
  71. ^ 「Novell の Mono プロジェクトが Android に .NET 開発をもたらす」 NetworkWorld。
  72. ^ 「NovellのMonoプロジェクトがAndroidに.NET開発をもたらす」 InfoWorld、2010年3月16日。
  73. ^ 「MonoDroid:Androidに.NETサポートが追加」 TechieBuzz、2022年10月18日。
  74. ^ 「Mono for Android が C# を Android に導入」 Heise Online 2011年4月7日 . 2011年4月7日閲覧
  75. ^ 「Novell (Mono/C#) が MonoDroid を開発中」。Android Community。2010 年 2 月 18 日。これにより、開発者はクロスプラットフォーム アプリを簡単に作成できるようになり、MonoTouch を使用して作成された既存のアプリの一部を Android に移植できるようになります。
  76. ^ 「Mono for Android」 . H-Online.私たちのビジョンは、開発者がエンジンとビジネスロジックのコードをあらゆるモバイルプラットフォームで再利用し、ユーザーインターフェースのコードをプラットフォーム固有のAPIに置き換えることです。
  77. ^ 「MicrosoftはAndroidにおける(Mono).NETの普及を止めない」 TechWorld。OracleがJavaに関してGoogleに対して行っているような措置は取られないだろう。Androidへの.NET移植がMono経由で行われた場合、Microsoft Community Promise Agreementの対象となる。
  78. ^ 「MicrosoftはAndroid上の.NETは安全であり、Oracleのような訴訟は起こらないと述べている」。Developer Fusion。
  79. ^ 「Xamarin Designer for Android」 . Visual Studio Magazine. 5月14日、XamarinはAndroid 4.2向けのMonoを発表しました。
  80. ^ 「Cocoa# が形になりつつあります。最初のスクリーンショットが公開されました – OSnews」
  81. ^ "macOS | Mono" . www.mono-project.com . 2023年2月4日閲覧。
  82. ^ davidortinau. 「Xamarin.Mac - Xamarin」 . learn.microsoft.com . 2023年2月4日閲覧
  83. ^ 「MIT X11ライセンスに基づくMono C#コンパイラ」 Novell Inc. 2008年4月8日。2008年5月13日時点のオリジナルよりアーカイブ。 2008年4月9日閲覧
  84. ^ de Icaza, Miguel. 「Mono C# コンパイラーが MIT X11 ライセンスにも対応」 .
  85. ^ 「Xamarin for Everyone」。Xamarin Blog。Xamarin。2016年3月31日。2016年4月12日時点のオリジナルよりアーカイブ。 2016年4月12日閲覧
  86. ^アンダーソン、ティム(2016年3月31日)「Microsoft、Xamarinのツールとコードを無料かつオープンソース化へThe Register
  87. ^ a b Ferraira, Bruno (2016年3月31日). 「XamarinがVisual Studioに無料で付属」 . The Tech Report .
  88. ^ 「MicrosoftのMono特許に関する約束」 . Mono on GitHub . Mono Project. 2016年3月28日. 2016年4月12日時点のオリジナルよりアーカイブ。 2016年4月12日閲覧
  89. ^ 「ECMA C#およびCLI標準」 Port 25、2009年7月6日。2013年5月23日時点のオリジナルからアーカイブ2009年7月7日閲覧。コミュニティプロミスに基づき、Microsoftは、LGPLやGPLなどのオープンソースライセンスモデルを含む、あらゆる開発モデルまたは配布モデルの下で対象実装を作成、使用、販売、販売の申し出、輸入、または配布する者に対して、必要な請求を主張しないことを保証します。
  90. ^ Babcock, Charles (2001年8月7日). 「オープンソースは.NETに巻き込まれるのか?」 ZDNet Asia. 2011年11月5日時点のオリジナルよりアーカイブ。 2020年12月30日閲覧
  91. ^ Smith, Brett (2009年7月16日). 「Microsoftの空約束」 . fsf.org. 2013年5月1日時点のオリジナルよりアーカイブ2020年12月30日閲覧。
  92. ^ 「Monoポジションステートメント」Canonical Ltd. 2009年6月30日2020年11月9日時点のオリジナルよりアーカイブ。 2020年12月30日閲覧ソフトウェア業界では、訴訟を起こす意図ではなく、訴訟からの保護として特許を登録するのが一般的です。したがって、特許侵害の主張がない特許の存在だけでは、Ubuntuプロジェクトからの除外を正当化する十分な理由にはなりません。
  93. ^ 「なぜフリーソフトウェアはMonoやC#に依存すべきではないのか」2013年5月30日時点のオリジナルよりアーカイブ。 2020年12月30日閲覧
  94. ^ “Microsoft's Empty Promise” . 2013年5月1日時点のオリジナルよりアーカイブ2020年12月30日閲覧。
  95. ^ 「FedoraはMonoを懸念している」 internetnews.com、2009年6月12日。2009年6月19日時点のオリジナルよりアーカイブ2010年7月4日閲覧。Monoを削除する決定を下すのに十分な法的結論はまだ出ていません。
  96. ^ "「『バンシーゲドン』でBansheeとMonoがUbuntuのデフォルトから削除される可能性」。ITWorld 。2015年7月10日時点のオリジナルよりアーカイブ。 2015年8月31日閲覧
  97. ^ 「Monoを使用している企業」 . Mono-project . 2015年8月30日閲覧
  98. ^ Paul Chote: OpenRA: Playtest 20190825、2019-08-25
  99. ^ 「Mono Releases」 . Mono-project.com . 2015年4月4日閲覧。
  100. ^ "OldReleases" . Mono-project.com . 2013年7月17日閲覧。
  101. ^ 「Mono 1.0 リリースノート」 . Mono-project.com . 2013年7月17日閲覧
  102. ^ 「Mono 1.1.1: 開発リリース」 . Mono-project.com . 2013年7月17日閲覧。
  103. ^ 「Mono 1.2: リリースノート」 . Mono-project.com . 2013年7月17日閲覧
  104. ^ 「リリースノート Mono 2.0」 . Mono-project.com. 2008年10月6日. 2013年7月17日閲覧
  105. ^ 「リリースノートMono 2.2」。Mono-project.com 。 2013年7月17日閲覧
  106. ^ 「Linear IR - Mono」 . Mono-project.com . 2013年7月17日閲覧
  107. ^ 「リリースノート Mono 2.4」 . Mono-project.com . 2013年7月17日閲覧
  108. ^ 「リリースノートMono 2.6」。Mono-project.com 。 2013年7月17日閲覧
  109. ^ 「リリースノート Mono 2.8」 . Mono-project.com . 2013年7月17日閲覧
  110. ^ 「リリースノート Mono 2.10」 . Mono-project.com . 2013年7月17日閲覧
  111. ^ 「リリースノート Mono 3.0」 . Mono-project.com . 2013年9月23日閲覧
  112. ^ 「リリースノート Mono 3.2」 . Mono-project.com . 2013年9月23日閲覧
  113. ^ 「リリースノート Mono 3.4」 . Mono-project.com . 2015年4月4日閲覧。
  114. ^ 「リリースノート Mono 3.6」 . Mono-project.com . 2015年4月4日閲覧
  115. ^ 「リリースノート Mono 3.8」 . Mono-project.com . 2015年4月4日閲覧
  116. ^ 「リリースノート Mono 3.10」 . Mono-project.com . 2015年4月4日閲覧。
  117. ^ 「リリースノート Mono 3.12」 . Mono-project.com . 2015年4月4日閲覧
  118. ^ 「リリースノート Mono 4.0」 . Mono-project.com . 2015年5月3日閲覧。
  119. ^ 「リリースノート Mono 5.0」 . Mono-project.com . 2017年5月13日閲覧。
  120. ^ 「Mono 5.2.0 リリース ノート」
  121. ^ 「Mono 5.4.0 リリースノート」
  122. ^ 「Mono 5.8.0 リリースノート」
  123. ^ 「Mono 5.10.0 リリースノート」
  124. ^ 「Mono 5.12.0 リリースノート」
  125. ^ 「Mono 5.14.0 リリースノート」
  126. ^ 「Mono 5.16.0 リリースノート」
  127. ^ 「Mono 5.18.0 リリースノート」
  128. ^ 「Mono 5.20.0 リリースノート」
  129. ^ 「Mono 6.0.0 リリースノート」
  130. ^ 「Mono 6.4.0 リリースノート」
  131. ^ 「Mono 6.6.0 リリースノート」
  132. ^ 「Mono 6.8.0 リリースノート」
  133. ^ 「Mono 6.10.0 リリースノート」
  134. ^ 「Mono 6.12.0 リリースノート」
  135. ^ 「mono-6.14.0 Mono / フレームワーク Mono GitLab」

出典