.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 |
|
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 | ||