.NET 5.0.0 Preview 6がリリースされました
2020年6月25日、「.NET 5.0.0 Preview 6」がリリースされました。リリース情報とダウンロード
「.NET 5.0.0 Preview 6」のリリース情報です。- リリースアナウンス:Announcing .NET 5.0 Preview 6
- リリースノート:.NET 5.0.0 Preview 6 - June 25, 2020
- ダウンロード:Download .NET 5.0
- インストール方法:.NET 5.0.0 Preview 6
- 既知の問題:.NET 5 Known Issues
- サポートOS:.NET 5 - Supported OS versions
- 不具合報告:.NET 5 Preview 6
「.NET 5.0.0 Preview 6」は、以下のコンポーネントで構成されています。
- .NET Runtime 5.0.0-preview.6.20305.6
- ASP.NET Core 5.0.0-preview.6.20312.15
- .NET SDK 5.0.100-preview.6.20318.15
ドキュメント
「.NET 5」はプレビュー版ですので、初めて「.NET Core」を利用する方や不慣れな方は、まず「.NET Core 3.1」のドキュメントに目を通すのが良いでしょう。Dockerイメージ
Dockerイメージは、以下を参照してください。コンテナーイメージに関する情報は、以下を参照してください。
.NETをインストールするには
「.NET」をインストールする方法は、以下を参照してください。Windows ARM64のサポート改良
「.NET 5.0.0 Preview 4」で「Windows ARM64」がサポートされました。「.NET 5.0.0 Preview 4」の時点では、コンソールアプリと「ASP.NET Core」アプリでのみ「Windows ARM64」がサポートされていました。
Windows Formsのサポート
「.NET 5.0.0 Preview 6」では、「Windows Forms」が新たにサポートされました。これにより開発者は「Windows ARM64」上で「Windows Forms」を利用したアプリを開発できます。
以下で「Windows Forms」を利用したサンプルが公開されています。
将来的にWPFもサポート
また今後「Windows ARM64」で「WPF」がサポートされる予定です。リモートデバッガーのサポート
「Visual Studio」の「Windows ARM64」向け.NETリモートデバッガーは、「Visual Studio 16.7」でサポートされる予定です。また「Visual Studio Code」の.NETリモートデバッガーでは、その後すぐに「Windows ARM64」がサポートされる予定です。
このリモートデバッガーはx64マシン上で動作し、Windows ARM64マシンに接続してそのマシン上で動作しているアプリをデバッグするデバッガーです。
Visual Studio CodeのARM64サポート
ARM64版「Visual Studio Code」の開発作業が行われています。ARM64版「Visual Studio Code」内で動作するC#拡張や.NETデバッガーのサポートも行われます。
現状リリース予定日はまだ決まっていません。
Windows Forms
「Windows Forms」に関する内容です。アプリの単一インスタンス化
「Visual Basic」ユーザーにお馴染みのアプリの単一インスタンス化(複数インスタンスを生成しない・アプリの複数起動を許可しない)がサポートされました。この振る舞いは以下で指定可能です。
ListViewGroup
「ListViewGroup」はグループを閉じる(Collapse)機能をサポートしました。また以下の実装により、グループのCollapseの状態を簡単に管理できるようになります。
RyuJITコード品質の改善
「RyuJIT」コード品質が改善されました。「RyuJIT」コード品質の改善は、継続的に行われている作業です。
- パフォーマンス及び機能性の改良
- ARM64ハードウェア命令のサポート改善
- ARM64向けコードのコードサイズ削減
単一ファイルアプリケーション
単一ファイルアプリケーションの改善が継続的に行われています。単一ファイルアプリケーション
単一ファイルアプリケーションとは、「Windows」「macOS」「Linux」でアプリケーションを1つのファイルで提供することです。言い換えれば、自己完結型のアプリケーションです。
「.NET 5.0.0 Preview 4」で「Windows」の単一ファイルアプリケーションをビルドする場合、4つの追加ランタイムファイル(coreclr.dll, clrjit.dll, clrcompression.dll, mscordaccore.dll)も生成されます。
そこでネイティブバイナリーやイメージのようなアプリの追加コンテンツを1つのファイルに含める新しいオプションが追加されました。
初めてアプリを起動した時に、これらのファイルが展開されます。
「macOS」や「Linux」では、画像等のコンテンツを含まないなら、つまりネイティブランタイムライブラリーのためにこのオプションを指定する必要はありません。
Linuxにおける現在の制約
「Linux」では現時点でいくつか制約があります。ランタイムコンポーネントがリンクされている「SingleFileHost」は、まだ実装途中です。
つまりランタイムネイティブライブラリーは「Windows」のように個別のファイルとして提供されます。
- Single-File: Implement Linux SingleFileHost with statically linked runtime
- SingleFile: Statically link core native libraries to Linux SingleFileHost
またバンドルに埋め込まれた「ReadyToRun」アセンブリーは、ILアセンブリーのように読み込みが行われます。
ネイティブコードにホストされたアプリケーション
ネイティブコードにホストされたアプリケーションのサポートが改善されました。.NETアプリケーションのホスティングレイヤーにより、カスタムエントリーポイントをネイティブコードから呼び出し、ビルトインアプリケーションの機能をさらに活用できるようになります。
特にネイティブアプリケーションから.NETコンポーネントをホストするアプリケーションで、高い効果を発揮するでしょう。
ビルトインWinRTサポートの削除
「Windows Runtime(WinRT)」はアプリケーションのアーキテクチャーです。「WinRT」のAPIは「Windows」が公開しています。
C++と同様にこれらのAPIを.NETのコードから呼び出すことができます。
「.NET Core 3.0」では、「Windows Forms」及び「WPF」をサポートする一環として、「WinRT」との相互運用がサポートされました。
C#/WinRTに置き換える
しかし「.NET 5.0」でビルトインWinRTのサポートは、Windowsチームが提供する「C#/WinRT」ツールチェインに置き換えられることになりました。- [Breaking change] Removal of built-in WinRT support in .NET 5.0
- Built-in support for WinRT is removed from .NET 5.0
そのため「.NET Core 3」で「WinRT」を使用しているアプリは、コンパイルし直す必要があります。
詳細は今後のプレビューリリースで紹介される予定です。
置き換えによる利点
置き換えによる利点です。- .NETランタイムから離れて「WinRT」との相互運用機能を開発及び改良し続けることができる。
- 「iOS」や「Android」といった他のOSと噛み合うように「WinRT」との相互運用機能を開発することができる。
- AOTやC#といった.NETの多くの機能を活用することができる。
- .NETランタイムのコードベースを簡素化できる。
その他置き換えによる利点や詳細は、以下を参照してください。