.NET 8の登場によりさらに前進する「One .NET Vision」
この日最初のセッションに登壇したマイクロソフトの井上章氏からは、先ごろ登場した「.NET 8」の特徴や新機能、今後.NETを活用していくうえでの留意点などが解説された。
Windows OS上で動作するデスクトップアプリケーションやWebアプリケーションを開発するための.NET Frameworkに始まり、iOSやAndroidのネイティブアプリをC#で開発できるXamarinと呼ばれるライブラリがそこに加わり、さらにはWindowsだけでなく、LinuxやMacといったOSにも対応するアプリケーション開発が可能な.NET Coreが登場するなど、.NETは時代とともに大きな進化を遂げてきた。
これらフレームワークでは、C#を共通言語に各プラットフォーム用のアプリケーション開発が行えるようになっていたが、ベースクラスライブラリやSDKなどが、基本的にはそれぞれに異なっている状況がしばらく続いた。
「これに対しマイクロソフトが打ち出したのが、統一化されたベースクラスライブラリ、SDKを使って、単一のツールチェーンのなかで、開発者が多様なアプリケーションモデルを選択し、開発していける環境を目指した『One .NET Vision』というコンセプトでした」とマイクロソフトの井上氏は語る。
要するに、.NET Framework、Xamarin、.NET Coreという3つのフレームワークを統合した開発プラットフォームとして、.NETを進化させていく流れとなったわけだ。
こうしたコンセプトは、.NET 5において具現化され、その後リリースされた.NET 6、.NET 7へと続いている。その最新版として2023年11月に登場してきたのが.NET 8だ。.NET 8では、.NET 5から.NET 7に至る過程で継続的に目指されてきたアプリケーションのパフォーマンスがさらに大きく向上している。
あわせて.NET 8において注目されるのが、クロスプラットフォームフレームワークである「.NET MAUI(Multi-platform App UI)」が利用可能となっていることだ。MAUI自体、従来のXamarinの進化型と位置づけられ、.NETの環境において関連の各種ライブラリ群が統合され、作り変えられてきたものである。iOSやAndroidのネイティブアプリケーションに加えて、Macのデスクトップ、そしてWinUIをベースとしたWindowsデスクトップアプリケーションの開発をサポートする。
「ポイントとなるのが、1つのプロジェクトのなかで、さまざまなビューやカスタムコントロールなどのUIコンポーネントを、iOSやAndroidなどを含む複数のターゲット環境に向けたアプリケーション開発で共通のパーツとして利用していくことができることです」と井上氏は説明する。さらに、そうしたUIパーツだけではなく、画像やフォント、スタイルなどを単一プロジェクトで共有、管理することが可能だ。
また、Webアプリケーション開発に着目すると、「ASP.NET Core」が.NET 8をベースに利用できるようになっている。MVCやSPA(Single Page Application)用のフレームワーク、REST APIを作るためのWebAPIのフレームワークに加え、ルーティングやセキュリティ、キャッシュなど多様なミドルウェア機能を提供する各種ライブラリ群も装備。そのほか、WindowsやLinux、Mac環境で利用される軽量なWebサーバーであるKestrel上でのアプリケーション実行もサポートしている。
さらに大きな注目を集めているのが「ASP.NET Core Blazor」だ。これは、Webのフロントエンド開発をJavaScriptではなく、C#をベースに行える。ホスティングモデルとしてはWebブラウザのWebAssemblyとしての実行、あるいはサーバーサイドの.NETプロセスとしてBlazorコンポーネントを実行してSignalR通信でクライアント側のブラウザ画面を書き換える方法に加え、新たに「Static Server-side Rendering(Static SSR)」と呼ばれるホスティングモデルで、HTMLのDOM要素の部分更新とServer/WebAssemblyを組み合わせて実行することが可能となっている。
なお、今回の.NET 8は、2021年11月の.NET 6以来、2年ぶりとなるLTS(Long Term Support)版としてのリリースだ。要するに、期間3年の長期サポート版となる。これに対し2022年11月にリリースされた.NET 7は1年半のSTS(Standard Term Support)版であることには留意が必要だ。「具体的には、.NET 7については2024年5月にサポートが終了。.NET 6にしてもその半年後の11月がサポート期限を迎えます。よりセキュアなアプリケーション開発を目指す意味からも、できるだけ早期に.NET 8への移行を検討いただければと思います」と井上氏は強調する。
一方、.NET Frameworkについては、すでに現行の4.8が最後のメジャーバージョンとなる旨がアナウンスされている。しかし、特に.NET 8の登場に影響を受けることはなく、インストール先のWindows OSと同じライフサイクルポリシーが適用されることに変わりはない(4.6.2以降)。例えば、.NET Framework 4.8をWindows 11にインストールして使っているのであれば、Windows 11のサポート終了までは継続して使えるわけだ。
いずれにせよ、開発者としては、各時代の多様なニーズに応えるかたちで進化を続ける.NETの動向をしっかりとキャッチアップしていくことこそが肝要である。