InfoQ

InfoQ

News

マイブックマーク

ブックマークするためにログイン または 会員登録 する

ブックマークされました!

ブックマークがエラーになりました。もう一度お願いします。

.NET/Monoのクロスプラットフォーム ライブラリ

作者 Jonathan Allen , 翻訳者 編集部N 投稿日 2011年5月15日

セクション
設計/アーキテクチャ,
デベロップメント
トピック
Mono ,
Android ,
.NET ,
OS ,
プログラミング ,
モバイル ,
iPhone

原文(投稿日:2011/05/10)へのリンク

.NET/Monoエコシステムにおける プラットフォームの分岐問題 に取り組む試みとして、Microsoftは Portable Library Tools と呼ばれる拡張機能を開発中である。このツールによって、単一のコンパイルされたライブラリが .NET 4.0, Silverlight, Xbox 360, Windows Phone 7 で走る。Microsoftは MonoTouch とMonoDroidのサポートを追加しようとMonoに取り組んでいる。

新しい “portable class library” が完成したら、開発者はライブラリをどのフレームワークで走らせかを選ぶ必要がある。一旦選んでしまうと、選んだ全プラットフォームで共通に使えるAPIだけが使えるようになる。使用できる特定のクラスやメソッドのリストは Visual Studioの Object Browserで見ることができる。

Portable Library Toolkitではプロジェクトは通常のプラットフォーム固有のライブラリではなく、特別なセットのライブラリを参照する必要がある。プラットフォーム毎にサポートされるAPI のリストとAPIの変更 についてはMSDNに載っている。MonoDroid と MonoTouch APIが載ってないが、David M. Kean氏によると将来サポートされるという。

このツールは、全 .NET/Mono プラットフォームをサポートするわけではない。例えば、「.NET Compact ( Windows Phone & Xboxより前に) や .NET Microフレームワークへのサポートを追加する計画は無い」。標準.NETフレームワークの古いバージョンへのサポートもない。ランタイムに著しい変更を必要とするからである。

このツールの重大な制限は、選んだ全プラットフォームに共通のAPIに限られることである。ということは、コンパイラ定数を使って、各ターゲットプラットフォーム用に別々のDLLを作るような、フィーチャを選択できるオプションは無い、ということである。Microsoftはリフレクションや遅延バインディングを使って、追加のフィーチャを「活かす」ような機能を追加することを検討しているが、その計画は定かでない。