「Mono」の版間の差分

imported>Administrator
編集の要約なし
編集の要約なし
 
(5人の利用者による、間の8版が非表示)
1行目: 1行目:
'''Mono'''(モノ)は、GNOMEプロジェクト創設者の[[ミゲル・デ・イカザ]]が開発した、Ecma標準に準じた[[.NET Framework]]互換の環境を実現するための[[オープンソース]]ソフトウェア群、またそのプロジェクト名である。
'''Mono'''(モノ)は、GNOMEプロジェクト創設者の[[ミゲル・デ・イカザ]]が開発した、Ecma標準に準じた[[.NET Framework]]互換の環境を実現するための[[オープンソース]]ソフトウェア群、またそのプロジェクト名である。


現在は[[Xamarin]]社が開発、販売、サポート業務を行っている。
[[Xamarin]]社が開発、販売、サポート業務を行ってた
2016年に[[マイクロソフト]]に買収され、2019年に最後のメジャーリリースを行ったのを最後に放置されていた。
現在は[[Wine]]が引き継いでいる。
 


[[共通言語基盤]] (CLI) の実装や[[C Sharp|C#]]の[[コンパイラ]]などが含まれる。
[[共通言語基盤]] (CLI) の実装や[[C Sharp|C#]]の[[コンパイラ]]などが含まれる。
9行目: 12行目:


その他にも、特定プラットフォーム向けに特化したサブプロジェクトも存在する。
その他にも、特定プラットフォーム向けに特化したサブプロジェクトも存在する。
なお、一般的なマルチプラットフォーム(いわゆる「[[Write Once, Run Anywhere]]」を目指す多くのプロジェクトとは異なり、Monoではビジネスロジック部分のみを共通化しようとする物が多く、インターフェイス(ビュー)に近い部分はそのプラットフォームに依存するような作りとなっている。これにより「[[Write Once, Run Anywhere]]」は実現できないが、そのプラットフォームが持つ特徴や性能を活かすことができる。
; Mono公式
* [[MonoTouch]] - [[iPhone]]や[[iPad]]、[[iPod touch]]といった[[iOS]]での動作をサポートしている。
* [[MonoTouch]] - [[iPhone]]や[[iPad]]、[[iPod touch]]といった[[iOS]]での動作をサポートしている。
* [[MonoMac]] - [[MonoTouch]]の技術を応用し、Mac OS Xへのネイティブ対応を行う。
* [[MonoMac]] - [[MonoTouch]]の技術を応用し、Mac OS Xへのネイティブ対応を行う。
* [[Mono for Android]] - [[Android]]での動作をサポートしている。
* [[Mono for Android]] - [[Android]]での動作をサポートしている。
; サードパーティ製
* [[Unity]]
* [[PlayStation Suite SDK]]


== プロジェクトの目標 ==
== プロジェクトの目標 ==
24行目: 33行目:


また[[マイクロソフト]]純正の[[.NET Framework]]ではサポートされていない[[SIMD]]への対応など、Mono独自の革新的な機能の取り込みも積極的に行われている。
また[[マイクロソフト]]純正の[[.NET Framework]]ではサポートされていない[[SIMD]]への対応など、Mono独自の革新的な機能の取り込みも積極的に行われている。
== Monoライブラリ ==
MonoプロジェクトにはMono本体に加え、便利なライブラリやフレームワークが多数用意されている。
これらは純正[[.NET Framework]]でも利用できる。
また、一部は[[NuGet]]でも配布されており、[[Visual Studio]]などからも手軽に利用できるようになっている。
=== 主なMonoライブラリ ===
{| class="wikitable sortable"
|-
! 名称 !! [[NuGet]] !! 概要
|-
| [[Mono.Addins]] || ○ || アドイン対応アプリを作るためのフレームワーク。
|-
| [[Mono.Addins.Setup]] || ○ ||
|-
| [[Mono.Cecil]] || ○ || [[CIL]]を解析するライブラリ。
|-
| [[Mono.CSharp]] || ○ ||
|-
| [[Mono.Linq.Expressions]] || ○ ||
|-
| [[Mono.Options]] || ○ || [[コマンドライン引数]]を解析するライブラリ。いわゆる[[getopts]]の[[C Sharp|C#]]版。
|-
| [[Mono.Reflection]] || ○ ||
|-
| [[Mono.Zeroconf]] || ○ ||
|}


== 歴史 ==
== 歴史 ==
2000年12月にEcma Internationalにより[[.NET Framework]]ドキュメントが公開されると、Monoプロジェクトの創始者である[[ミゲル・デ・イカザ]]は.NET技術に興味を魅かれた。バイトコードインタプリタを調べてみると、彼はメタデータに関する仕様が存在しないことに気がついた。
2000年12月にEcma Internationalにより[[.NET Framework]]の[[ドキュメント]]が公開されると、Monoプロジェクトの創始者である[[ミゲル・デ・イカザ]]は.NET技術に興味を魅かれた。[[マネージドコード]]の[[インタプリタ]]を調べてみると、彼は[[メタデータ]]に関する仕様が存在しないことに気がついた。


2001年2月、彼は.NETメーリングリストにおいて不足している情報を公開するよう求め、同時に[[C Sharp|C#]]の習得のため、C#で書かれたC#コンパイラの開発に着手した。
2001年2月、彼は.NET Frameworkの[[メーリングリスト]]において不足している情報を公開するよう求め、同時に[[C Sharp|C#]]の習得のため、C#で書かれたC#[[コンパイラ]]の開発に着手した。


2001年4月、Ecma Internationalは不足していたファイル形式を公開し、デ・イカザは世界最大のGNOMEの祭典であるGUADEC(2001年4月6日~4月8日)において彼の開発したC#コンパイラのデモンストレーションを行った(それは自分自身の解析が可能であった)。
2001年4月、[[Ecma International]]は不足していたファイル形式を公開し、ミゲル・デ・イカザは世界最大の[[GNOME]]の祭典である[[GUADEC]](2001年4月6日~4月8日)において彼の開発したC#コンパイラのデモンストレーションを行った(それは自分自身の解析が可能であった)。


同時期、GNOMEの事実上の開発母体であった[[Ximian]]社では、生産性を向上するためのツールを開発するための会議が内部的に行われていた。実現可能性の調査の結果、そのような技術は構築可能であるという結論に至り、Ximianは他のプロジェクトからスタッフを集め、Monoチームを結成した。しかしXimian内部だけで.NETと同等のものを作るには人材が不足していたため、Monoをオープンソースプロジェクトとした。これは2001年7月19日、オライリーカンファレンスによって発表された。
同時期、[[GNOME]]の事実上の開発母体であった[[Ximian]]社では生産性を向上するためのツールを開発するための会議が内部的に行われていた。実現可能性の調査の結果、そのような技術は構築可能であるという結論に至り、Ximianは他のプロジェクトからスタッフを集め、Monoチームを結成した。しかしXimian内部だけで.NETと同等のものを作るには人材が不足していたため、Monoを[[オープンソース]]とした。これは2001年7月19日に開催されたオライリーカンファレンスによって発表された。


それから3年近く経った2004年6月30日、Mono 1.0がリリースされた。
それから3年近く経った2004年6月30日、Mono 1.0がリリースされた。
42行目: 78行目:
monoはスペイン語で猿を意味するため、Monoのロゴには猿が描かれている。猿に関する名称は[[Ximian]]の他のプロジェクトにも見られる。
monoはスペイン語で猿を意味するため、Monoのロゴには猿が描かれている。猿に関する名称は[[Ximian]]の他のプロジェクトにも見られる。
Mono FAQでは、名称の由来に関する質問に対して「我々は猿が好きなのです。」 (We like monkeys.) と回答している<ref>[http://www.mono-project.com/FAQ:_General "What does the name "Mono" mean?"] </ref>。
Mono FAQでは、名称の由来に関する質問に対して「我々は猿が好きなのです。」 (We like monkeys.) と回答している<ref>[http://www.mono-project.com/FAQ:_General "What does the name "Mono" mean?"] </ref>。
== インストール ==
=== FreeBSD ===
# パッケージを入れる
$ pkg install mono
# 共有メモリを増やす
$ echo kern.maxfiles=25000 >> /boot/loader.conf
$ echo kern.ipc.semmni=40 >> /boot/loader.conf
$ echo kern.ipc.semmns=300 >> /boot/loader.conf
# プロセスの細かい情報を取れるようにする
$ echo "proc            /proc  procfs  rw 0 0" >> /etc/fstab
# SSL証明書をぶちこむ
$ mozroots --import --sync
=== macOS ===
[[macOS]]の場合はmono公式サイトからパッケージを拾ってきてインストーラーに従えばok。
また、[[Xamarin Studio]]を入れようとすると同時に入ってくる。


== Mono関連のコマンド ==
== Mono関連のコマンド ==
47行目: 103行目:
* [[monodis]]
* [[monodis]]
* [[mcs]]
* [[mcs]]
* [[xsp]]
* [[asp-state]]
* [[dbsessmgr]]


== 関連項目 ==
== 関連項目 ==
59行目: 118行目:


== 参考文献 ==
== 参考文献 ==
<references/>
{{reflist}}
 


{{stub}}
[[category: Mono]]
[[category: Wine]]