Microsoft は .NET Core 3 の 2 番目のプレビューをリリースしたので、当然ながら IDE を起動して何が変わったのか確認しました。
C# 8.0 の改善点の他に、実際に使用するためにプロジェクトの高度なビルド プロパティでベータ言語を手動で選択する必要があるものの、修正の中には便利な新機能もいくつかあります。
JSONと.NET Coreのエキスパート
まず、JSONパフォーマンスの向上についてです。このリリースにより、Utf8JsonWriter
.NET型からUTF-8エンコードされたJSONテキストを書き込む際のJSON.NETライターの速度が30~80%向上します。
Utf8JsonReader
.NET Core 3 Preview 1 ではすでに登場しており、Json.NET の同等機能に比べてパフォーマンスが 2 倍になったと主張しています。今回はそれほど劇的ではありませんが、この改善は歓迎すべきものです。
これを基に、Utf8JsonReader
プレビュー2ではJsonDocument
JSONデータを受け取り、読み取り専用のドキュメントオブジェクトモデル(DOM)に投入し、クエリや要素の列挙が可能な機能が追加されました。レドモンド氏は、JSONペイロードの解析とそのメンバーへのアクセス速度はJson.NETの2~3倍になると見積もっています。
結果は人によって異なるかもしれません。確かに高速化はしましたが、それほど劇的な変化は見られませんでした。もちろん、データの種類と量によって影響は出るでしょうし、これはまだプレビューコードですからね。
GPI-ああ、そうだ
Preview 1 のもう一つの機能は、この第2バージョンで改善されました。Raspberry Pi の GPIO コネクタのサポートです。IoT 開発者は、LED ディスプレイの駆動やセンサーデータの読み取りなど、これらのピンからの読み書きを非常に好みます。そのため、GPIO、SPI、I2C、PWM デバイス用の API を備えた NuGet パッケージがいくつか追加されましSystem.Device.Gpio
たIot.Device.Bindings
。
マイクロソフトが Visual Studio 2019 の 2 回目のプレビューを公開 (レドモンドの製品としては、私たちが実際に気に入っているもの)
続きを読む
最後に、更新されたプレビューでは、.NET のコマンドラインインターフェースが改善され、ツールとそのマニフェストの一覧表示や、ローカルツールに必要なマニフェストの作成が可能になりました。メモリリーク対策にAssemblyLoaderContext
取り組んでいる方は、アセンブリのアンロード機能の導入も喜ばれることでしょう。これにより、アプリケーションは「メモリリークを発生することなく、永久に」アセンブリのロードとアンロードが可能になります。まさに力強い言葉です。
.NET Core 3はWindows、macOS、そして幅広いLinuxディストリビューションをサポートしていますが、Microsoftは、ペンギン愛好家の皆様に、お使いのディストリビューションがSnapをサポートしている場合はSnapの使用を検討するよう強く推奨しています。Windows 7も引き続きサポート対象です。
このツールで作成されたアプリの展開についてはどうでしょうか? Windows ユーザーは新しいアプリ パッケージ形式 MSIX を利用することになりますが、Microsoft の Rich Lander 氏はスタンドアロン実行ファイル (少なくともデスクトップ用) を含む輝かしい未来を示唆しています。
デスクトップアプリ用のスタンドアロンEXEファイルの作成を可能にする取り組みを進めています。WindowsチームはデスクトップアプリでWinUI/Xamlを利用できるようにすることで、スタンドアロンアプリでそのUIスタック、WPF、またはWindowsフォームを使用できるようになります。お好みに合わせてお選びください。
「スタンドアロン」とは、「すべての.NET Coreコンポーネントを1つの肥大化したEXEファイルに詰め込む」ことではないことを祈ります。そうすると、狂気とストレージ消費の急増に陥ります。®