「.NET 7 RC2」登場 C# 11や.NET MAUI利用可能で、現場への影響は?:.NET 7は2022年11月に正式リリース
Microsoftは、アプリケーション開発プラットフォームの次期バージョン「.NET 7」のRelease Candidate 2(RC2)を発表した。
Microsoftは2022年10月11日(米国時間)、クロスプラットフォームのアプリケーション開発OSS(オープンソースソフトウェア)の次期バージョン「.NET 7」のRelease Candidate 2(RC2)を発表した。
.NET 7は、2022年11月に正式リリースが予定されている。.NET 7 RC2は、.NET 7の最終Release Candidate(リリース候補)であり、本番環境でサポートされる。Windows版、macOS版、Linux版がダウンロードできる。「Visual Studio 17.4 Preview 3」でテストされており、Microsoftは、.NET 7をVisual Studioファミリーで試す場合は、プレビューチャネルビルドを使用することを勧めている。
.NET 7の特徴と、.NET 7 RC2での主な変更点は次の通り。
.NET 7の特徴
.NET 7は、次のような特徴を持つ。
C# 11が利用可能
C#の最新版であるC# 11が利用できる。C# 11は、次のような多くの新機能を提供する。
- 汎用(はんよう)属性
- ジェネリック型数値演算のサポート
- 数値IntPtrとUIntPtr
- 文字列補間の改行
- リストパターン
- 改善された、メソッドグループからデリゲートへの変換
- 未加工の文字列リテラル
- auto-default構造体
- string定数でのSpan[char]またはReadOnlySpan[char]のパターンマッチ
- 拡張nameofスコープ
- UTF-8の文字列リテラル
- 必須メンバー
- refフィールドとref scoped変数
- ファイルスコープ型
ライブラリの拡充
.NETライブラリは常に改良されており、新機能を含む新しいAPIが定期的に追加されている他、既存APIのパフォーマンス改善も進められている。.NET 7では、ジェネリック型数値演算のサポート、正規表現の改善、レート制限(特定のリソースにアクセスできる量を制限すること)の導入といった機能強化が行われる。
SDKの改良
.NETの各リリースでは、.NETプロジェクトの作成、ビルド、管理のためのコア機能を含む.NET SDKに多数の改良が加えられている。.NET 7の主要な改良点としては、次の2つが挙げられる。
- ビルトインコンテナサポート
アプリケーションのコンテナ化されたバージョンを「dotnet publish」コマンドで作成できるようになり、コンテナイメージが.NET SDKの出力タイプとしてサポートされるようになった。
- Central Package Managementの導入
「NuGet 6.2」から、「Directory.Packages.props」ファイルを追加することで、プロジェクト内の依存関係を一元管理できるようになった。
.NET MAUIが利用可能
.NET 7では、「.NET MAUI」が利用できる。.NET MAUI(.NET Multi-platform App UI)は、Android、iOS、macOS、WindowsのAPIを1つのAPIに統合し、多くのプラットフォームでネイティブに動作する単一のアプリを作成することを可能にする。Microsoftは、「開発者は.NET MAUIにより、各プラットフォーム(Android、iOS、macOS、Windows、Tizen)で設計された最良のアプリ体験を提供するとともに、豊富なスタイリングとグラフィックスによって一貫したブランド体験を実現できる」と述べている。
クラウドネイティブアプリの開発機能の強化
.NET 7では、前述したビルトインコンテナサポートに加え、gRPC JSONトランスコーディングの導入や、「Azure Functions」における.NET 7サポートなどにより、クラウドのレジリエンス(強靭性、回復力)、スケーラビリティ、効率性、速度を活用できるクラウドネイティブアプリケーションの開発機能が強化されている。
gRPC JSONトランスコーディングは、ASP.NET Coreの拡張機能であり、gRPCサービスのRESTful HTTP APIを作成できる。JSONトランスコーディングを構成すれば、HTTPの考え方でgRPCのメソッドを呼び出せる。
Arm64アプリケーションのパフォーマンス向上
.NET 7では、Arm64デバイスで動作するアプリケーションのパフォーマンスを高めるために、厳密なパフォーマンス分析を踏まえてランタイム、ライブラリ、ツールが改善されている。
モダナイゼーションの支援
.NET 7では、アプリケーションのモダナイゼーションを支援するために、Windowsデスクトップおよびクラスライブリプロジェクトをアップグレードするのに役立つ「.NET Upgrade Assistant」が提供されている。また、ASP.NETからASP.NET Coreに漸進的に移行するためのライブラリとツールも提供されている。
パフォーマンス向上
.NET 7では、リフレクション、On Stack Replacement(OSR)、起動時間、ネイティブAOT(Ahead Of Time)コンパイラ、ループ最適化など、多くの領域でパフォーマンスに影響する1000以上の改善が盛り込まれている。
.NET 7 RC2での変更点
.NET 7 RC2での主な変更点は次の通り。
- System.Text.Jsonソース生成のためのリフレクションフォールバックを、グローバルに再有効化できるようになった
- APIを適切な方法で使用するための新しいアナライザにより、以下のことが可能になった
- ジェネリック型数値演算インタフェースを正しく実装する
- IntPtrおよびUIntPtrの組み込み演算子における動作変更を防止する
.NET 7のサポート
.NET 7は、「Standard Support」リリース(旧称:Currentリリース)となる。.NETは、毎年11月に新しいメジャーバージョンがリリースされ、奇数番号の.NETリリースはStandard Supportの対象となり、サポート期間は従来のCurrentリリースと同じ18カ月だ。偶数番号の.NETリリースはこれまでと同じく「Long-Term Support」(LTS)の対象となり、36カ月間サポートされる。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- WindowsもArmへの移行が進むのか――Arm64にネイティブ対応するVisual Studio 2022
.NET 6の現状を把握し、具体的な移行方法を学ぶ連載。今回は、Arm64にネイティブ対応するVisual Studio 2022についてまとめる。 - Microsoft、「PowerShell 7.2」の一般提供を開始
Microsoftはオープンソースでクロスプラットフォームのタスク自動化ソリューションの最新版「PowerShell 7.2」の一般提供を開始した。Microsoft Updateによる自動更新が可能になっている。 - .NETとXamarinの統合、クラウドネイティブ対応はどうなるのか――2021年11月ローンチ、.NET 6の最新情報
既存の.NET Frameworkアプリの.NET 5への移行に関する考慮事項やレガシーアプリのモダナイゼーションについて解説する連載。最終回は、2021年11月ローンチ予定の.NET 6の最新情報について、Microsoft Build 2021の主な発表からお伝えする。