Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

生産性向上に役立つMono 2.4のコンポーネントとアーキテクチャ

Monoの歴史やインストール方法、基礎知識を解説

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2010/02/12 14:00

 この記事では、オープンソースの.NET開発フレームワークであるMonoの最新版の仕組みを紹介します。また、そのコンポーネントとアーキテクチャが開発者の生産性向上にどのように役立つのかを説明します。

目次

はじめに

 MonoはNovellが主導する、ECMA標準に基づく共通言語インフラストラクチャ(Common Language Infrastructure:CLI)のためのオープンソースの.NET開発フレームワークです。Monoプロジェクトは、C#コンパイラや共通言語ランタイム(Common Language Runtime:CLR)など、Linux、BSD、UNIX、Mac OS X、Solaris、Windowsといったプラットフォーム上で動作するLinuxアプリケーションやクロスプラットフォームアプリケーションを開発するための.NET互換のツール群を作成しています(Mono 2.4のアーキテクチャの全体像については図1を参照)。

図1 Mono 2.4のアーキテクチャ:Mono 2.4アーキテクチャの全体像
図1 Mono 2.4のアーキテクチャ:Mono 2.4アーキテクチャの全体像

 Monoの最新バージョンは2.4です(2009年3月30日時点)。

※編集部注1

 この記事の掲載時点(2009年3月30日時点)での最新バージョンは2.4でしたが、現時点では、2009年12月15日にリリースされたMono 2.6が最新となっています。

 このバージョンには.NET FrameworkのコアAPIのほか、Visual Basic .NETとC#バージョン 2.0および(部分的に)3.0のサポートが含まれます。またLINQ to ObjectやLINQ to XMLも配布対象に含まれますが、LINQ to SQLは対象外です。C# 3.0がC#コンパイラのデフォルトの動作モードになり、Windows Forms 2.0もサポートされるようになりました。

 .NET Framework 3.0の実装は「Olive」というMonoの実験的サブプロジェクトで進められていますが、.NET 3.0をサポートしたMonoフレームワークのリリース日はまだ公表されていません(Monoの簡単な歴史についてはこの後の補足説明を参照)。

 この記事では、Windows用のMono 2.4をインストールする方法を説明したうえで、この新バージョンのコンポーネントとアーキテクチャについて解説します。

補足説明1 Monoの歴史

 開発者Miguel de Icaza(Monoプロジェクトの創設者)が.NETテクノロジに興味を持ったのは、2000年12月に.NETのドキュメントが公開されて間もなくのことでした。.NETのバイトコードインタープリタについて調査した彼は、メタデータに関する仕様がないことに気付きました。2001年2月、de IcazaはC#で書かれたC#コンパイラに取り組み始めます。2001年4月、欠落していたファイル形式がECMAによって公開されました。Mono 1.0がリリースされたのは、それから約3年後の2004年6月30日のことです。

 豆知識:Monoのロゴにサルの顔が描かれているのは、monoがスペイン語でサルを意味するからです。

Mono 2.4インストールの概要

 WindowsでMono 2.4を実行するには、次のコンポーネントをインストールする必要があります。

  • Microsoft .NET Framework Version 3.5
  • GTK# for .NETのバージョン2.12.9-2
  • MonoDevelopのバージョン2.1.r136446(図2を参照)
  • Mono Libraries r135450(MonoDevelopをソースからビルドする場合にのみ必要)

 必要なコンポーネントをすべてダウンロードするには、ここをクリックします(図3を参照)。MonoのソースコードはNovellのFTPサイトからダウンロードできます(図4を参照)。

※編集部注2

 上記リンクは最新バージョンへのリンク先となっているため、現時点ではMono Develop 2.2、Mono 2.6がダウンロード可能となっています。

図2 Monoの開発環境:MonoDevelopのグラフィカルエディタのスクリーンショット
図2 Monoの開発環境:MonoDevelopのグラフィカルエディタのスクリーンショット
図3 Windowsプラットフォームに必要なMonoコンポーネントのダウンロードファイル:Windowsで必要となるすべてのMonoコンポーネント
図3 Windowsプラットフォームに必要なMonoコンポーネントのダウンロードファイル:Windowsで必要となるすべてのMonoコンポーネント
図4 Monoソースコードのダウンロード場所: MonoのソースコードはNovellのFTPサイトからダウンロード可能
図4 Monoソースコードのダウンロード場所: MonoのソースコードはNovellのFTPサイトからダウンロード可能

 Monoはいくつかのアーキテクチャで32ビットシステムと64ビットシステムの両方をサポートしており、複数のオペレーティングシステムに対応しています。Monoには、新しいソフトウェアの開発に役立つ次のようなコンポーネントも含まれます。

  • クラスローダ、JIT(Just-In-Time)コンパイラ、ガベージコレクティングランタイムを含む共通言語インフラストラクチャ(CLI)仮想マシン
  • 共通言語ランタイム(CLR)で動作する任意の言語で使用可能なクラスライブラリ(.NET互換のクラスライブラリとMonoが提供するクラスライブラリの双方を含む)
  • C#言語のコンパイラ(将来的に共通言語ランタイムをターゲットとした別のコンパイラがMonoによって開発される可能性あり)

 CLRと共通型システム(Common Type System:CTS)により、バイトコードをターゲットとする何種類もの言語でアプリケーションやライブラリを書くことができます。例えば、代数的な演算を行うクラスの定義をC#で書いておけば、CLIをサポートする他の任意の言語でそのクラスを再利用できます。C#で作成したクラスをC++でサブクラス化し、その結果をEiffelプログラムでインスタンス化することも可能です。こうしたすべての言語で1つのオブジェクトシステム、スレッディングシステム、クラスライブラリ群、ガベージコレクションシステムを共有できます。

 MonoDevelopコンポーネントは、もともとC#をはじめとする.NET言語用に設計された統合開発環境(Integrated Development Environment:IDE)です。MonoDevelopを使えば、開発者はLinux上でデスクトップアプリケーションやASP.NET Webアプリケーションを短時間で書くことができます。また、Visual Studioで作成した.NETアプリケーションをLinuxに移植したり、1つのコードベースですべてのプラットフォームを管理したりすることも容易になります。

 図5に、1つのフォルダにダウンロードされたMono 2.4の全コンポーネントを示します。

図5 ダウンロード後のMonoコンポーネント: Mono 2.4のすべてのコンポーネントが1つのフォルダ内にダウンロードされる
図5 ダウンロード後のMonoコンポーネント: Mono 2.4のすべてのコンポーネントが1つのフォルダ内にダウンロードされる

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • japan.internet.com(ジャパンインターネットコム)

    japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.com や EarthWeb.c...

  • Tapas Pal(Tapas Pal)

    インドのTata Consultancy Servicesに勤務する技術者。Microsoftのプラットフォームを専門とする。7年間の経験を持ち、.NET 1.1と.NET 2.0に関してMicrosoftの認定資格を取得している。

バックナンバー

連載:japan.internet.com翻訳記事

もっと読む

All contents copyright © 2005-2020 Shoeisha Co., Ltd. All rights reserved. ver.1.5