2026年5月までサポートの「.NET 9」リリース 8と比べて使用メモリ9割減、パフォーマンス改善の仕組みとは:成長する.NET AIエコシステム、C# 13とF# 9も正式版に
Microsoftは、クロスプラットフォーム開発をサポートするオープンソースアプリケーションプラットフォームの新バージョンとなる「.NET 9」を公開し、.NET 9に対応した「Visual Studio 2022」のアップデートの提供も開始した。
Microsoftは2024年11月12日(米国時間)、クロスプラットフォーム開発をサポートするオープンソースアプリケーションプラットフォームの新バージョン「.NET 9」を公開した。
.NETは、毎年11月にメジャーバージョンがリリースされており、偶数年にリリースされたものがSTS(標準期間サポート)リリース、奇数年にリリースされたものがLTS(長期サポート)リリースとなる。STSリリースはサポート期間が18カ月、LTSリリースは3年間で、STSリリースである.NET 9は、2026年5月まで無料サポートとパッチが提供される。
Microsoftは、.NET 9のリリースとともに、.NET 9に対応した「Visual Studio 2022」のアップデートと「Visual Studio Code」用「C# Dev Kit」の提供も開始した。
Microsoftは「.NET 9では数千件に及ぶパフォーマンス、セキュリティ、機能の改善が行われている」とした上で、.NET 9の主な強化点を次のように紹介している。
8と比べて使用メモリ9割減、パフォーマンス改善の仕組みとは
サーバGC(ガベージコレクション)が大幅に変更され、環境(マシン/VM〈仮想マシン〉/コンテナ)で利用可能なリソース(メモリとCPU)ではなく、アプリケーションのメモリ要件に適応するようになった。このアプローチ変更は、アプリケーションメモリが小さいか、または時間とともに大幅に変化する、コア数の多い環境に大きな影響を与える。
TechEmpowerのベンチマーク結果は、.NET 9のスループットが高く、メモリ使用量が大幅に少ないことを示している。使用メモリの低減はサーバGCの変更によるものだ。
また、ランタイムが新しいシリコン(Arm64 SVE、Intel AVX10)をサポートし、ランタイムのハードウェアアクセラレーションが実現した。JIT(Just In Time)コンパイラの「RyuJIT」がArm64、ループ、PGO(Profile Guided Optimization:プロファイルのガイドによる最適化)、境界チェックのパフォーマンスを向上させた。例外処理も50%高速化された。
コンパイルのランタイム構成オプションである動的PGOも更新され、より多くのコードパターンを最適化できるようになった。
LINQ(Language-Integrated Query:統合言語クエリ)もさまざまな一般的なケースに最適化された。
観測可能な本番アプリをシームレスに開発できる「.NET Aspire」のアップデート
.NET Aspireは、観測可能な本番アプリケーションをシームレスに開発するための強力なツール、テンプレート、パッケージのセットだ。.NET 9に合わせてリリースされた「.NET Aspire 9」では、多くの要望に応え、アプリケーション開発を効率化するさまざまな機能が追加されている。
例えば、ダッシュボードからリソースを開始、停止できるようになった他、デバッグセッション間でコンテナを維持し、新しいAPIにアクセスしてリソースの起動をよりよく管理できるようになった。
OpenAI、Ollama、Milvusなどとの新しいシームレスな統合も開始された。また、.NET Aspireはアプリケーションにより簡単に採用できるようになり「Azure Container Apps」でのデプロイ(展開)シナリオも改善され「Azure Functions」のプレビューもサポートした。
成長する.NET AIエコシステム
Microsoftは、AI(人工知能)を用いてアプリケーションを構築したり、アプリケーションにAIを注入したりするための.NET機能の強化を進めている。
開発者がAIサービスやアプリケーションを構築する際、最新の進歩を利用できることは極めて重要だ。OpenAI、LlamaIndex、Qdrant、Pinecone、Milvus、AutoGen、OllamaSharp、ONNX Runtimeなど、AIエコシステム全体にわたって多くのパートナーと協力し、.NET開発者に堅牢(けんろう)な製品群を提供している。
さらにMicrosoftは、開発者が取り組むエコシステムの製品やサービスの統合を効率化し、参入障壁を取り除く目的で、.NETエコシステムに「Microsoft.Extensions.AI」と「Microsoft.Extensions.VectorData」の抽象化セットを導入した。これらは、AIサービス(小規模言語モデル〈SLM〉、大規模言語モデル〈LLM〉、エンベディング、ベクトルストア、ミドルウェアなど)を操作するためのC#の統合抽象化レイヤーを提供する。
Microsoft.Extensions.AIとVectorDataは、.NET 9で提供するビルディングブロックのサブセットであり、Microsoftは、AI開発を支援するライブラリやプリミティブ型にも大きな改良を加えている。
.NET開発者向けの「GitHub Copilot」の改良
GitHub Copilotは、.NET開発者のエディタ体験を改善し、通常のワークフローでAIによる支援を提供することで、生産性を向上させる。この体験は「Visual Studio」および「Visual Studio Code」の最新リリースと、GitHub Copilotのアップデートでさらに向上する。GitHub Copilotの最新リリースは以下のような機能を提供する。
- AIスマート変数検査:統合されたAI変数検査により、デバッグのワークフローを最適化する
- GitHub Copilotによるコード修正:GitHub Copilotがコードの問題を解決する
- C#のAI補完の向上:GitHub Copilotは、関連するソースファイルから追加のコンテキストを取り込み、C#の補完を改善する
- GitHub Copilotによるテストのデバッグ:GitHub CopilotでDebug Testsを使うことで、失敗したテストのデバッグが容易になる
「ASP.NET Core」と「Blazor」によるフルスタックWeb開発
ASP.NET Coreは、.NETのフルスタックWebフレームワークであり、モダンなWebアプリケーションとスケーラブルなバックエンドサービスを構築するために必要な全てを提供する。
.NET 9のASP.NET Coreは、パフォーマンス、アクセシビリティー、セキュリティが大幅に改善されている。また、JavaScriptやCSSファイルのような静的ファイルを、効率的なデプロイのためにビルドおよび公開時に最適化するようになった。
.NETのフロントエンドWebフレームワークであるBlazorは、単一のプログラミングモデルでサーバ側のレンダリングとクライアントのインタラクティブ機能の両方をサポートする。
.NET 9のBlazorでは、全領域にわたってパフォーマンスが改善されており、新しいBlazorハイブリッドおよびWebアプリテンプレートや、快適な体験を作成するための新しいAPIが利用できる。
マルチプラットフォームアプリ開発を強力にサポートする「.NET MAUI」
.NET MAUI(.NET Multi-Platform App UI)は、C#とXAMLを使用して、ネイティブのモバイルアプリやデスクトップアプリを作成するためのクロスプラットフォームフレームワークだ。.NET MAUIを使用すると、1つの共有コードベースからAndroid、iOS、macOS、Windowsで実行できるアプリを開発できる。
.NET 9の.NET MAUIでは、全く新しいプロジェクトテンプレートが導入されており、その中にはオープンソースのSyncfusionコントロールや人気ライブラリが含まれている。さらに、デスクトップおよびモバイルアプリケーションのパフォーマンス、信頼性、統合性が強化され、より小さく高速なアプリを開発できるようになった。
.NET 9によるWindows開発
.NET 9を使えば、最新のOS機能にアクセスし、これまでよりパフォーマンスとアクセシビリティーを考慮したWindowsアプリケーションを作成できる。「WinUI 3」と「Windows App SDK」で新しいモダンアプリケーションを開発する場合でも、既存のWPF(Windows Presentation Foundation)およびWinFormsアプリケーションをモダナイズする場合でも、Windowsアプリケーションは.NET 9上で最適に動作する。
C#とF#の機能強化
C# 13では、開発者が慣れ親しんだスタイルでより簡単に、安全に、速くコードを書くための機能に焦点が当てられている。
メソッドシグネチャでparams修飾子が使用できるようになり、コレクション式が追加された。これにより、paramsで使用できる型が配列型に限定されなくなり、サポートされているあらゆるコレクション型を使用できるようになった。
また、ref struct値を使用する新しい方法が導入され、System.Threading.Lockにより、マルチスレッドアプリケーションをより容易に扱えるようになった。
一方、F# 9では、言語、ライブラリ、ツールのさまざまな機能強化が行われ、プログラムの安全性、回復力、パフォーマンスが向上している。
Null可能な参照型がC#ライブラリとの相互作用に型の安全性をもたらし、最適化された積分範囲がforループや他の内包を高速化し、最適化された等式チェックがボックス化を回避し、多くの一般的な操作のパフォーマンスを向上させる。標準ライブラリに、データサイエンスやゲーム開発に便利なコレクション用のランダム関数が追加された。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- .NET 9で開発体験はどう変わる? Microsoft、「Visual Studio 2022バージョン17.12 Preview 1」公開
Microsoftは、「Visual Studio 2022バージョン17.12 Preview 1」を公開した。.NET 9対応と、AIによる新しい生産性機能の提供に重点が置かれている。 - Microsoft、コンテナやAIなどの開発者体験を向上させる「.NET 8」をリリース
Microsoftは開発プラットフォーム「.NET」のバージョン8をリリースした。多くの機能が改善され、開発者体験を向上させるという。 - GitHub Copilotの統合で強化された「Visual Studio 2022 バージョン 17.10」のGitツール機能とは
Microsoftは、2024年5月に一般提供を開始した「Visual Studio 2022 バージョン 17.10」の最新のGitツール機能を公式ブログで紹介した。