.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の動向をしっかりとキャッチアップしていくことこそが肝要である。
顧客の帳票作成ニーズに向け考案したコスト、工数を最小化のアプローチ
続く2つ目のセッションには、シーイーシーより、サービスインテグレーション事業本部 エンタープライズサービス事業部 マイクロソフトサービス部 主任の大田憲司氏が登壇。顧客の帳票作成システムを提供する上での開発課題と、.NETを活用したシステムの実装により顧客課題を解消した事例を紹介した。
シーイーシーは、製造業のバリューチェーン全体にわたるIT活用を支援するデジタルインダストリー事業と、あらゆる業種の顧客における事業発展や業務効率化、働き方改革の推進に貢献するサービスインテグレーション事業を2本柱で展開する、1968年設立のまさに“老舗”の独立系SIerである。
同社は、CRMとERPの領域の機能をあわせもって企業の業務を全方位的にカバーするMicrosoft Dynamics 365を活用したシステム構築にも、大きな強みを持つベンダーとして知られる。「Convergent(コンバージェント)」シリーズなどでそれらにかかわる開発サービスを提供するなか、同社では顧客の帳票作成システムの開発にて、ある課題に直面していた。
「お客さまからは『現行のExcel帳票と同じものを作ってほしい』など、帳票をめぐるニーズが寄せられるわけですが、既存のものをそのまま再利用することは難しく、基本的には一から作り直しとなるため、お客さまがイメージする難易度や工数と、実際に我々が投入しなければならない人材のスキルや工数の間には、ギャップがあるという問題を抱えていました」と大田氏は語る。当然、開発コストにかかわるベンダー側と顧客の間のすり合わせも困難を伴うものとなっていた。
これに対し同社が考案したのが、Dynamics 365からAPIを介してデータを取得する仕組みと、レイアウト作成の部分を分割し、より高度なノウハウを要するレイアウトの開発に、シーイーシーの中でも高いスキルを持った開発者を専念させながら、現行のExcel帳票を最大限に活用するアプローチだった。
これに関しては、OfficeのCOMを使ってExcelファイルを作ることもできるが、そのやり方ではリソースの解放漏れのリスクがあると判断。別のアプローチを検討するなかで、すでに述べたような要件を満たせるツールとしてシーイーシーが採用したのが「DioDocs for Excel」だった。採用のポイントについて大田氏は「クラウド上でExcelファイルを作ることができ、PDFフォーマットでの帳票生成にも対応しているほか、何よりもメシウス様の手厚いサポート面にも大きな安心感がありました」と説明する。
特にDioDocs for Excelには、データソースと連結するフィールドを容易に設定するテンプレートフィールドという機能が用意されており、必要なデータを任意の場所に取り込むかたちでExcel帳票を手軽に作成していける。こうした仕組みを活用することで、顧客自身が既存のExcelシートなども活用しながら、帳票を作成することが可能となり、結果的に開発コストの大幅な削減につながった。
「このとき、Dynamics 365からプラグイン経由でDioDocs for ExcelのDLLにどうアクセスするかについては、かなり頭を悩ませましたが、結果としては、Azure Functions上にDioDocs for Excelを利用したWebサービスを構築し、Dynamics 365からの要求で作成した帳票が返される仕組みにより問題をクリアしました」と大田氏は紹介する。
リリース後には、これまで利用していたAzure Functions Ver.3と.NET Core 3.1が2022年12月にサポート切れを迎え、バージョンアップを行う必要があったが、Azure Functionsのプロジェクトファイルに記載されているバージョンを新しいものに書き換えて発行するだけという簡単な対処により、バージョンアップを完了させることができた。
NET Frameworkの機能更新終了を契機として.NET 6への移行を目指す
その後実施された3つ目のセッションでは、サンエスシステムズの奥本浩司氏が自社の提供する製品の開発における.NET環境の利用をめぐる推移を紹介した。電気電子部品などを供給する企業に向け、欧州のRoHS(RoHS2)規制やREACH規制などに準じるかたちで、製品が含有する有害化学物質を管理するためのシステム「Eco-FRAME/CMS」を提供していることで知られる。
Eco-FRAME/CMSは、2010年12月にオンプレミス版としてリリースされた当初から、一貫して.NET FrameworkをベースにWindows Formsアプリケーションとして開発されてきた。
「その間、開発言語にはVisual Basic .NETをずっと利用してきたのに対し、プラットフォームとなるWindows環境がWindows 7から8、10、11と変化するなかで、開発フレームワークについては、.NET Framework 3.5から4.5.2、そして4.8へと順次アップデートしてきました」と奥本氏は紹介する。
また使用データベースについても、当初はOracle Databaseのみの対応だったが、その後SQL Serverに対応、さらに2018年にEco-FRAME/CMSのクラウド版をリリースしたタイミングでAzure SQL Serverにも対応してきた。さらにシステムアーキテクチャの面でも、当初のクライアントサーバー型から、2014年頃にはWCF(Windows Communication Foundation)を使用して、データベースアクセス処理をサーバー側に集約するスマートクライアント型へと進化させた。
このようなかたちで十余年にわたって随時拡充が進められてきたEco-FRAME/CMSの開発・運用プラットフォームだが、いままさに大きな転換点を迎えている。「契機としては、NET Frameworkの機能面での更新が今後行われない旨がマイクロソフトからアナウンスされたことで、.NETシリーズへのバージョンアップを念頭に現行システムの全面的な見直しに着手しました」と奥本氏は振り返る。
これに臨んで、.NET環境でも引き続きサポートされるWindows Formsの利用は据え置きとする一方、開発言語については今後改版が途絶えるVisual Basic .NETからC#へと移行。あわせて、クライアント、サーバー間の通信にはWCFに代えてgRPCを採用することを決定。現在、.NET 6のプラットフォームへの移行が進められている。
「それら決定に応じた、一連の開発を進める一方で、アプリケーションのUIのブラッシュアップにも着手し、メシウスの提供する『ComponentOne』を採用してより高機能な画面を目指した取り組みも進めています」と奥本氏は言う。
例えば、ExcelライクなUIを実現するC1FlexGridのフィルタリング機能や行/列ヘッダ固定機能、セル結合機能、あるいはC1InputPanelによって可能となる入力属性の拡張性、柔軟性の向上などは、顧客の細かなニーズに応えるうえでとりわけ有効な手段となっている。
「さらに将来に向けては、.NETによって拓かれるマルチプラットフォーム対応という方向性にもぜひチャレンジしていきたいと考えています」と奥本氏は語る。
メシウス製品の.NET 8対応版は3つのステップで順次リリース
この日、最後となった主催者であるメシウスのセッションには、同社の氏家晋氏が登壇。メシウスが提供する.NET用開発製品の.NET 8への対応に関するロードマップが紹介された。これについて氏家氏は「2024年初頭から、第一弾、第二弾、第三弾という3つのステップで、.NET 8に対応した製品のリリースを進めて行く予定です」と紹介する。
まず第一弾となる2024年1月には、入力支援コントロールセット「InputMan for Windows Forms」および多段明細データグリッド「MultiRow for Windows Forms」、そして.NET開発コンポーネントセットであるComponentOneの.NET 8対応版をリリースする予定だ。
また2024年2月には第二弾として、Excel/PDFファイルを作成・操作するためのAPIライブラリである「DioDocs for Excel/PDF」、表計算データグリッドコンポーネント「SPREAD for Windows Forms」、そして帳票開発コンポーネントである「ActiveReports for .NET」の新版のリリースがそれぞれ予定されている。
さらに第三弾としては、現段階では詳細なスケジュールは未定であるものの、2024年4月以降に、「SPREAD for WPF」「InputMan for WPF」の.NET 8対応版を順次提供していきたいとしている。
「現在、.NET Frameworkや.NET 6/7で開発運用しているアプリケーションの.NET 8への移行については、Visual Studioの拡張機能である『.NET Upgrade Assistant』が非常に役立ちますが、メシウスでもそうしたツールの活用も含めた移行方法について、製品のヘルプや当社Webサイト上の製品情報ページ、ブログ記事などでも随時紹介していきます。ぜひご覧いただければと思います」と最後に氏家氏は語る。
以上、「ECHO 2023」で実施された4つの講演の模様をレポートしてきたが、最終セッション終了後には、受講者からの質問に講演者が答える質疑応答の時間も設けられた。そこでの主なやり取りについても簡単に触れておこう。
まず、大田氏がセッションの中で、DioDocs for Excelの採用に舵を切った前提部分で述べた、COMオブジェクトの解放をめぐるリスクをについて質問が寄せられた。「解放に難があるのは分かるが、できないわけではない。COMオブジェクトの操作を避ける具体的な理由を教えてほしい」というものである。
これに対し大田氏は、「実際にCOMの解放がたいへん難しいことは前提として、そもそもExcelのCOMを操作するのは、Excelをプログラム的に動かすことであり、本来、人が動かすExcelをサーバーサイドなど人が関与しないところで動作させることには懸念があるというのが私の考えです」と応じた。こちらについては井上氏も昨年の「ECHO 2022」でも言及していたように「サポート外であり、推奨できない」という立場を重ねて明らかにした。
また、井上氏への質問として、.NET6から.NET8への移行を検討している参加者から寄せられたのが、「早めに移行したいとは思っているが、やはりリリース直後はバグなどが含まれていることも考えられる。安定するまでにはどれくらいの期間が必要か」というものだ。
井上氏は「今回の.NET 8はLTSによる提供で、3年間の長いサポート期間を設けているわけです。これは、STSによるリリースに比べて、より安定的な作り込みがなされていることにほかなりません。事実、プレビュー版にしても1~7まで提供されてきましたし、その後正式リリース直前のRC版としても2つのバージョンがリリースされてきています。すでにお客さまも含めた十分検証がなされており、そうした観点から、安定性が担保されていると考えていただいてよいかと思います」と答えた。
クロスプラットフォーム対応やモバイルアプリ対応を含め、常に変化を遂げるアプリケーション開発をめぐるニーズに応えるかたちで、弛みなく進化を続ける.NET。今回の「ECHO 2023」は、今後の.NET開発が目指す世界の全体的なイメージを捉えるうえで有意義な情報を与えてくれるものとなったはずだ。