ニュース

Microsoft、「.NET Community Toolkit 8.3」を発表 ~.NET 8/Native AOTをフルサポート

Microsoft自身も使っている.NET開発者向けライブラリ

Microsoft、「.NET Community Toolkit 8.3」を発表

 米Microsoftは8月27日(現地時間)、「.NET Community Toolkit 8.3」を発表した。「.NET 8」と「Native AOT」のサポート、パフォーマンスの向上、不具合の修正、機能強化などが含まれている。

 「.NET Community Toolkit」は、すべての.NET開発者に有用なヘルパーとAPIをセットにしたライブラリ。もともと「Windows Community Toolkit」の一部として開発されていたが、クロスプラットフォームで利用できる部分をMicrosoftが切り出し、独立させたものだ。含まれるパッケージは以下の通りで、「NuGet」から入手できる。

  • CommunityToolkit.Common:他のライブラリと共有されるヘルパーとAPI
  • CommunityToolkit.Diagnostics:メソッド引数や例外の検証をより効率的に行うためのAPI群
  • CommunityToolkit.HighPerformance:主にライブラリ開発者向けで、速度が求められるシーンで便利なヘルパーコレクション
  • CommunityToolkit.Mvvm:別名「Microsoft MVVM Toolkit」。MVVMパターンでアプリを開発

 このライブラリは「ストア」や「フォト」といったOS同梱アプリでも広く採用されているとのことで、その知見が生かされているとみていいだろう。一般のアプリ開発者もぜひ活用してほしい。

 「.NET Community Toolkit 8.3」では「.NET 8」がサポートされ、「Native AOT」最適化が働くようになった。「Native AOT」(Native Ahead-Of-Time)は、中間言語(IL)コードをインタープリターで実行するのではなく、事前にネイティブコードへコンパイルしてしまう手法。起動時間が短縮され、メモリフットプリントが小さくなるだけでなく、.NETランタイムがインストールされていなかったり、JITが許可されない環境でも実行できるという利点がある。

 これに伴い、すべてのパッケージの全APIにアノテーションが付与され、トリミング(.NET SDKがアプリ全体を分析し、ライブラリの未使用部分を削除する最適化)とAOT互換性が完全にサポートされる。

IDEが自動生成するコードでもトリミング非対応部分に警告が入る

 また、「MVVM Toolkit」に関しても、最新版で「Windows App SDK」(WinUI 3)との完全なトリミングおよびAOT互換性を実現。INotifyPropertyChangingに関するオーバーヘッドの削減が行われているとのことで、全体的なパフォーマンス向上が期待できる。