.NET Core と ASP.NET 5 の RC 版リリースを発表

 

本記事は、マイクロソフト本社の .NET Blog の記事を抄訳したものです。 【元記事】 Announcing .NET Core and ASP.NET 5 RC 2015/11/18 3:38 PM

このたび、Windows、OS X、Linux 対応の .NET Core と ASP.NET 5 の Release Candidate (RC) がリリースされました。今回のリリースは「Go Live」版です。つまり、運用環境にアプリを展開でき、サポートが必要な場合にはマイクロソフトサポートに問い合わせていただくことができます。ASP.NET 5 の更新情報の詳細については、ASP.NET 5 RC の発表に関するブログ記事 (英語) をご覧ください。

RC 版を入手するには、こちらのサイト (https://get.asp.net、英語) が便利です。このサイトでは、ダウンロード、手順、サンプルといったユーザーにとって必要なさまざまなものを入手できます。なお、ベータ版をインストールしている方は、コマンドラインを使用して環境を RC にアップグレードすることができます。

ここでは .NET Core の今後の展望について、具体的には、新しいコマンドライン ツールと .NET Native についてご紹介します。更新版の .NET Core ロードマップ (英語) もご確認ください。

また、.NET Foundation フォーラム (英語) では、.NET チームが新しい RC 版のほか、.NET Core と ASP.NET 5 に関するさまざまなご質問にお答えしていますので、お気軽にご利用ください。

 

.NET Core RC ASP.NET 5 RC

今回、.NET Core と ASP.NET 5 の RC 版が公開されました。今後は ASP.NET 5 を使用して、オンプレミスとクラウドで動作し、Windows、Linux、OS X で実行できるスケーラブルな Web アプリや Web サービスを開発することができます。.NET アプリは移植性に優れており、コードを変更しなくても Windows のアプリを Linux に移行したり、その反対に Linux のアプリを Windows に移行したりすることができます。つまり、柔軟性が大幅に向上し、アプリをより簡単に開発、展開、管理できるようになります。

RC 版ではさまざまな機能が追加され、Linux と OS X への機能の実装もほとんど完了しました。ASP.NET 5 の詳細については、ASP.NET 5 RC の発表に関するブログ記事 (英語) をご覧ください。また、製品の変更やコミットのマイルストーンについては、ASP.NET (英語).NET Core (英語) のリリース ノートをご確認ください。プレビュー版以降に追加された主な機能は以下のとおりです。

 

ASP.NET 5 の Visual Studio エクスペリエンス

  • Bootstrap スニペットの統合
  • Bower パッケージ UI の更新
  • ASP.NET 5 プロジェクトで MVC のスキャフォールディングが可能に

 

ASP.NET 5 ランタイム

  • 透明性の高い DNX のアプリ ホスティング モデル
  • 構成可能な Webroot フォルダー
  • 厳密な名前のフレームワーク アセンブリ

 

.NET Core ランタイムと BCL

 

.NET Core ライブラリ

 

Feature Complete (すべての機能の実装が完了)

開発の世界では、「リリースも機能の 1 つである」とよく言われます。Feature Complete (すべての機能の実装が完了した状態) に到達することは、最終版のリリースに向けた非常に大きなステップです。

Linux、OS X、Windows では、.NET Core と ASP.NET 5 の大部分の機能の実装が完了しました。ほとんどの分野で、焦点はパフォーマンス、信頼性、全体的な品質の向上へと移行しました。まだ開発されていない機能もいくつかありますが、それはもはや例外です (そう言えば、「例外」は完全に実装されています)。

皆様からは、よく基準となるパフォーマンスについてお問い合わせをいただきます。Linux でのパフォーマンスは当初、Windows よりもはるかに低速でした。そのため、.NET チームは Linux や OS X でのパフォーマンスが Windows と同等のパフォーマンスになるように尽力してきました。しかし、まだ本格的なパフォーマンス向上の取り組みを開始するに至ってはいません。今後の動きにどうぞご期待ください。

 


明示的な DNX のアプリホスティングモデル

DNX には、アプリにさまざまなサービスを提供するホストが含まれています。dnx run、dnx web、その他の dnx 起動コマンドを使用してアプリを起動した場合、このホストを使用することができます。これまで、ホストの呼び出しやアプリへの関連付けの方法は少々わかりにくいものでした。しかし、一部のシナリオでは、ホストがアプリを初期化する前に、別のホストを提供したり、作業を行ったりする必要があります。そのため、もう少し柔軟に制御できるようにしたいという声が多く寄せられていました。

RC1 から、ホストをアプリの明示的な部分として利用できるようになります。これで、これまでわかりにくかった部分が解消され、プラットフォーム上でアプリが動作するしくみが明白になると共に、柔軟に制御することも可能になりました。既定では、ホストを呼び出すには、新しい C# 6 の式をメソッド本体に使用する (英語) 構文で記述した以下のコードを使用します。

 

また、従来の方法でホストを呼び出すこともできます。ホストを呼び出す前に作業を行う場合には、こちらの方法を使用して、ホストの後に作業が行われないようにします。

 


Linux および OS X RyuJIT をサポート

RyuJIT では、Windows、Linux、OS X 用のコードを生成できます。Windows では x64 用のマシン コードも生成できますが、Linux と OS X では同じチップ用のコードを生成する方法を学習させる必要がありました。これは、OS によって呼び出し規則 (英語) などが異なるためです。今回、この問題に対処するためにいくつか変更 (英語) を行いました。

RyuJIT は、CoreCLR の Ahead-Of-Time コンパイラである CrossGen に使用されているコンパイラでもあります。CrossGen は Windows の .NET Framework の NGen と同様のタスクを実行しますが、Linux と OS X 用のネイティブ イメージを生成するためには学習させる必要がありました。CrossGen はすべての OS で PE イメージを生成します。これは、CoreCLR が読み込むことのできるバイナリ実行可能ファイルです。また、プラットフォーム固有のデバッグ ツールと統合するために、Windows では PDB (英語) イメージを、Linux と OS X ではテキスト形式のシンボル テーブル (英語) を生成します。CrossGen は現在 Linux では使用不可 (英語) で、今後修正される予定です。

 


長いファイル名 (MaxPath)

Windows では、ディレクトリを含むファイル名の長さに対して MaxPath 制限が適用されていました。この制限は約 260 文字です。写真などのファイルであればほとんど気にする必要はありませんが、開発者ツールなどでは問題が生じる可能性があります。当初 Windows 向けに開発された .NET Framework にもこの制限が継承されています。

今回、.NET Core ではこの MaxPath 制限が撤廃され、.NET Core アプリで長いファイル名を使用できるようになりました。Windows での長いファイル名のサポートは依然として限定的ですが、どのような名前のファイルを作成しても、.NET Core API で問題が発生することはありません。

詳細とサンプル コードについては、こちらの Gist (英語) をご覧ください。

 


クロスプラットフォーム対応の SQL クライアント

SqlClient の初期バージョンを .NET Core で利用できるようになりました。SQL クライアントの主な変更点は、.NET Framework で使用しているネイティブの Windows 専用ライブラリから .NET Core ネットワーク ライブラリに移行したことです。ネットワークロジックを C# と .NET Core API に変更したことにより、.NET Core が実行されているすべての場所で SqlClient ライブラリを実行できるようになりました。

SqlClient にはまだすべての機能の実装が完了していませんが、Windows、OS X、Linux できちんと動作することが確認されています。OS X または Linux で SqlClient を使用するには、接続文字列で複数のアクティブな結果セット (MARS) を無効にする必要があります (既定では有効)。以下の例のように、MultipleActiveResultSets=False; を追加して無効にします。

また、SQL Server への接続は TCP 経由でのみ可能です。

名前付きパイプ、共有メモリ、LocalDB を使用した通信は現時点ではサポートされていません。

接続文字列の例:

connectionString="Data Source=my-data-source;Initial Catalog=mydataBase;

MultipleActiveResultSets=False;User Id=myUserName; Password=myPassword;"

詳細とサンプル コードについては、こちらの Gist (英語) をご覧ください。

 


本番運用レベルのサポート

.NET Core および ASP.NET 5 の Release Candidate は「Go Live」版です。つまり、ASP.NET 5 アプリがテストに合格し、他に問題がなければ、アプリを運用環境でホストすることができます。

皆様は GitHub で、.NET Core CLR (英語).NET Core FX (英語)ASP.NET 5 (英語) の各チームと直接やり取りすることができます。また、運用環境に展開できない問題が発生した場合には、マイクロソフトの製品サポートまでご連絡ください。サポートは英語のみで、米国の営業時間内 (月~金、午前 6 時~午後 6 時 太平洋標準時) に限られます。

 


CoreFX のオープンソース化の進捗状況

.NET Core は約 1 年前の 2014 年 11 月 12 日にオープン ソース化されました。当時リリースされたライブラリは少数でしたが、将来的にライブラリの数を増やすことをお約束しました。.NET チームはしばらくの間リポジトリを使用して、コンポーネントをクローズド ソースからオープン ソースに移行させる作業の進行状況を公開してきました。その後すべての作業が完了し、リポジトリをクローズしました。

そのリポジトリには円グラフが含まれていました。これは、進行状況を説明するデータ ファイルに基づいて、スクリプトによって自動生成されたものです。最後にグラフが生成された時点で、ほぼすべての作業が完了していたことがわかります。現在は作業が完了したため、ファイルもグラフも更新されていません。

clip_image002


まとめ

今回、.NET Core RC と ASP.NET 5 の RC 版がリリースされました。これらは運用環境で使用することが可能で、通常のマイクロソフトサポート チャネル経由でマイクロソフトにサポートを依頼することができます。ASP.NET はこちらからダウンロードできます (英語)ASP.NET 5 RC に関する発表 (英語) についてもご確認ください。参考ドキュメントはこちら (英語) で、サンプルはこちら (英語) から入手できます。ぜひ RC 版をご利用ください!

.NET チームではご質問を承っています。StackOverflow (asp.net タグ、.net タグ) と .NET Foundation フォーラム (英語) までお気軽にお寄せください。