rksoftware

Visual Studio とか C# とかが好きです

.NET Core 3.0 プレビューバージョンごとの新機能名メモ(日本語メモ追加)

.NET Core 3.0 のリリースなので、新機能を復習してみたいと思ってまず、新機能の名前だけでも並べてみようと思いました。

.NET Core 3.0 (プレビュー 9) の新機能はこちらに情報があります。

このページから各プレビューバージョンのアナウンスのブログ記事へのリンクが張られています。
リンク先のブログサイト

リリースノートもあるのですが、微妙に表現が違う場合もあって詳細までは書いていないので、アナウンスブログを見ていきます。

■ 日本語メモ

私自身が英語読めなくて英語をメモしても活用しきれないので日本語でメモを機械翻訳に頼ってそれっぽく書いてみました。
長かったので書いた時の気分(気力の充足具合)で書き口が違います。一通り書いて疲れたので書き口の統一をするにはもう気力が足りませんです...。

■ 機能(名?)とバージョン

Preview 1
.NET Framework 4.8 .NET Core の話の前に .NET Framework 4.8 の話
Windows Desktop Comes to .NET Core .NET Core で Windows デスクトップアプリが作れるようになります。Windows です
WPF, Windows Forms, and WinUI Open Sourced WPF、Windows Forms、WinUI の GitHub リポジトリ作りました
WPF and Windows Forms WPF、Windows Forms アプリケーションを .NET Core で作れるようになりました
Applications now have executables by default デフォルトでアプリケーションが実行可能ファイルとしてビルドされるようになりました
dotnet build now copies dependencies dotnet build で NuGet キャッシュから出力ディレクトリへのコピーがされるようになりました(これまでは publish 時だけ)
Local dotnet tools .NET Core tools に local tools scenario が追加されました
Introducing a fast in-box JSON Reader System.Text.Json.Utf8JsonReader。Json.NET よりも速い
Ranges and indices C# 8 の一部として Index 型と Range 型を追加
Async streams C# 8 の一部として非同期ストリームを追加
System.Buffers.SequenceReader ReadOnlySequence のリーダーとして System.Buffers.SequenceReader を追加
Serial Port APIs now supported on Linux Linux でシリアルポート API のサポートを追加
GPIO, PWM, SPI and I2C APIs now available GPIO, PWM, SPI, and I²C pin 用 API System.Device.GPIO NuGet パッケージを追加
Supporting TLS 1.3 and OpenSSL 1.1.1 now Supported on Linux Linux で TLS 1.3 と OpenSSL 1.1.1 のサポートを追加
Cryptography AES-GCM、AES-CCM 暗号化の追加
Cryptographic Key Import/Export 暗号化キーのインポート/エクスポートの追加
More BCL Improvements その他の BCL の改善。最適化、パフォーマンス改善
Default implementations of interface members C# 8 の機能の一部。インタフェースメンバーのデフォルト実装
Tiered Compilation 階層型コンパイルデフォルトで有効。いい感じになるはず
Assembly Metadata Reading with MetadataLoadContext 新しい MetadataLoadContext を追加。呼び出し元アプリケーションのドメインに影響を与えずにアセンブリメタデータを読み取ることができる
ARM64 Linux の ARM64 をサポートします
Platform Support サポート対象プラットフォームの一覧
Preview 2
C# 8 C# 8 の一部機能が追加されました
Using Declarations Using Declarations。using の後ブロックを作らなくても宣言されたブロックの終わりで Dispose
Switch Expressions switch 式。ステートメントでなく式
Async streams 非同期ストリーム
IEEE Floating-point improvements IEEE 準拠の浮動小数点にしようとします
.NET Platform Dependent Intrinsics プラットフォーム依存の組み込み関数。パフォーマンス改善
Introducing a fast in-box JSON Writer & JSON Document System.Text.Json.Utf8JsonWriter と System.Text.Json.JsonDocument を追加。高速
Utf8JsonWriter Utf8JsonWriter の説明と使用サンプル
JsonDocument JsonDocument の説明と使用サンプル
GPIO Support for Raspberry Pi Raspberry Pi 向け GPIO サポート
Local dotnet tools Local dotnet tools。dotnet new tool-manifest / dotnet tool list の 2 コマンドが追加されました
Assembly Unloadability アセンブリのアンロード。AssemblyLoaderContext の新機能
Windows Native Interop Windows COM相互運用機能
WPF and Windows Forms WPF と Windows Forms の GitHub リポジトリ運用頑張ってます
Visual Studio support .NET Core 3 でのデスクトップアプリ開発が Visual Studio でサポート
MSIX Deployment for Desktop apps .NET Core 3 デスクトップアプリを Windows 10 で配置するために MSIX が使えるように Windows Application Packaging Project が Visual Studio(プレビュー)で作れる
Install .NET Core 3.0 Previews on Linux with Snap Snap のある Lnux で Snap で .NET Core 3.0 がインストールできる
Platform Support .NET Core 3 のサポート対象プラットフォーム一覧
Preview 3
.NET Core SDK installers will now Upgrade in Place Windowsでは、.NET Core SDK MSIインストーラーはパッチバージョンのアップグレードをします
Docker and cgroup memory Limits Docker と cgroup のメモリ制限が適切になりました
Docker Publishing Update コンテナイメージを Microsoft Container Registry (MCR) で公開するようになりました
Index and Range C# 8.0 の Index と Range のサポート
.NET Standard 2.1 .NET Standard 2.1 ライブラリ作成をサポート
F# Update F# についての更新
F# 4.6 F# 更新の明細。F# 4.6(プレビュー )
dotnet fsi preview F# 更新の明細。dotnet fsi コマンド(プレビュー)
AssemblyDependencyResolver AssemblyLoadContext.LoadAssemblyFromPath が期待通りに動作する
DLLMap and Native image resolver events 動的にロードされたネイティブライブラリのエクスペリエンスを改善
.NET Core Windows Desktop Project Update WPF、WinForms プロジェクト進捗あります
High DPI for Windows Forms Applications Windows Forms アプリケーションの High DPI 対応
Entity Framework Project Update Entity Framework プロジェクト頑張ってます
Preview 4
WinForms Chart control now available for .NET Core チャートコントロール() System.Windows.Forms.DataVisualization ) が Windows Forms で使用可能になりました
Enabling the Chart control in your .NET project チャートコントロールを使う手順
WPF WPF のいくつかのコンポーネントが GitHub で公開されました
Improving .NET Core Version APIs バージョン API が期待される結果を返すようになりました
Tiered Compilation (TC) Update 階層型コンパイルの更新。効果を調査中フィードバック求む
HTTP/2 Support HttpClient が HTTP/2 をサポートするようになりました
SDK Docker Images Contain PowerShell Core .NET Core SDK Docker コンテナイメージに PowerShell Core が追加されました
Better support Docker CPU (–cpus) Limits Docker クライアントでできるメモリと CPU の制限のサポートが追加されました
Round up the value of the CPU limit CPU 制限の補足
Thread pool honors CPU limits CPU 制限の補足
Making GC Heap Sizes Smaller by default GC ヒープサイズが小さくなった
Better support for many proc machines GC がより多くのプロセッサで良い感じになった
Hardware Intrinsic API changes ハードウェア組み込み API の変更
Assembly Load Context Improvements Assembly Load Context が機能強化されました
Preview 5
WPF and Windows Forms Update WPF、Windows Forms の起動時のパフォーマンスが改善。WPF のコードをさらに GitHub に公開
Introducing the new SqlClient 新しい SqlClient を Microsoft.Data.SqlClient NuGet パッケージで公開
What is new in Microsoft.Data.SqlClient? 新しい SqlClient で Data Classification、UTF-8 support が追加された
What does this mean for System.Data.SqlClient? System.Data.SqlClient も引き続き使えるが、新しい機能は Microsoft.Data.SqlClient に追加されていく
Publishing Single EXEs アプリケーションを単一の exe ファイルとして発行できる
Introducing the JSON Serializer (and an update to the writer) JSON Serializer これまでよりも高性能な JSON シリアライザー System.Text.Json.Serialization ができました
Utf8JsonWriter Design Change Utf8JsonWriter が以前よりもさらに良くなりました
Index and Range 以前のプレビュー版から Index と Range が変わりました。使用しているコードに変更が必要です
New Japanese Era (Reiwa) 日本の新しい元号令和対応
Hardware Intrinsic API changes ハードウェア組み込みAPIの変更
.NET Core runtime roll-forward policy update .NET Coreランタイムのメジャーバージョンのロールフォワード
Making.NET Core runtime docker images for Linux smaller Linux 用の .NET Core ランタイムの Docker イメージが小さくなった
Docker Updates Docker でサポートする OS/バージョンを追加
AssemblyLoadContext Updates AssemblyLoadContextの改善、より手間をかけずに使えるように。さらなる改善も目指す
COM-callable managed components COM 呼び出し可能なマネージドコンポーネントを作成できるようになった
GC Large page support GC が Windows で large pages を使える設定を追加
Preview 6
WPF and Windows Forms update WPF のコードの多くが GitHub での公開を完了しています
Alpine Docker images ARM64 の Docker イメージができました。これまでは x64 だけ
Event Pipe improvements イベントパイプが複数のセッションをサポートするようになりました。新しいパフォーマンスカウンターが追加されました。
Optimize your .NET Core apps with ReadyToRun images コンパイル形式 ReadyToRun。使うとパフォーマンス向上
Sample performance numbers ReadyToRun のパフォーマンス測定値サンプル起動時間メモリ使用量 70-80%
ReadyToRun images, explained ReadyToRun が何をするかの説明。NGEN はクライアントマシンで行う物だったが、ReadyToRun はビルド時に行う
Instructions ReadyToRun の使い方。.csproj、publish のコマンド
Cross platform/architecture compilations ReadyToRun は今のところターゲットの環境で publishコマンドを実行する必要がある
Assembly linking 自己完結型のアプリを publish する際に、使われないアセンブリをトリミングして発行サイズを減らせる
Using the Linker and ReadyToRun Together リンカーと ReadyToRun はアプリケーションに一緒に適用できる
Native Hosting sample ネイティブホスティングのサンプルプロジェクトを GitHub に公開しました
HTTP/2 support in HttpClient HttpClient が HTTP/2 をサポートするようになりました
Preview 7
.NET Core SDK Size Improvements SDK のサイズの改善、インストールサイズ-70%くらい
Preview 8
Preview 9