モダンな要件を満たす機能を搭載し、確かな進化を遂げた.NET 9
この日最初のセッションに登壇したマイクロソフトの井上章氏からは、先ごろ登場した「.NET 9」の特徴や新機能、そして今後の.NETをめぐるロードマップなどが解説された。
すでに.NETでは、デスクトップアプリケーション開発にとどまらず、クラウドサービスのほか、Webアプリケーションやモバイルアプリケーション、さらにはゲーミングやIoT、AIなど、多彩なアプリケーションモデルの実装が可能だ。
またWindowsだけでなく、LinuxやmacOSを含むプラットフォームへの対応も実現されている。そうした.NETでの開発を支援するVisual StudioやVisual Studio Code、あるいはGitHub Copilotなどツール環境の整備も順次進んでいるほか、NuGetやGitHubといったエコシステムの活動も活性化している状況だ。
「.NETのアクティブユーザーは月間650万人以上を数え、5万3000人を超えるコミュニティメンバーがさまざまなかたちで開発に貢献。また.NETについては、ナレッジコミュニティであるStack Overflowにおける最も注目されるフレームワークとなっているほか、Cloud Native Computing Foundation(CNCF)においてもトップ5に入る高いベロシティのOSSプロジェクトとなっています」と井上氏は紹介する。
![日本マイクロソフト株式会社 カスタマーサクセス事業本部 App Innovation アーキテクト第一本部 本部長 井上章氏](http://cz-cdn.shoeisha.jp/static/images/article/20832/001.png)
そうした.NETの最新バージョン「.NET 9」が2024年11月に正式にリリースされた。そこでの主なアップデートとしては、監視可能な運用対応アプリケーションを構築するための強力なツール、テンプレート、パッケージのセットである.NET Aspireやクロスプラットフォームフレームワークである.NET MAUI、Webアプリケーション構築のためのツール、ライブラリを包含するASP.NET Coreがそれぞれアップデート、AI対応も拡充され、開発者の生産性向上にさらなる寄与を果たすものとなっている。
「例えば、開発生産性という観点では、.NET Aspire周りの開発者向け機能の向上がなされ、GitHub CopilotやVisual Studioとのインテグレーションも、より密接なものとなっています」と井上氏は具体例をあげて説明する。
さらにモダン&セキュアやインテリジェントの視点で、さまざまな重要なアップデートも見られ、パフォーマンスについても、.NETがアップデートされるたびに向上がなされているが、今回の.NET 9においても同様の大きな進化が見られる。例えば、.NET 9のMinimal APIのパフォーマンスについては、.NET 8に比べて稼働メモリが93%低減されているというベンチマーク結果も示されている。
特にWebアプリケーション開発を担うASP.NET Coreに着目すると、.NET 9では数多くのアップデートがなされている。それについては、こちらのドキュメントに詳しく解説されているが、例えば認証機能の拡張に加え、Blazorでは新たにHybrid Templateといったものも搭載。SignalRにかかわるアップデートなどもいくつか加えられている。
また、.NET 9における、ASP.NETに関連した大きなアップデートの一つとして特に注目すべきなのが、.NET Aspireだ。.NET Aspire自体は、回復性(Resiliency)や管理力(Manageability)、可観測性(Observability)などを有する、クラウドネイティブな分散アプリケーションを構築するための.NETをベースとしたソフトウェアスタック。
「提供される開発者向けのダッシュボード機能などを活用して、マイクロサービスをベースとした分散アプリケーションなど、多彩なインテグレーションの構築、運用、管理するための機能が用意されています」と井上氏は語る。この.NET Aspireについてはこちらのドキュメントで詳細情報が得られる。
加えて.NET 9のAI対応にかかわるアップデートも注目される。具体的には今回、Microsoft.Extensions.AIと呼ばれる、アプリケーションにおいてさまざまな生成AIの機能を使うためのライブラリがプレビューとして提供されている。その活用により、LLMの各種モデルを柔軟に切り替えて使い分けていくといったことができるよう、抽象化されたライブラリが提供されている。
「今紹介した、.NET AspireおよびAIを活用した機能を備える、ASP.NET CoreのBlazorで作られたeShopと呼ばれるサンプルアプリケーションが、GitHub上に公開されているので、ぜひ手元でお試しいただければと思います」と井上氏はいう。
一方、.NET 9におけるクライアントアプリケーション開発にかかわるアップデートはどうか。.NETを使った開発においては、Windowsネイティブ、クロスプラットフォームなネイティブアプリケーション、ハイブリッドな形式のアプリケーション、そしてブラウザをベースとしたWebアプリケーションなど、さまざまな手法を用いることができる。
「.NET 9では、WindowsネイティブについてはWinUI 3やWindows Forms、WPFなどを使ってWindows向けのデスクトップアプリケーション開発を行えるほか、加えてiOSやAndroidなどのモバイルデバイス向けネイティブアプリケーションの開発を、.NET MAUIの活用により実現できる。また、BlazorやWebViewを使ったハイブリッド形式のアプリケーション、例えばBlazorで作ったWebコンポーネントを.NET MAUIの中で使うといったことも可能です」と井上氏は説明する。
適用されるサポートポリシーを見極めて最適なテクノロジーを選択
以上、紹介してきた.NET 9は、標準期間サポート(STS)として18カ月のサポートサイクルでリリースされている。これに対し2023年11月リリースされた.NET 8は、長期サポート(LTS)により3年間のサイクルの中でリリースがされている。つまり.NETの利用にあたっては、LTSの.NET 8を使うか、STSの.NET 9を使うかどうかが1つの比較すべきポイントとなる。
これについて井上氏は「2025年11月には、.NET 10がLTSでリリースされる予定です。そのことを踏まえて、.NET 9を使い始めるのか、または安定版であるLTSの.NET 8を使っていくのかを必要に応じて判断いただければと思います」と語る。
一方、そうしたなか、.NET Frameworkのサポートポリシーはどうなるのか。周知の通り、.NET Frameworkについては4.8が最後のメジャーバージョンとなり、現時点での最新バージョンは4.8.1である。.NET Framework(4.6.2以降)に関しては、インストール先のWindows OSと同じライフサイクルポリシーが適用になる。つまりWindows OSのコンポーネントとして更新プログラムがリリースされ、サポートもOSのライフサイクルポリシーに準じて適用されるかたちとなる。
「このように、.NET Frameworkベースのアプリケーションは継続利用が可能ですが、現在、.NET Frameworkをお使いのケースでは、ぜひ最新バージョン4.8.1にアップデートいただいて、OSのライフサイクルポリシーの中でサポートを受けていただくことを推奨します」と井上氏は強調する。
なお、.NET Frameworkから.NETへのアプリケーションのアップグレードについては、.NET Upgrade Assistantというツールが提供されており、その活用によって移行の工数を大幅に削減することが可能である。
「アプリケーションの開発だけでなく、セキュリティやパフォーマンスなど運用面からも、.NETの活用がさまざまなメリットをもたらします。そうした動きは、今後.NET 10においてさらに加速していくことになります。ぜひ今後とも.NETの動向にご期待ください」と井上氏は語り、セッションを閉じた。
![NET 9におけるASP.NETに関連した大きなアップデートとしてあげられるのが、.NET Aspireだ。ダッシュボードを中心にクラウドネイティブな分散アプリケーションの構築、および一元的に管理し、運用していくための機能が満載されている。](http://cz-cdn.shoeisha.jp/static/images/article/20832/002.png)
開発における非互換性な項目をいかに自動変換するかがカギ
続く2つ目のセッションには、ソフトロードの大橋順二氏が登壇。システム更新専門会社として長年実績を積み重ねてきた、自社の移行プロジェクトで培った高度なノウハウに基づいてマイグレーションの勘所を紹介した。
ソフトロードは日本最大のシステム更新専門会社を自任する企業だ。2001年の会社設立以来、約800件以上にのぼる移行開発を手掛けてきており、現在も約50のシステムの開発に同時並行で取り組んでいる。東証上場企業トップ200のうち、60社以上に利用されてきており、優秀な研究技術者約40名を擁する研究開発部門を中心に、日夜AI技術を駆使して、移行自動化ツールの開発、カスタマイズに注力するとともにSRM(システムリフォームメソッド)という方法論を確立している。
「これらツールや方法論に精通した自社の専門技術者約510名、および約20数社に及ぶパートナー企業様合わせて総勢2000名以上という動員力をもって、個々のお客様に最適なシステムのモダナイズを支援しています」と大橋氏は紹介する。
![株式会社ソフトロード 代表取締役副社長 大橋順二氏](http://cz-cdn.shoeisha.jp/static/images/article/20832/003.png)
そうした経験のなかで、システム移行のなかでぶつかる“落とし穴”だと同社が捉えているのが、移行元のシステムとターゲット環境の間において互換性のない項目への対応だ。例えば、Visual BasicからVisual Basic .NETへの移行にあたっての各種データベース接続にかかわる対応もその1つだ。仮にVisual BasicのアプリケーションにOO4O(Oracle Objects for OLE)の仕様を実装して、Visual Basic .NETに対応したものにするには、新規のコード記述を行う必要がある。また同様のケースで、Visual Basic .NETではサポートされないVisual Basicのメソッド、例えばLenBやLeftB、MidBなどへの対応にも、人手によるコードの記述を行う必要がある。
こうした互換性のない項目についても、ソフトロードではこれまでの豊富な経験のなかでのノウハウや知見を盛り込んだツールを提供。手動によるコード記述等の対応を行うことなくツールによって自動変換できる体制を整えている。手動対応の工数を下げることで、移行にまつわるコストの低減や期間の短縮、品質の向上といったメリットがもたらされる。
「当社のツールを活用した変換率はほぼ100%。Visual BasicとVisual Basic .NET、あるいはVisual BasicとC#などの間の非互換性、.NET版サードパーティー製品との差異を弊社の移行基盤が吸収。既存業務ロジックへの影響を最小限に抑えた高品質な移行を実現しています」と大橋氏は強調する。
![Visual BasicからVisual Basic .NETへの移行にあたって互換性のない項目の一例。データベース接続において、OO4Oの仕様を実装する際には新たにコードの記述が必要となる。](http://cz-cdn.shoeisha.jp/static/images/article/20832/004.png)
最新の.NET 9にも対応する包括的なコントロールセット
この日、最後となったイベントの主催者であるメシウスのセッションには、同社の氏家晋氏が登壇。開発者が頭を悩ますシステム開発におけるテクノロジーの選定をめぐる問題について検討。あわせて、多様なプラットフォームに対応するメシウスの製品「ComponentOne」を紹介しつつ、同製品を使用した既存アプリケーションの .NET Frameworkから .NETへの移行にかかわる話題にも触れた。
まずテクノロジーの選択について、例えば.NET系のUI開発では、これまで長らく用いられてきたWindows FormsとWPFのいずれを採用するかは悩ましい選択事項だ。「これについては、開発効率やメンテナンス性、最新の利用環境への親和性という観点では、WPFに軍配があがるといえますが、仮に現状でWindows Formsを利用しているのであれば、特に急いでWPFに移行する必要はないというのが結論です。Windows Formsも.NET Frameworkと.NETのいずれでも開発が可能で、WPFと同じく.NET 7以降はMVVMにも対応しています」と氏家氏は語る。
![メシウス株式会社 Developer Solutions事業部 マーケティング部 プロダクトマーケティング 氏家晋氏](http://cz-cdn.shoeisha.jp/static/images/article/20832/005.png)
また、.NET Frameworkと.NETのどちらを使うべきかというのもよくある検討テーマだ。「これについては、既存システムの保守更新には.NET Frameworkを使い、新規開発には.NETを使うというのが、やはり最も端的かつ適切な回答といえるでしょう」と氏家氏はいう。
メシウスの提供するComponentOneは、.NETアプリケーションを開発するためのUIコンポーネントをセットにした製品だ。データセットを表示、編集、分析するためのデータグリッドやチャート、各種データ入力をはじめ、ナビゲーションやレイアウト、レポートなど、業務上の要請を満たす300種類を超えるコントロール群を包括的に提供する。
Windows FormsやWPF、WinUIのほか、ASP.NET、ASP.NET Core、Blazorにも対応しており、デスクトップやWeb、モバイルなど多様なアプリケーション開発に活用できる。2025年1月15日にリリースされたばかりの「ComponentOne 2024J v2」では、.NET MAUI対応のコントロールを新たに搭載している。
「ComponentOneでは、最新の.NET環境で利用が可能で、.NET Framework4.8、4.8.1のほか、最新バージョンの2024J v2では.NET 9にも対応。.NETで提供される新機能が利用できるほか、.NETの進化の恩恵を受けたパフォーマンス向上も期待できます」と氏家氏。
ComponentOneで開発したアプリケーションを.NET Frameworkから.NETに移行、ないしは.NETのバージョンを上げる場合には、Visual Studioの拡張機能である.NET アップグレード アシスタントを使用。NuGetのパッケージを追加または更新する。仮に.NET Frameworkから.NETへ移行するのであれば、アセンブリの直接参照からNuGetパッケージに切り替えて、ライセンスと競合のエラーを解決し、動作を確認するという流れとなる。
![アプリケーションにおける.NETの移行方法。.NET Frameworkから.NET、旧来の.NETから最新の.NETへの移行により、さまざまな新機能の活用やパフォーマンスの向上といったメリットが得られる。](http://cz-cdn.shoeisha.jp/static/images/article/20832/006.png)
氏家氏による最終セッションの終了後には、受講者からの質問に講演者が答える質疑応答の時間も設けられた。以下、そこでの主なやり取りについても簡単に触れておく。
まず、井上氏がセッションの中で、.NET 9にアップグレードしたことによりメモリ使用量が93%削減されたという例が示されているが、「それは、どのようなシーンにおける計測で達成されたのか」という質問がなされた。
これに対し井上氏は、「私が示したデータは、さまざまなフレームワークや言語のパフォーマンスを定期的に計測しているTechEmpowerと呼ばれるサイトから抽出してきたもので、.NETにおいてはMinimal APIというかたちで、シンプルにコード量を削減して記述する方法があり、それを使ってREST APIを作った上で、JSONのデータの処理を行ったときのベンチマーク結果を紹介しました。ハードウェア的には、IntelのXEONのプロセッサー、56コアを使い、Linuxベースのシステム上で計測したものです。興味があれば、データを参照いただければと思います」と回答した。
また、「.NET Aspireは小規模なサイトでの利用には少し過剰な感じもしているが、そのあたり、個人的な感覚でもいいのでどう考えているか教えてほしい」という質問も寄せられた。
井上氏は「.NET Aspireが登場した背景としては、クラウドネイティブな分散アプリケーションの開発、運用管理において、デバッグの実施など各種情報を可視化することにあります。個々のサービスのログを一元化されたダッシュボード上で参照するほか、分散トレースの仕組で呼び出しの依存関係を見て、それぞれの処理にどれくらいの時間がかかっているのかを明らかするといったことが可能。そうした意味では、小規模、モノリシックなアプリケーションではやや過剰かもしれません。ただ、例えばWebのUI層があってバックエンド層があるというサービスであれば、.NET Aspireを使っていただくことで分散トレースやログの確認などが非常に容易に行えるため、デバッグや運用に便宜が提供されると思います」と答える。
長い歴史を持ちながら常に進化を続ける .NET技術で構築されたシステムを運用する企業にとって、最新技術動向をしっかりとキャッチアップし、既存資産のメンテナンスや新規開発において適切にテクノロジーを選択していくことが肝要である。今回の「ECHO 2024」は、開発者が今後.NETの環境を活用していくうえで、指針となる情報を数多く与えてくれるものとなったはずだ。