1701243536
2023-11-29 07:16:28
.NET 8 の最新リリースでは、大幅な追加と変更が行われています。 ASP.NETコア。 ASP.NET Core のこのリリースの最も注目すべき機能強化は、AOT、Identity、SignalR、メトリクス、その他多くの機能に関する更新に加えて、パフォーマンスと Blazor に関連したものです。
Microsoft は、.NET 8 の ASP.NET Core がこれまでにリリースされたバージョンの中で最もパフォーマンスが高いと発表しました。前述のとおり、.NET 7 と比較した場合、.NET 8 の ASP.NET Core は Techempower JSON ベンチマークで 18%、24% 高速です。 Fortunes ベンチマークで % 高速になりました。 Brennan Conroy が次のブログ投稿を書きました ASP.NET Core 8 のパフォーマンスの向上 読者はこれを検討することをお勧めします。
ASP.NET のパフォーマンスは Reddit で活発な話題となり、ユーザーは次のように述べました。 セトリビアス 興味深い質問をした Asp.net はどうしてそんなに速いのでしょうか? このスレッドにはコミュニティのディスカッションが豊富にありますが、最も興味深いのは次のような人によって書かれたものです。 デビッド・ファウラー.NET の Distinguished Engineer である氏は次のように述べています。
fasthttp リポジトリのように、すべてが 1 か所にきちんと文書化されているわけではありません。 簡単に言うと、チームはパフォーマンスに徹底的にこだわっているということです。 これは具体的な変化ではありませんが、リリースごとに劇的なパフォーマンスの向上と画期的な進歩をもたらしたのは、そのパフォーマンス文化です。
そして、より長く詳細な回答の最後には次のように述べられています。
これはスプリントではなくマラソンであり、.NET 憲章の一部としての「永遠の優先事項」の 1 つです。 .NET のパフォーマンスへの投資は、チームがより少ないリソースでより多くのことを実行できるようにするため、Microsoft の $$$ を直接節約します。 つまり、今後もパフォーマンスの向上を最優先課題として取り組んでまいります。
読者の皆様には、ぜひご覧になることを強くお勧めします。 完全な答え David と他のコミュニティメンバーによって書かれました。
機能と改善点については、その 1 つが ネイティブAOT この機能はクラウド ネイティブ API アプリケーション向けに特別に調整されており、ネイティブ AOT を使用した ASP.NET Core アプリの公開を可能にし、ネイティブ コードにコンパイルされた自己完結型アプリケーションを実現します。
これにはいくつかの利点があります。第 1 に、プログラムと外部依存関係からのコードのサブセットを組み込んだ単一の実行可能ファイルを生成することで、ディスク フットプリントが大幅に削減されます。 この実行可能ファイルのサイズの縮小により、コンテナー イメージが小さくなり、デプロイ時間が短縮され、全体的な起動効率が向上します。
さらに、ネイティブ AOT アプリケーションは、ジャストインタイム (JIT) コンパイルの排除により、起動時間が短縮されています。 この高速化された起動により、サービス リクエストに対する応答性が向上し、コンテナ オーケストレーターによって管理される場合の移行がよりスムーズになります。
さらに、ネイティブ AOT で公開された ASP.NET Core アプリは、 メモリ需要の削減これは、新しい DATAS GC モードがデフォルトで有効になっているためです。 このメモリ消費量の削減は、展開密度の向上とスケーラビリティの向上に貢献します。
.NET 8 のリリースは、 ブレイザー、有望なクライアント Web UI フレームワークから、幅広い Web UI 要件に対応できる包括的なフルスタック Web UI ソリューションに変換します。
Blazor の新機能 これには、静的なサーバー側レンダリング、強化されたナビゲーションとフォーム処理、ストリーミング レンダリング、コンポーネントまたはページごとの対話機能を有効にする機能が含まれます。 の @rendermode Razor ディレクティブにより、実行時のレンダリング モードの選択が容易になり、サーバーとクライアント間の自動切り替えが可能になり、アプリの読み込み時間とスケーラビリティを最適化できます。
.NET 8 は、WebAssembly での .NET コードの実行に大幅な改善をもたらします。 の導入 ジタープリッターベースのランタイムによりパフォーマンスが向上し、コンポーネントのレンダリングが 20% 高速になり、JSON 逆シリアル化の速度が 2 倍に向上します。
の .NET Webアセンブリ ランタイムは、ホット リロードによる複数の新しい編集タイプをサポートするようになり、CoreCLR のホット リロード機能と完全に同等の機能を提供し、ジェネリック タイプの編集を可能にします。 さらに、WebCIL と呼ばれる、Blazor WebAssembly アプリ用の新しい Web フレンドリーなパッケージ形式は、.NET アセンブリから Windows 固有の要素を削除し、WebAssembly ファイルとして再パッケージ化することで展開を合理化します。
.NET 8 の ASP.NET Core には、次の API エンドポイントが導入されています。 ASP.NETコアのアイデンティティ、ユーザー登録およびログイン機能へのプログラムによるアクセスを提供します。 これにより、ブラウザーとモバイル クライアント アプリの認証の設定が簡素化され、Cookie ベースの認証とトークンベースの認証の両方がサポートされます。
このアップデートでは豊富なランタイムも導入されています ASP.NETコアのメトリクス を使用して システム診断メトリクス、OpenTelemetry コミュニティと協力して開発されたクロスプラットフォーム API。 これらのメトリクスは、多次元値を特徴とする強力なレポート機能とともに、カウンタ、ゲージ、ヒストグラムによる新しい種類の測定を提供する堅牢な監視システムを提供します。
より広範なクラウドネイティブ エコシステムへの統合は、 オープンテレメトリ これにより、ASP.NET Core アプリケーションのシームレスな互換性と強化された監視機能が保証されます。
.NET 8 リリースには多くの変更と更新が詰め込まれていますが、その他の変更は以下に関連しています。 MVC の汎用属性、 強化されたフォーム バインディング 最小限の API と偽造防止ミドルウェアの場合、 シグナルR ステートフルな再接続、 鍵付き 依存関係の注入におけるサービスのサポート。
さらに、パフォーマンスの向上もあります。 名前付きパイプ ケストレルの輸送、 名前付きパイプ Windows アプリ間のプロセス間通信 (IPC) を構築するためのテクノロジです。 レディス-ベースの出力キャッシュのサポートも追加されました。
出力キャッシュは、アプリが最小限の API エンドポイント、コントローラー アクション、または Razor ページの出力をキャッシュできるようにする機能です。 包括的でより詳細な内容については、読者が参照することをお勧めします。 公式リリースノートページ。
最後に、 コメントセクション 元のリリースのブログ投稿では、フレームワークの変更と機能強化に関する反応が活発に行われています。 このブログ投稿はかなりの反響を呼び、ユーザーは数多くの質問をし、開発チームとの議論に参加しました。 さまざまな視点やより詳細な回答についての洞察を得るには、ユーザーがコメント セクションを参照し、進行中の議論に参加することを強くお勧めします。
#パフォーマンスBlazorAOTIDメトリクスなど