ニュース
Microsoft、「.NET 7」をリリース ~「C# 11」「F# 7」に対応、パフォーマンスも大幅向上
18カ月サポートの「Standard Term Support」(STS)バージョン
2022年11月9日 17:10
米Microsoftは11月8日(現地時間)、「.NET 7」をリリースした。クロスプラットフォーム対応のアプリ開発フレームワーク「.NET」の最新版で、「C# 11」「F# 7」といった最新の言語機能をサポートするほか、.NET MAUI、ASP.NET Core/Blazor、Web API、WinForms、WPFなどのアプリケーションにパフォーマンスの向上と新機能をもたらす。
「.NET 7」のキーワードは「Unified」(統一された)、「Modern」(モダン)、「Simple」(簡素)だ。
「Unified」は、単一のベースクラスライブラリ(BCL)に基づいていることを指す。かといってプラットフォーム固有の機能が利用できないわけでなく、以下のターゲットフレームモニカー(TFM)を指定することでOS固有のAPIへアクセスできるようになっている。
- net7.0-android
- net7.0-ios
- net7.0-maccatalyst
- net7.0-macos
- net7.0-tvos
- net7.0-windows
業界がARMに移行するのに合わせ、ARM64におけるパフォーマンス向上にも取り組んでおり、x64とのギャップは少なくなっている。また、x64(64bit Intel/AMD)、ARM64(64bit ARM)、s390x(64bit IBM Z)に加え、RHEL 8.7/9.1をターゲットとするppc64le(64bit IBM Power)アーキテクチャーが新たにサポートされた。
「Modern」という点においては、クロスプラットフォーム対応のUIライブラリ「.NET MAUI」が「.NET 7」の一部になったことがトピック。デスクトップとモバイルの両方で、洗練されたGUIを構築できる。また、「Blazor」(WebAssembly)の機能強化や、.NETアップグレードアシスタントを用いたレガシーアプリのモダナイズなども注目すべき変更点だ。
「Simple」というワードに関しては、言語機能の強化が挙げられている。BCLでは数学関連のジェネリックインターフェイスが導入され、数学演算を汎用的に、つまり型が厳密になんであるかにかかわらず行えるようになった。型ごとにメソッドをオーバーロードする必要はない。
また、文字列リテラルの新しい形式が追加された。少なくとも3つの二重引用符で括ることにより(引用符の数は対になっている必要がある)、エスケープシーケンスを必要とせずに空白、改行、埋め込み引用符、その他の特殊文字を任意のテキストに含むことができる。
string longMessage = """
This is a long message.
It has several lines.
Some are indented
more than others.
Some should start at the first column.
Some have "quoted text" in them.
""";
そのほかにも、「Microsoft.Extensions.*」ライブラリを利用したNull許容アノテーション、日時型におけるマイクロ秒・ナノ秒のサポート、キャッシュを扱うための新しいAPI「Microsoft.Extensions.Caching」、TAR形式の書庫を扱う「System.Formats.Tar」などが新たに追加されており、従来よりも簡潔にコードを記述できる。動的PGOやネイティブAOTといった技術により、パフォーマンスも大きく改善された。
なお、「.NET 7」は奇数バージョンなので「Standard Term Support」(STS)となる。サポートされるのはリリース後18カ月だ。3年間の長期サポート(LTS)を希望する場合は、「.NET 6」か「.NET 8」(来年リリース)を利用するとよい。