ニュース

Microsoft、「.NET 7」をリリース ~「C# 11」「F# 7」に対応、パフォーマンスも大幅向上

18カ月サポートの「Standard Term Support」(STS)バージョン

Microsoft、「.NET 7」をリリース

 米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)アーキテクチャーが新たにサポートされた。

単一のベースクラスライブラリ(BCL)に基づく「.NET」

 「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」(来年リリース)を利用するとよい。

「.NET」のサポート期間