ついにリリース .NET Core 3.1
2019-12-06
azblob://2022/11/11/eyecatch/2019-12-06-dotnet31-update.jpg

.NET Core 3.1

2019年12月3日に、.Net Core 3.1がついにリリースされました。
.NET Core3.0のリリースからは2か月ぶりのLTSリリースで、これによってこのバージョンの.Net Coreは以降3年間サポートされることになります。
本リリースと同時にVisual Studio 2019 16.4もリリースされており、Visual Studioにおいて.Net Core 3.1を利用するためにはこのバージョンにアップデートする必要があります。
.NET Core 3.0から3.1の間で行われた変更はPreview版のアップデートでも述べられていた通り主にBlazorとWindows Desktopに関するもので、Cookieのポリシー変更への対応のような環境変化への対応や既存の問題への対処、バグフィックスなどが多かったですが、今回はそんな.NET Core3.0から3.1の間にあったアップデートをリリースノートやブログポストを元にして振り返っていこうと思います。

アップデート内容

  • Razorのコンポーネントがpartial classをサポート
    Preview1のアップデートでの変更です。
    Razorコンポーネントがpartial classとして生成されるようになり、ロジックの部分をcode-behindで記述できるようになりました。
    これによってロジック部分をrazorのファイルから分離できるようになりました。
  • Blazor Server appsにおいて、initial render中にパラメータをトップレベルのコンポーネントに渡せるようになった
    Preview1のアップデートでの変更です。
    .NET Core 3.1では、新しいTag HelperであるServerPrerenderedを使うことによってコンポーネントをページ内に描画できるようになりました。
    この方法は.NET Core3.1におけるページ内に値を渡すための推奨される方法となっています。
  • HttpSysServerでShared queuesがサポートされるようになった
    Preview1のアップデートでの変更です。
    HTTP.sysにおいてサポートされていた匿名キューに加え、既に存在するキューを接続したり新しいキューを接続する機能も追加されました。
    これによって、キューのコントローラーとリスナーを独立させ、リスナー側が再起動されていてもメッセージが保持されるようになります。
  • SameSite cookiesの大きな変更への対応
    Preview1のアップデートでの変更です。
    Cookieに付与するSameSite属性のデフォルトの仕様が変更されたため、.NET CoreでSameSite属性を指定する際の挙動も変更されました。
    SameSite属性の振る舞いや変更についての詳細はこちらでも解説しています。
  • Blazorアプリのイベントでデフォルトの動作を防止できるようになった
    Preview2のアップデートでの変更です。
    イベントを受け取った際の動作にpreventDefaultを設定してやることで、既定の動作をさせないようにすることができます。
  • Blazorアプリにおいてイベントの伝搬を防止できるようになった
    Preview2のアップデートでの変更です。
    stopPropagationという句を使うことでイベントの伝搬を防ぐことができるようになりました。
  • Blazorアプリ開発において詳細なエラーを表示できるようになった
    Preview2のアップデートでの変更です。
    開発時と本番環境時で異なるメッセージ(開発時には詳しいエラー情報を表示するなど)を表示するバーが出てくるようになりました。
    これによってエラーの発生を知らせたり、開発時にエラーの原因の特定を助けたりできるようになりました。
  • 参考元リリースノート「What's new in ASP.NET Core 3.1」

おわりに

12月にリリース予定とされていた.NET Coreの3.1が予定通りついにリリースされました。
元々アナウンスされていた通りBlazorのアップデートがメインだったため、3.0で追加されたBlazorを早速試していた方には影響がありそうです。
私もこれからBlazorを触ってみようとしていたところだったので、アップデートがかかった今現在は触り始めるのにちょうどいい時かもしれません。
例えば、年末はBlazorで年を越しするとか?
これからも.NET Coreの更新をチェックしつつ、その周りで気になったものがあれば記事にしていきたいと思いますので、よろしくお願いします。