SAKURUG TECHBLOG

ASP.NET Core 8.0における注目の新機能について

timestampauthor-name
Tomomitsu

始めに

.NET Conf2023とともに.NET 8もリリースが予定されています。

.NET 8のなかでもWebアプリを構築するためのフレームワークであるASP.NET Core 8.0の中の注目の新機能についてピックアップしてみたいと思います。

もちろん、これ以外にも多くの新機能が実装されていたりパフォーマンス面でも大きく向上していますので積極的なアップグレードを検討していきたいです。

Blazor

フルスタックWeb UI

Blazorはこれまで、サーバー側でアプリケーションを実行しその結果をクライアント側のブラウザーにDOM操作でレンダリングするBlazor Server

クライアント側のブラウザーでWebAssemblyの形で.NETアプリケーションを実行するBlazor WebAssemblyがありました。

.NET8ではコンポーネントレベルまたはページレベルでコンテンツをレンダリングするフルスタックWeb UIフレームワークとなっており次のモードが備わっています。

  • 静的HTMLを生成する静的サーバーレンダリング
  • Blazor Serverホスティングを使った対話型のサーバーレンダリング
  • Blazor WebAssemblyホスティングモデルを使った対話型のクライアントレンダリング
  • 最初にBlazor Serverを使い、その後.NET WebAssemblyランタイムがアクティブになったあとの後続のアクセスにWebAssemblyをつかう自動対話型クライアントレンダリング。

この、フルスタックWeb UIの実装に伴い、新しいBlazor Webアプリテンプレートも実装されています。

また、引き続きBlazor ServerおよびBlazor WebAssemblyのテンプレートもあります。

しかしながら、Blazor WebAssembly ASP.NET Core HostedのテンプレートはBlazor Web Appsのテンプレートに統合する形で削除されているようです。

ストリーミングレンダリング

Blazorで静的サーバーレンダリングを使うときにコンテンツの更新をストリーミングできるようになりました。

これは、一部のコンテンツが非同期タスクで実行されるコンテンツであった場合、これまではこの非同期タスクが完了するまでページ全体のレンダリングを開始できませんでした。

ストリーミングレンダリングではまず、プレイスホルダーを使ってページ全体をレンダリングして非同期タスクが完了した段階で更新されたコンテンツが同じ応答接続でクライアントに送信されてDOMに適用されます。

この方法の利点は、ページ全体のレイアウトは可能な限り素早く更新されて非同期タスクつまりAPIとかデータベース接続によって得られるコンテンツの準備が整った段階でページが更新される点です。

キー付きサービスの依存関係の挿入

.NET 8ではキー付きサービスの登録が可能になりました。

Blazorでは[Inject]属性を使ったキー付きサービスの挿入がサポートされるようになりました。

QuickGrid

Blazor QuickGridが.NET 8 Blazorの一部になりました。

これによってデータを表形式で表示するためのグリッドコンポーネントがBlazorに備わりました。

並び替え、フィルター処理、ページング、仮想化などの機能が実装されています。

ネイティブAOT

.NET ネイティブAOTのサポートが追加されました。

ネイティブAOTは現在、gRPC、minimal API、workerサービスアプリでサポートされています。

ASP.NET Coreバックエンドを持つSPAアプリ用のVisual Studioテンプレート

Angular、React、Vueといったアプリのテンプレートが用意されるようになりました。

バックエンドにはASP.NET Coreプロジェクトを使用します。


記事をシェアする

ABOUT ME

author-image
Tomomitsu
2017年2月中途入社。業務ではAzureへのモダナイゼーションを行っています。Microsoft MVP for Developer Technologies 2022 -