マイクロソフト、「ASP.NET Core in .NET 8」正式版リリース。事前コンパイルにより、高速に起動する軽量なWebアプリケーションを実現
今回は「マイクロソフト、「ASP.NET Core in .NET 8」正式版リリース。事前コンパイルにより、高速に起動する軽量なWebアプリケーションを実現」についてご紹介します。
関連ワード (包括的、新機能、明確等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
マイクロソフトは、同社の包括的なアプリケーションフレームワーク「.NET 8」の正式リリースと同時に、.NETをベースとしたWebアプリケーションフレームワークの最新版となる「ASP.NET Core in .NET 8」正式版をリリースしました。
ASP.NET CoreがAOTコンパイラに対応
ASP.NET Core in .NET 8の最大の新機能はAOTコンパイルに対応したことでしょう。
C#などの.NETに対応したプログラミング言語をコンパイルし、ネイティブバイナリを生成するAOTコンパイラ(Ahead-of-Timeコンパイラ:事前コンパイラ)は、.NET 7で登場した新機能でした。
.NETには開発時にコードをコンパイルをするプロセスがありますが、これはソースコードを.NET専用の中間言語に変換するものです。アプリケーションの実行時に.NETランタイムのJITコンパイラによって中間言語から動的にネイティブバイナリが生成されることでターゲットマシン上でアプリケーションが実行されます。
AOTコンパイラは、このネイティブバイナリの生成を開発時に行えるコンパイラです。アプリケーション実行時には生成済みのネイティブバイナリを実行することで、高速に起動し、少ないメモリや低いコンピューティングパワーでも高速に実行可能な軽量なアプリケーションにできる利点があります。
.NET 7ではWindows、macOS、LinuxのOSでユーザーインターフェイスを持たないコンソールアプリの生成にのみ対応していましたが、.NET 8でASP.NET CoreによるWebアプリケーションのコンパイルにも対応するようになりました。
下記はマイクロソフトによるベンチマークの結果です。緑のマーカーがトリミングされたASP.NET Coreアプリケーション、黄色のマーカーが通常のASP.NET Coreアプリケーション、そしてオレンジのマーカーがAOTコンパイルされたASP.NET Coreアプリケーションを示しています。
アプリケーションのサイズ、消費メモリ、起動時間のいずれもAOTコンパイルされたASP.NET Coreアプリケーションが明確に優れていることが示されました。
ただしあらゆるASP.NET CoreアプリケーションがAOTコンパイラでネイティブバイナリ化できるわけではなく、MVC、Blazor Server、SignalR、Authengication、Session、SPAなどの機能は現時点でサポートされていません。
またAOTコンパイラに対応させるためのテンプレートが用意されています。