SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

japan.internet.com翻訳記事

Mono 2.0がDebian GNU/Linuxのために提供するもの

新しいC#機能を備えたMono 2.2

 Monoは常に.NETの進化を1歩遅れて追いかけています。したがって、.NETの現在を見れば、Monoの将来がわかります。次のMono 2.2リリースには多くの強化機能と新しいモジュール(C#シェルや統合言語クエリ(LINQ)など)が含まれているはずです。C#シェルはC#の式を読み取って評価して出力するインタラクティブシェルで、コンパイラサービスを提供するライブラリアセンブリの上に構築されます。LINQはC#バージョン3.0の新しいコンポーネントで、基本的にはSQLのクエリ構文とメカニズムの使用をクラスで表現されるデータの集まりに拡張するものです。

 Monoはこれらの新しいパーツを完全にカバーすべく動いていますが、それに対応するDebianパッケージはDebianの不安定プールにさえまだ存在しません。Monoの最新バージョンが欲しい方は、daily tarballをダウンロードしてコンパイルする必要があります。これは次のようにして行います。

cd /usr/local
wget -c http://mono.ximian.com/daily/mono-latest.tar.gz
tar -xvjf mono-latest.tar.gz
./configure -prefix=/opt
make

 その後、次のように入力します。

make install

 上記の手順により、/optディレクトリの下にMono 2.2ベータリリースがインストールされます。aptツールでインストール済みのMono 2.0正式リリースの代わりにこちらを使用するためには、このインストール先に合わせてPATH環境変数を設定する必要があるので、/usr/binの前に/opt/binディレクトリを追加します。

 それが終われば、csharpコマンドでC#インタラクティブシェルを実行することができ、インタラクティブプロンプト「csharp>」が表示されます。このプロンプトが表示されたら、C#のステートメントを読み取って評価して出力する準備ができたことになります。以下にMonoプロジェクトからの単純な例を示します。この例から、実際の動作の様子と、LINQの意味するところがわかるでしょう。

csharp> var last_week = DateTime.Now - TimeSpan.FromDays (7);
csharp> from f in Directory.GetFiles ("/etc")
      >    let fi = new FileInfo (f)
      >    where fi.LastWriteTime < last_week
      >    select f;
{ "/etc/adjtime", "/etc/asound.state", "/etc/ld.so.cache",
  "/etc/mtab", "/etc/printcap", "/etc/resolv.conf" }

 このコードは最近修正された/etcディレクトリの下のファイルを示しています。csharpコマンドは1行のコードをデバッグするときに大いに役立つでしょう。LINQを使用すると、C#でSQLのパワーを利用することができます。

MoMA

 このMoMAとは、近代美術館(The Museum of Modern Art)ではなくMono Migration Analyzerのことです。MoMAは、.NETプログラムの中でどの.NET APIが使われているかを分析して、Monoの下で同じAPIを実行できるかどうか判定しやすくするMonoプロセスアセンブリです。Monoはさまざまな理由で(たとえば、.NETプログラムがPlatform Invocation Services(P/Invoke)を呼び出す場合に).NETプログラムを実行できないことがあります。MoMAはMonoがまだサポートしていない.NET APIやP/Invokeがプログラムで使われているかどうかを明らかにしてくれます。MoMAはディレクトリの下でunzipしてMonoランタイムで実行できる典型的なMono/CLIプログラムなので、Debianの不安定パッケージプールには存在しません。

統合開発環境(IDE)について

 もちろん、Monoフレームワークに適正なIDEがないということは考えられません。monodevelopパッケージをインストールすれば、現代的なIDEによく見られる機能をすべて備えた高度な開発環境が得られます。monodevelopには、コード補完、クラス管理、オンラインヘルプといった典型的な機能に加え、言語またはアプリケーションに固有のモジュールを挿入するためのアドインエンジンも備わっています。たとえば、MonoでOpenOffice用のマクロを書きたい場合は、cli-uno-bridgeとmonodevelopのOpenOffice Automation Samplesアドインをインストールし、サンプルを見ながら学んでください。

 あなたが.NETアプリケーションを実行したいと思っているDebianユーザーなら、本稿からMono(とりわけMono 2.0)が現在および近い将来に何を提供しなければならないか概ねおわかりいただけたことと思います。さらに新しい.NET互換性については、ご自分でMonoをチェックして調べてください。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
japan.internet.com翻訳記事連載記事一覧

もっと読む

この記事の著者

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

japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.comEarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Roberto Giorgetti(Roberto Giorgetti)

イタリアに拠点を置くITマネージャ、テクニカルライター。主にビジネス分野と工業分野でオープンソースの開発に従事。核工学の学位を持つ。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/3586 2009/03/11 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー