.NET 9 Preview 1が公開。AOTコンパイラ対応の拡大、Windows上でのLinuxをターゲットとしたクロスコンパイル環境の強化など
今回は「.NET 9 Preview 1が公開。AOTコンパイラ対応の拡大、Windows上でのLinuxをターゲットとしたクロスコンパイル環境の強化など」についてご紹介します。
関連ワード (事前、具体的、環境等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
マイクロソフトは同社の包括的なアプリケーションフレームワークの次期バージョンとなる「.NET 9」の最初のプレビュー版となる「.NET 9 Preview 1」のリリースを発表しました。
.NETは、デスクトップアプリケーションからモバイルアプリケーション、クラウドネイティブ、ゲーム、IoTなど、あらゆるアプリケーションを包括的にカバーするフレームワークです。
.NETの大きな枠組みの中に、プログラミング言語のC#やコンパイラ、ランタイム、そしてクロスプラットフォーム対応のUIフレームワーク.NET MAUIやWebアプリケーションフレームワークのBlazorなどが含まれています。
また、.NETは偶数バージョンがLTS(Long Term Support:長期サポート)版となり、現時点では昨年11月にリリースされた.NET 8が最新のLTS版です。LTS版は安定度を優先したバージョンとしてリリースされる一方、奇数バージョンは新機能や改善などを優先する傾向にあるため、.NET 9も比較的大きな機能追加や性能向上などが期待されるバージョンとなります。
AOTコンパイラの改善をさらに推し進める
下記は.NET 9 Preview 1のリリースを発表した同社のブログ「Our Vision for .NET 9」から、.NET 9での新機能や改善点について言及されたポイントを紹介していきましょう。
.NET 9では、クラウドネイティブ対応の強化としてAOTコンパイラ(事前コンパイラ)の強化が行われます。
We’ve been developing Native AOT and application trimming as key tools to optimize production apps. In .NET 8, we optimized Web API applications (using the webapiaot template) for both trimming and AOT. In .NET 9, we are working on doing the same with other application types and improving the DATAS GC for all ASP.NET Core applications.
私たちは、本番アプリケーションを最適化するための重要なツールとしてNative AOTとアプリケーショントリミングの開発を進めてきました。.NET 8では、Web APIアプリケーション(webapiaotテンプレートを使用)をトリミングとAOTの両方に最適化しました。.NET 9では、他のアプリケーションタイプでも同じことを行い、すべてのASP.NET CoreアプリケーションのDATAS GCを改善することに取り組んでいます。
上記の引用の中で「アプリケーショントリミング」と「DATAS GC」という2つの用語がでてきます。
それぞれの概略を説明すると、アプリケーショントリミングとはダイナミックリンクや実行時のコードの動的生成などを行わないようにすることです。アプリケーション実行時にその内容が動的に変更されるような処理はAOTコンパイルに適合しないため、そうした処理を行わないようにすることで、AOTコンパイラへの対応を進めるとしています。
一方のDATAS GCとは「Dynamically Adapting To Application Sizes Garbage Collection」の略です。.NET 8までのガベージコレクションは比較的大きなサイズのアプリケーションに最適化されていますが、クラウドネイティブなアプリケーションでは小さなサイズのサービスが連携して動作する、あるいはサーバレスのように起動後短時間で終了するアプリケーションが中心となるため、こうした小さなサイズのアプリケーションでも動的にそのサイズに適合することで効率的なガベージコレクションを可能にする、というものです。
Windowsでのクロスコンパイル環境を改善
Windows上でLinux用のバイナリを生成するためのビルド環境もさらに改善するとしています。
Developers who want to cross-compile (for example, target Linux on Windows) currently rely on Docker and/or WSL2, as guided by our documentation and samples. Visual Studio support for AOT will expand to make Native AOT accessible to many more developers.
クロスコンパイル(例えば、Windows上でLinuxをターゲットにする)を行おうとしている開発者は、現在はその環境をDockerやWSL2に依存しています。Visual StudioにおけるAOTコンパイルのサポートは、より多くの開発者がNative AOTにアクセスできるように拡張される予定です。
具体的にどのようにクロスコンパイル環境が拡張されるかは示されていませんが、より簡単にWindows上でLinuxをターゲットにしたコンパイルなどが可能になると期待されます。
アプリケーションとAIとの統合も推進
OpenAIとの戦略的提携によるCopilotサービス群の提供など、マイクロソフトはAI分野でも大きな存在感を示していますが、.NET 9ではアプリケーションにAI機能を組み込むことも推進していくとのことです。
NET 9, we are committed to making it even easier for .NET developers to integrate artificial intelligence into their existing and new applications. Developers will find great libraries and documentation for working with OpenAI and OSS models (hosted and local), and we’ll continue collaborating on Semantic Kernel, OpenAI, and Azure SDK to ensure that .NET developers have a first-class experience building intelligent applications.
.NET 9では、.NET開発者が既存のアプリケーションや新しいアプリケーションにAI機能を統合するのをさらに簡単にしようとしています。開発者がOpenAIおよびOSSのAIモデル(ホスト型もしくはローカル型)で作業するための優れたライブラリとドキュメントを用意しようとしています。また、.NET開発者がインテリジェントなアプリケーションを構築するための優れた経験を実現するため、Semantic Kernel、OpenAI、Azure SDKでのコラボレーションを前進させていきます。
.NETは毎年11月にメジャーバージョンアップが行われるため、今回の.NET 9も正式版は今年(2024年)11月にリリースされる見通しです。