MSBuild のクロス プラットフォーム対応を .NET Core で実現!

本記事は、マイクロソフト本社の .NET Blog の記事を抄訳したものです。 【元記事】 MSBuild is going cross-platform with .NET Core! 2015 2015/09/03 11:17 PM

今回は、オープン ソース開発の最新情報と、現在進めているクロス プラットフォーム対応の最新動向をお届けします。

今後、MSBuild と一般的なビルド ツールの情報についてはこちらで発信していきますので、これからはぜひこちらのブログにご注目ください。これまでの記事は引き続き MSBuild チーム ブログ (英語) でご覧いただけます。役立つヒントやテクニックが数多く紹介されていますので、そちらも引き続き参考にしていただければ幸いです。

MSBuild がオープンソース化。クロスプラットフォームにも対応予定

.NET コンパイラ プラットフォーム (Roslyn) がオープン ソース化 (英語) されてからしばらく経ちましたが、マイクロソフトはそのタイミングで .NET をオープン ソース化してクロス プラットフォームに対応 (英語) し、ASP.NET 5 ランタイムも同様にオープン ソース化してクロス プラットフォームに対応 (英語) しました。また、3 月には .NET Foundation (英語) のプロジェクトの一環として MSBuild もオープン ソース化し、GitHub (英語) で公開しています。GitHub で公開中のソースは、Visual Studio でリリースされているバージョンと非常に近いものです。いくつか違いはありますが、不整合は将来的に修正される予定です。

clip_image002

GitHub でのオープン化の取り組みは、幸先の良いスタートを切りました。現在開示中のイシューは 54 で、終了したものは 30 です。82 のプル リクエスト (現在は終了) のうち、69 が受理されました。19 人の方が協力してくださいましたが、そのうちの多くはマイクロソフトの外部の方です。既にフォークは 389 となり、2,093 個のスターが付き、323 ユーザーにウォッチされています。ご参加いただいている皆様に心から感謝いたします!

オープン ソース化の直後には、Mono ソフトウェア プラットフォームを使用して Linux 版、Mac 版の MSBuild への取り組みを開始しました。しかしその過程で、コードには Windows 特有の部分が多くあり、その修正が必要であることがわかりました。そこで私たちは視点を変え、.NET のオープン ソース、クロス プラットフォーム版である .NET Core (英語) をランタイムとして使用することにしました。この作業は、GitHub の xplat ブランチ (英語) で行われており、GitHub のすべてのイシュー (英語) を確認し、対処を進めています。

今後について

MSBuild の .NET Core への移植にはまだしばらく時間がかかります。開発はすべて GitHub でオープンに進められていますので、皆様も up-for-grabs (英語) として挙がっているイシューの作業にご参加ください。私たちの最終目標は、単一のオープン ソース コード ベースでクロス プラットフォームに対応できるようにすることです。それを基に、Visual Studio で提供する MSBuild パッケージを構築したいと考えています。

MSBuild の基本原則は、2005 年にリリースされて以来大きく変わっていませんが、MSBuild を取り巻くテクノロジは進化しました。たとえば、マルチコアプロセッサは今では当たり前のものとなり、事実上無制限のリソースを備えたクラウド サービスがコンピューティングとストレージに対するニーズを満たしています。また、多くのソフトウェアプロジェクトの規模が拡大し、その管理はかつてないほど難しくなっています。私たちはこうした変化を受け入れ、前進していきたいと考えています。次なる進化を見据えて、マイクロソフトでは次のような目標を掲げています。

  • ビルド仕様を作成、維持する方法を徹底的に簡略化する
  • パッケージに対するサポートを最高のものにする
  • クラウドを活用してパフォーマンスを大幅に向上させる
  • 依存関係に関するより深い知識を備えてかつてない信頼性を実現する

これらの今後の動向やヒント、テクニックについては、引き続き MSBuild 関連記事にご注目ください。

MSBuild を支えるチーム

MSBuild には長い歴史があります。2005 年に .NET Framework の一部としてスタートし、そのうち Visual Studio に欠かせないコンポーネントとなりました。最近は、マイクロソフトのビルド エンジンとして、マイクロソフトのクラウドおよびエンタープライズグループの Tools for Software Engineers (TSE) チーム (英語) が中心となって開発を進めています。

4426_tse-logo_0074CF7A彼らのミッションは、マイクロソフトによるソフトウェア開発を加速し、マイクロソフトのエンジニアだけでなく、マイクロソフトのテクノロジを利用する世界中の開発者の皆様に利益をもたらすことです。TSE 内部では既に、クラウドベースのビルドとテスト システムの実行、ビルド出力とパッケージの管理、コード レビューの合理化、パイプラインを流れる全データのマイニングによるインサイトの発掘などを行っています。

一緒に働きませんか ?

一般的なソフトウェア エンジニアリング、または MSBuild のソフトウェア エンジニアリングに興味のある方はいらっしゃいませんか? TSE チーム (英語) では今、そうした熱意のある方を募集しています。募集中の役職 (英語) をご確認いただき、メールで msbuild@microsoft.com 宛にご応募いただければ幸いです。