| 単核症 | |
|---|---|
Monoアーキテクチャの図 | |
| 原作者 | 西面 |
| 開発者 | WineHQ |
| リリース | 2004年6月 30日 ( 2004-06-30 ) |
| 安定放出 | |
| 執筆 | C、C#、XML |
| オペレーティング·システム | Windows、macOS、Linux、IBM AIX、IBM i [ 2 ] |
| プラットフォーム | IA-32、x64、IA-64、ARM、MIPS、RISC-V、PowerPC、SPARC、S390 |
| タイプ | ソフトウェアフレームワーク |
| ライセンス | MITライセンス[ 3 ] |
| Webサイト | www.mono-project.com |
| リポジトリ |
|
Monoは、 .NET Framework向けに作成されたソフトウェアをLinuxやその他のOS上で実行することを目的とした、無料のオープンソースソフトウェアフレームワークです。元々はXimianによって開発され、 Novellに買収されましたが、後にXamarinによって開発され、 Microsoftに買収されました。[ 4 ] 2024年8月、MicrosoftはMonoの所有権をWineHQに譲渡しました。[ 5 ]

マイクロソフトが2000年6月に.NET Frameworkを初めて発表したとき、「インターネット標準に基づく新しいプラットフォーム」と説明され[ 6 ]、同年12月には基盤となる共通言語インフラストラクチャがオープン標準「ECMA-335」として公開され[ 7 ] 、独立した実装の可能性が開かれた[ 8 ] 。Ximianのミゲル・デ・イカザは、 .NETにはプログラマの生産性を向上させる可能性があると考え、Linux版が実現可能かどうか調査を開始した[ 9 ] 。小規模なチームでは完全な製品を構築してサポートすることは期待できないと認識し、2001年7月19日にO'ReillyカンファレンスでMonoオープンソースプロジェクトを立ち上げた。
3年間の開発を経て、Mono 1.0は2004年6月30日にリリースされました。[ 10 ] Monoは当初Linuxデスクトップアプリケーション向けの開発者プラットフォームに重点を置いていましたが、組み込みシステムを含む幅広いアーキテクチャとオペレーティングシステムをサポートするように進化しました。[ 11 ]
Novellは2003年にXimianを買収した。Novellが2011年4月にAttachmateに買収された後、AttachmateはNovellの従業員数百人を解雇すると発表し[ 12 ] 、 Monoの将来に疑問が生じた[ 13 ] [ 14 ] 。
2011 年 5 月 16 日、ミゲル・デ・イカザは自身のブログで、モノはノベルを解雇された後に彼が設立した会社であるXamarinによって引き続きサポートされると発表した。オリジナルのモノチームも新会社に移籍した。ノベルが当時 MonoTouch と Mono for Android を所有していたため、 Xamarin は Mono の開発を継続し、 iOSとAndroid用の独自の .NET スタックをゼロから書き直す予定だった。 [ 15 ]この発表後、モノタッチと Mono for Android は現在Attachmateが所有する既存の商用製品と直接競合しており、Xamarin チームがノベルに雇用されていたときに同じ仕事で開発した技術を使用していないことを証明するのが難しいことを考慮すると、プロジェクトの将来が疑問視された。[ 16 ]しかし、2011 年 7 月、現在 Attachmate の子会社である Novell と Xamarin は、Xamarin に Mono、MonoTouch、Mono for Android の永久ライセンスを付与し、Xamarin が正式にプロジェクトの管理を引き継いだと発表した。[ 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 チームは必要な作業量の多さからサポートする予定はない) [ 20 ]およびWindows Workflow Foundation (WF) を除く .NET 4.7 のすべての機能を完全にサポートしており、 Windows Communication Foundation (WCF) および ASP.NET 非同期スタックのサポートは限定的です。ただし、System.Web と WCF は、.NET 参照ソースから Mono に「ほぼ即座に」移植される候補です。[ 21 ] .NET Frameworkの不足している部分の一部は、Oliveと呼ばれる実験的な Mono サブプロジェクトで開発中です。[ 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つのコンポーネントグループで構成されています。
コアコンポーネントには、C#コンパイラ、共通言語インフラストラクチャ用の仮想マシン、コアクラスライブラリが含まれます。これらのコンポーネントは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デスクトップに統合できます。データベースライブラリは、オブジェクトリレーショナルデータベースdb4o、Firebird、Microsoft SQL Server(MSSQL)、MySQL、Open Database Connectivity(ODBC)、Oracle、PostgreSQL、SQLiteなどへの接続を提供します。Monoプロジェクトは、Webサイトで開発中のデータベースコンポーネントを追跡しています。[ 29 ]
Microsoftの互換性スタックは、 Windows .NETアプリケーションをLinuxに移植するための手段を提供します。このコンポーネント群には、 ADO.NET、ASP.NET、Windows Forms (およびlibgdiplus)などが含まれます。これらのコンポーネントはEcma規格の対象ではないため、一部は特許侵害の懸念や問題が残る可能性があります。
Monoの主要構成要素は以下のとおりです。
Monoランタイムには、ECMA CILバイトコードをネイティブコードに変換するコード実行エンジンが含まれており、ARM、MIPS(32ビットモードのみ)、SPARC、PowerPC、z/Architecture、IA-32、x86-64 、および64ビットモード用のIA-64など、多数のプロセッサをサポートしています。
コードジェネレーターは、以下の3つのモードで利用可能です。
Mono 2.6以降では、Mono独自のコード生成エンジンではなく、 LLVMをコード生成エンジンとして使用するようにMonoを設定できるようになりました。これは、高性能な計算負荷がかかる場合や、起動性能よりも実行性能が重要な場合に役立ちます。
Mono 2.7プレビュー版以降、設定時にどちらかのエンジンを選択する必要はなくなりました。起動時にコマンドライン引数を使用してコード生成エンジンを選択でき--llvm、--nollvmデフォルトでは起動が速いMonoコード生成エンジンが使用されます。
Mono 5.18以降、LLVMのサポートはデフォルトの構成オプションとなっています。以前のバージョンでは特別なLLVMフォークが必要でしたが、現在はMonoはLLVMで処理できないものに遭遇した場合、独自のコードジェネレータにフォールバックできます。[ 30 ]
Mono 2.8 以降、Mono ランタイムには、世代別コレクタとBoehm–Demers–Weiser 保守型ガベージ コレクタの 2 つのガベージ コレクタが付属しています。Boehm ガベージ コレクタは、特定の種類のアプリケーションでメモリ リークが発生する可能性があり、長時間実行されるサーバー アプリケーションには適していません。[ 31 ] [ 32 ] Mono はバージョン 3.1.1 で、デフォルトのコレクタとしてSimple Generational GC (SGen-GC) に切り替えました。
SGen ガベージ コレクタは、従来の保守的なスキャナに比べて多くの利点があります。世代別ガベージ コレクションを使用しており、ガベージ コレクション サイクル中に、新しいオブジェクトはナーサリーから割り当てられ、生き残ったすべてのオブジェクトは古い世代のメモリ プールに移行されます。多くのオブジェクトは一時的なもので、すぐに収集でき、ごく少数のオブジェクトだけがアプリケーションのライフサイクル全体にわたって存在する長期オブジェクトであるという考え方です。パフォーマンスを向上させるために、このコレクタは各スレッドにメモリ プールを割り当て、スレッドが他のスレッドと調整することなく新しいメモリ ブロックを割り当てられるようにします。ナーサリーから古い世代へのオブジェクトの移行は、ナーサリーから古い世代のプールにデータをコピーし、そのデータを指すすべてのライブ ポインタを更新して新しい場所を指すようにすることで行われます。これは大きなオブジェクトではコストがかかる可能性があるため、Mono の SGen は大きなオブジェクト用に別のメモリ プール (ラージ オブジェクト セクション) を使用し、それらのオブジェクトに対してマーク アンド スイープ アルゴリズムを使用します。[ 31 ]
クラスライブラリは、アプリケーション開発のための包括的な機能セットを提供します。これらは主にC#で記述されていますが、共通言語仕様により、任意の.NET言語で使用できます。クラスライブラリは名前空間に構造化され、アセンブリと呼ばれる共有ライブラリに展開されます。.NET Frameworkについて話す場合、主にこのクラスライブラリを指します。[ 33 ]
名前空間は、類似するクラスを論理的に階層構造にグループ化するための仕組みです。これにより、名前の競合を防ぐことができます。この構造はドット区切りの単語を使用して実装され、最も一般的なトップレベルの名前空間は System で、System.IO や System.Net などがあります。Accessibility や Windows など、他のトップレベルの名前空間もあります。ユーザーは、名前空間ブロック内に要素を配置することで名前空間を定義できます。
アセンブリは、クラスライブラリを物理的にパッケージ化したものです。これらは、Win32共有ライブラリと同様の(ただし混同しないように注意が必要な).dllファイルです。アセンブリの例としては、mscorlib.dll、System.dll、System.Data.dll、Accessibility.dllなどがあります。名前空間は複数のアセンブリに分散されることが多く、1つのアセンブリは複数のファイルで構成される場合があります。
共通言語インフラストラクチャ (CLI)は、共通言語ランタイム (CLR)によって実装され、Mono 実行可能ファイルによって実装されます。ランタイムは .NET アプリケーションをコンパイルして実行します。共通言語インフラストラクチャは ECMA 標準によって定義されています。[ 27 ]アプリケーションを実行するには、関連するパラメーターを指定してランタイムを呼び出す必要があります。
共通言語仕様(CLS)は、ECMA-335の第6章で規定されており、列挙型の基底型などの規約といったCLIへのインターフェースを定義しています。Monoコンパイラは、CLSに準拠したイメージを生成します。これが共通中間言語(CIL)です。Monoランタイムはこのイメージを受け取り、実行します。ECMA標準では、CLSに準拠したライブラリをフレームワークとして正式に定義しています。
ネイティブの .NET/Mono アプリケーション内では、すべてのコードが管理されます。つまり、CLI のメモリ管理とスレッドセーフティのスタイルによって制御されます。他の .NET または Mono アプリケーションは、System.Runtime.InteropServices ライブラリを使用して C# バインディングを作成することで、アンマネージドと呼ばれるレガシーコードを使用できます。Gtk #など、Mono に付属する多くのライブラリは、この CLI の機能を使用しています。
Monoは、コアとなるC#およびCLI仕様への新たな拡張機能によって、いくつかの分野で革新を起こしました。
さらに、Monoはさまざまなオペレーティングシステムとアーキテクチャで利用可能です。[ 40 ]
Windows 7、Windows 8、Windows 8.1、Windows 10、macOS、またはLinux
いくつかのプロジェクトはMonoを拡張し、開発者が開発環境でMonoを使用できるようにしています。これらのプロジェクトには以下が含まれます。
クロスプラットフォーム:
macOS:
モバイルプラットフォーム:
Windows:
マイクロソフトは現在、Windows XP専用の.NET 2.0バージョン「 Shared Source CLI(Rotor)」を提供しています。マイクロソフトの共有ソースライセンスは、コミュニティのニーズを満たすには不十分かもしれません(商用利用を明確に禁止しています)。
フリーソフトウェア財団の廃止されたPortable.NETプロジェクト。[ 44 ]
MonoDevelopは、主にC#やNemerle、Boo、Java(IKVM経由)などの.NET言語向けに設計された無料の統合開発環境ですが、 C、C++、Python、Valaなどの言語もサポートしています。MonoDevelopは元々 SharpDevelopをGtk#に移植したものでしたが、その後Mono開発者のニーズを満たすように進化しました。このIDEには、クラス管理、組み込みヘルプ、コード補完、Stetic(GUIデザイナー)、プロジェクトサポート、統合デバッガーなどが含まれています。
MonoDocブラウザは、APIドキュメントとコードサンプルへのアクセスを提供します。このドキュメントブラウザはWikiスタイルのコンテンツ管理システムを採用しており、開発者はドキュメントを編集・改善することができます。
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(以前はMonoTouchと呼ばれていました)は、開発者がiPhone、iPod、iPadデバイスで動作するC#および.NETベースのアプリケーションを作成できるようにするライブラリでした。これはMonoフレームワークに基づいており、Novellと共同で開発されました。Monoアプリケーションとは異なり、Xamarin.iOSの「アプリ」は、Apple iPhoneおよびiPadを特にターゲットとしたマシンコードにコンパイルされました。[ 50 ]これは、iOSカーネルがジャストインタイムコンパイラがデバイス上で実行されるのを阻止するため必要です。
Xamarin.iOSスタックは以下で構成されていました。
主要な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 ]
Xamarin.Android (以前は Mono for Android として知られていた) は、当初Novellによって開発され、 Xamarinによって継続された、Androidベースのスマートフォン向けの Mono の独自の実装でした。 [ 70 ] [ 71 ] [ 72 ] [ 73 ] 2011 年 4 月 6 日に初めてリリースされました。[ 74 ] Mono for Android は、開発者がすべてのモバイル プラットフォームで動作するクロス プラットフォーム アプリケーションをより簡単に作成できるようにするために開発されました。[ 75 ] H-Online のインタビューで、Miguel de Icaza 氏は、「私たちのビジョンは、開発者がすべてのモバイル プラットフォームでエンジンとビジネス ロジック コードを再利用し、ユーザー インターフェイス コードをプラットフォーム固有の API に置き換えることができるようにすることです」と述べています。[ 76 ]
2010年8月、マイクロソフトのオープンソース技術センターの広報担当者であるトム・ハンラハン氏は、AndroidのJavaの使用に関してOracleがGoogleに対して起こした訴訟について、「OracleがJavaに関してGoogleに対して行っているような措置は起こらないだろう。Androidへの.NET移植がMono経由で行われる場合、それはMicrosoftコミュニティ約束契約の対象となる」と述べた。[ 77 ] [ 78 ]
Xamarin.Androidスタックは、以下のコンポーネントで構成されていました。
Cocoa# (CocoaSharp とも呼ばれる) はMac OS X用のブリッジフレームワークで、Mono ランタイムで開発されたアプリケーションがCocoa API にアクセスできるようにするものでした。2004 年 8 月 12 日に最初にリリースされ[ 80 ]、2005 年 2 月 18 日にリリースされたバージョン 1.0.6 以降、Mono ディストリビューションに含まれるようになりました。2008年以降は開発が行われておらず、現在は非推奨となっています[ 81 ] 。
MonobjcはCocoaSharpの後継として登場しました。これにより、.NET開発者はネイティブコードを使わずに、Cocoaを含むMac OS X APIのほとんどを利用できるようになり、同時にネイティブなユーザーインターフェースを実現できます。
Xamarin.Mac は、開発者が .NET および C# アプリをMac上で実行できるようにするライブラリです。[ 82 ]
Mono は、 QtやMozilla 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では不可能だったいくつかのケースでコンパイラコードを再利用できるようにするために、 GPLからMIT X11ライセンス[ 84 ]に変更されました。
2016 年 3 月 18 日、マイクロソフトによる Xamarin の買収が正式に完了しました。[ 85 ] 2016 年 3 月 31 日、マイクロソフトはMicrosoft Buildで、これまで商用ライセンスが必要だったシナリオでもMono をMIT ライセンスで完全に再ライセンスすると発表しました。 [ 86 ]また、マイクロソフトは「Mono を使用、販売、販売の申し出、輸入、または配布する」当事者に対して「適用可能な特許」を主張しないと述べました。[ 87 ] [ 88 ]また、Xamarin が Mono プロジェクトを .NET Foundation に提供したことも発表されました。[ 87 ]
2009 年 7 月 6 日、マイクロソフトは、ECMA 334 および ECMA 335 仕様をコミュニティの約束の下に置くことを発表し、.NET の代替実装を実装、配布、または使用する者に対して特許を主張しないことを誓約した。[ 89 ] ECMAに標準化のために提出されていない .NET スタックのコンポーネントの Mono の実装は、プロジェクトのライフサイクルの大部分において特許侵害の懸念の原因となってきた。[ 90 ]特に、マイクロソフトが特許訴訟によって Mono プロジェクトを潰すことができるかどうかについての議論が行われた。[ 91 ]
ECMA に提出された基本技術、したがって Unix/GNOME 固有の部分も、Microsoft が ECMA 334 ( C# ) と ECMA 335 ( CLI ) の両方の標準をMicrosoft Community Promiseの下に明示的に配置したことにより、安全であると主張されています。懸念事項は主に、 ASP.NET、ADO.NET、Windows Forms (非標準化名前空間を参照)など、.NET Framework 上に Microsoft が開発した技術、つまり Mono の Windows 互換性スタックを構成する部分に関するものです。これらの技術は現在 Mono に完全に実装されておらず、Mono アプリケーションの開発には必須ではありませんが、Windows システムとの完全な互換性を必要とする開発者やユーザーのために存在します。
2009年6月、Ubuntu技術委員会は「Monoやそれに基づくアプリケーションをアーカイブやデフォルトのインストールセットから除外する理由はない」と述べた。[ 92 ]
フリーソフトウェア財団のリチャード・ストールマンは、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に依存する残りのプログラムであるgbrainyとTomboyも削除される予定だったため、この決定はMonoを基本ディストリビューションから削除したいという願望にも影響されたという憶測も浮上した。Mono開発者のJoseph Michael Shieldsは、ARM上でのBansheeのパフォーマンスを擁護し、Bansheeがメンテナンスが不十分であるという主張は、主要な貢献者の1人に対する「個人的な侮辱」であると反論した。[ 96 ]


Monoアプリケーションプログラミングインターフェース(API)とC#を使用して、さまざまな用途に対応する多くのプログラムが開発されてきました。Linuxデスクトップ向けに作成されたプログラムには、Banshee、Beagle、 F-Spot、Gbrainy、Docky / GNOME Do、MonoTorrent、Pinta、Tomboyなどがあります。Logos 5 Bible Study Software(OS X版)は、MacOS向けに作成されたプログラムです。
『ザ・シムズ3』や『セカンドライフ』 (スクリプト言語のため)、OpenSimulator仮想世界サーバー、UnityやMonoGameゲームエンジンで構築されたゲームなど、多くのビデオゲームもMonoを利用しています。[ 97 ] OpenRAはApple Disk ImageとLinux AppImageにMonoをバンドルしており、実質的にゲームからほぼすべての依存関係を取り除いています。[ 98 ]
たとえサポートしていなくても、彼らは Xamarin の将来の製品と直接競合する製品を所有している。Attachmate と Xamarin の間に何らかの法的取り決めがなければ、後者は新しい開発が古い開発で使用した技術を一切使用していないことを証明するという困難な見通しに直面することになる。これは実際にはネイティブ API のラッパーにすぎないことを考えると、Attachmate のコードに精通していないチームであっても、クリーンルーム実装であることを証明するのは困難だろう。
この契約により、XamarinはMono、MonoTouch、Mono for Android、およびMono Tools for Visual Studioに関するすべての知的財産に対する広範かつ永続的なライセンスを取得します。Xamarinはまた、Monoベースの製品を使用するSUSEの顧客に技術サポートを提供し、Monoオープンソースコミュニティプロジェクトの管理を引き受けます。
WPF を構築する予定はありません。妥当な期間内に実装を構築できるだけの人員がいないためです。(...)主に OpenGL/DirectX ベースのツールについては、Windows.Forms を使用してください。ただし、Windows.Forms は積極的に開発されていないため、ツール側でバグ修正や回避策が必要になる場合があることに注意してください。
はオープンソースのMonoプロジェクトをベースにした商用製品であり、開発者ごとにライセンスが付与されます。
数か月以内に Android、iOS、および Mac 用の Xamarin SDK を MIT ライセンスの下でオープンソース化することを発表します。
で構築されたアプリケーションは、他のネイティブアプリケーションと区別がつかないネイティブアプリケーションです。
開発者からの意見に基づき、本日、iOS開発者プログラムライセンスのセクション3.3.1、3.3.2、3.3.9に重要な変更を加え、今年初めに設けた一部の制限を緩和します。特に、iOSアプリの作成に使用される開発ツールに関するすべての制限を緩和します。ただし、作成されたアプリがコードをダウンロードしないことが条件となります。これにより、開発者は必要な柔軟性を得ながら、Appleが必要とするセキュリティを維持できます。
これらの新しい用語により、曖昧さが解消され、C#愛好家や熱心なユーザーはMonoTouchを再び使用できるようになります。ガベージコレクションや厳密な型付け言語を好む開発者は、作業を再開できます。
これにより、開発者はクロスプラットフォーム アプリを簡単に作成できるだけでなく、MonoTouch を使用して作成された既存のアプリの一部を Android に移植できるようになります。
私たちのビジョンは、開発者がエンジンとビジネスロジックのコードをすべてのモバイルプラットフォームで再利用し、ユーザーインターフェイスのコードをプラットフォーム固有のAPIに置き換えることができるようにすることです。
がJavaに関してGoogleに対して取っているような措置は起こらないだろう。.NETのAndroidへの移植がMono経由で行われる場合、それはMicrosoftコミュニティ約束契約の対象となる。
5月14日、XamarinはAndroid 4.2向けMonoを発表しました。
コミュニティ 約束に基づき、マイクロソフトは、LGPL や GPL などのオープンソース ライセンス モデルを含む、いかなる種類の開発または配布モデルの下で、対象となる実装を作成、使用、販売、販売の申し出、輸入、または配布する者に対して、必要なクレームを主張しないことを保証します。
ソフトウェア業界では、訴訟を起こす意図ではなく、訴訟に対する保護として特許を登録するのが一般的です。したがって、侵害の主張がない特許の存在だけでは、Ubuntu プロジェクトから除外される十分な理由にはなりません。
を削除する決定を下すのに十分な法的結論には至っていません。