マイクロソフトの.NETオープンソースフォークである.NET Coreは、プログラムマネジメントディレクターのスコット・ハンター氏によると、5月中旬にRC2(リリース候補版2)をリリースする予定だ。このツールは「Preview 1」と名付けられ、安定稼働までにさらなる変更が予定されている。
ソフトウェアプレビューがリリース候補版と呼ばれる場合、通常は製品版リリース前にバグを修正するだけです。しかし、今回の場合は異なります。「RC1とRC2の間で、製品の方向性を大きく変更しました」と、Microsoftの共通言語ランタイム開発プログラムマネージャーであるリッチ・ランダー氏は、フロリダ州オーランドで開催されたXamarinのEvolve 2016カンファレンスで語りました。
一体何が起こっているのでしょうか?答えは、Microsoftの.NET Coreプロジェクトが2014年末の最初のローンチ以来、方向性を多少変えてきたということです。当初は、MicrosoftのWebアプリケーションフレームワークであるASP.NETを主な対象としていました。チームは、ASP.NETアプリケーションをホストし、フレームワークのバージョンとライブラリの依存関係を管理するためのソフトウェア開発キットおよびランタイム環境として、DNX(別名.NET Execution Environment)と呼ばれるツールを開発しました。.NET CoreのRC1リリースはDNXを使用しています。
.NET Core の適用範囲が拡大し、Microsoft は DNX が目的に適していないことに気づきました。「私たちは .NET Native のコンパイル技術をオープンソース化し、Core RT と名付けました」と Lander 氏は語ります。「それを、私たちが構築した RC1 の DNX ベースのソリューションと統合しようとしましたが、困難であることがわかりました。」
もう一つの要因は、DNXが大きなオーバーヘッドを課していたことです。「DNXは実際には3つの機能を1つのパッケージにまとめたものでした」とランダー氏は言います。「ツールセット、ライブラリセット、そしてアプリ内で利用可能なランタイムサービスでした。私たちが目指しているのは、これらをそれぞれオプション化し、モノリシックではなく、よりオプトイン方式にすることです。」
DNX の後継は .NET CLI (コマンド ライン インターフェイス) と呼ばれますが、Lander 氏は次のように語っています。「私たちはこの用語から少し距離を置いています。これは確かに CLI として認識していますが、ブランド名ではありません。これは、たまたまコマンド ライン ツールであるいくつかのツールが付属している .NET Core なのです。」
.NET Core に追いつこうとしていた人たちにとって、.NET CLI はどこからともなく現れたように思えました。「RC1 は 11 月にリリースしました。CLI はその後に登場しました。それまでは存在しなかったものです。コミュニティはリアルタイムでそれを知りました。これは非常に重要なプロジェクトでした。1 年かかるプロジェクトを 3 か月で成し遂げたと言えるでしょう」と Lander 氏は語りました。
マイクロソフトの.NET Coreプログラムマネージャー、リッチ・ランダー氏
Microsoftは.NET Core RC1を「Go Live」ライセンス付きで出荷しました。つまり、本番環境で使用できるということです。RC2も、新しいツールセットを使用しているにもかかわらず、Go Liveライセンスが付属します。しかし、チームは、ツールとは別に、ランタイムが高品質で真のリリース候補版であることを強調しています。「堅牢で安定しており、重大な問題が発生しない限り、RTMでも変更されることはありません」とハンター氏は述べています。
ハンター氏は、.NET Core と ASP.NET Core の RTM リリースは 6 月末までに利用可能になる予定だが、「Visual Studio 15 で RTM されるまで、引き続き変更を加え、ツールを安定化させていきます」と付け加えている。
Visual Studio 2015 と混同しないでください。「Visual Studio 15」は、現在早期プレビュー段階にある次期バージョンです。
ランダー氏は、.NET Coreの早期導入企業は満足していると語った。「フォーチュン500企業のお客様がWindowsとLinuxの両方でRC1を本番環境に導入しています。これらのワークロードで彼らが実感しているパフォーマンスは、かつてないほど向上しています」と彼は述べた。
パズルのもう一つのピースは、モバイルからWebまで、あらゆるプラットフォームに共通する.NETライブラリセットを提供するための新たな取り組みです。「以前はPCL(ポータブルクラスライブラリ)というコンセプトがありましたが、これは基本的に、プラットフォームセット全体におけるAPIの共通部分に関する、後ろ向きな考え方でした。.NET Standardはその逆です。私たちは、2016年に開発者が.NETエコシステム全体でアプリを構築するために使いたいAPIとは何かを考えています。デスクトップ、クラウド、モバイルを問わず、ワークロードに依存しません。これが、保証される最小限のAPIセットです」とランダー氏は述べています。
.NET Standardの定義はバージョン管理されます。「今後12~18ヶ月で大幅に拡張する計画があります」とランダー氏は語りました。
ソフトウェア開発において、開発の最終段階で考えを変えるのは危険な行為ですが、間違った解決策をそのまま進めるよりはましです。.NET CLIツールはDNXよりも柔軟性が高く、洗練されており、使いやすいです。同時に、今回の大幅な刷新により、開発者はASP.NET Coreの正式リリース前に、開発に時間をかけすぎないよう慎重になるでしょう。®