クラウドネイティブな「.NET 5」が既存の.NET Frameworkアプリにもたらすインパクト:.NET 5モダナイズ入門(1)
既存の.NET Frameworkアプリの.NET 5への移行に関する考慮事項やレガシーアプリのモダナイゼーションについて解説する連載。初回は、.NET統合の現状や.NET 5のリリースにおけるキャッチアップすべきことなどについて。
2020年11月、「.NET 5」リリース
企業向けアプリや社内システムで多く使われている「.NET Framework」。その最新版「.NET 5」が2020年11月にリリースされることをご存じでしょうか。一方、.NET Frameworkは、2019年リリースの「.NET Framework 4.8」が最終メジャーアップデートとなり、以降は新機能の追加は行われずメンテナンスのみとなることが決まっています。
しかしながら、企業向けアプリや社内システムにおいては、新規開発時に安定性が最優先されることや、関連するシステムとの統一性を考慮し、最近まで枯れたテクノロジーである.NET Frameworkが採用される事例も少なくありませんでした。また、過去のバージョンも含め、.NET Framework上で稼働している多くのアプリが、大きく手を入れられることなくいまだ稼働中であると考えられます。
2021年にリリースされる「.NET 6」がLTS(Long-Term Support、長期サポート)となるため、まだ、約1年の猶予がありますが、.NET 5のリリースが迫った今、新規アプリ開発や、「既存の.NET Framework上で稼働しているアプリを今後どう維持管理していくか」について、その方針の決定と計画を先延ばしにするのが難しい時期に来ているのです。
なお、アプリは必ずしもフルスクラッチのまま維持することにこだわる必要はありません。アプリの立ち位置や規模などに応じて、各種SaaSや「Microsoft Power Apps」といったローコード開発プラットフォームなどに移行することも効果的です。また、オンプレミスのアプリの場合、クラウドへの移行を進めるべきかオンプレミスにとどまるべきかという選択も重要です。
既存アプリに対して、上記を含めた「モダナイゼーションをどこまで実施するか」、または「投資効果を判断して、あえて実施しない」「現状のコードを破棄し新規開発を行う」といった戦略を適切に立案するためにも、既存の.NET Frameworkアプリの.NET 5への移行やクラウドへの移行に関する考慮事項について総合的に理解することが重要になってきています。
そこで本連載「.NET 5モダナイズ入門」では、「企業向けアプリの開発において、.NET 5のリリースにおけるキャッチアップすべき事項」「既存の.NET Frameworkアプリの.NET 5への移行に関する考慮事項」「レガシーアプリのモダナイゼーション」といったことを解説します。なお本連載では、他に情報が多数あることが予想されるため、「C# 9.0」の新機能については触れません。あらかじめご了承ください。
.NET統合の現状
2019年、下記の.NETチームのブログにある通り、「One .NET」という.NETの今後のビジョンが発表されました。
.NETチームは、.NET 5において.NET Framework、「.NET Core」「Mono/Xamarin」の実装を1つの基本クラスライブラリ(BCL)とツールチェーン(SDK)に統合することを計画しているのです。
なお、以下のアナウンスの通り、.NET Frameworkについては4.8が最後のメジャーバージョンになり、今後は新機能を追加しません。バグやセキュリティのアップデートについては、Windows Updateなどを通じて、アプリが稼働しているOSのサポート期限まで継続します。
このうち、.NET Frameworkと.NET Coreの統合を順調に進めており、予定通り、.NET 5のリリースをもって完了する予定です。ただし、これは「統合」というより、「.NET Frameworkが終了となり.NET Coreがその後継となる」といった方が正しいでしょう。ユーザーが可能な限りスムーズに移行できるように、.NET Frameworkで提供していた機能のほとんどを、.NET Coreでも提供するようになりました。
一方、残念ながら、.NET CoreとMono/Xamarinの統合は延期となっています。2019年8月時点では、これらの機能は2020年11月までにプレビューできるようになり、統合については、LTSリリースの.NET 6で完了する予定です。
こちらは、下記の.NETチームのブログで参照できます。
.NET 6のリリース時点で、「.NET Multi-platform App UI(.NET MAUI)」もリリースすると発表しており、これをもって、.NET CoreとMono/Xamarinの統合が完了します。そして、この時点でXamarin.Formsもメンテナンスフェーズに入り、Xamarin.Formsは.NET 6のリリースから12カ月間は従来同様メンテナンスされます。その後、Xamarin.Formsは終了となる予定です。
なお.NET 5は、2020年11月11日現在で既に正式リリースとなっており、「Visual Studio」および、「Visual Studio for Mac」で利用可能です。
.NET Frameworkから.NET 5への移行の必要性
.NET Frameworkについては、今後セキュリティアップデートが提供されますが、サポート終了となるまで利用し続けるのはお勧めできません。新機能のリリースが終了してしまった時点で将来的なリスクを抱えることに留意が必要です。
昨今、特にセキュリティについては、非常に速い速度で進歩しており、現在「問題ない」とされることが将来も問題ないとは限りません。影響範囲が狭い脆弱(ぜいじゃく)性の場合は、セキュリティアップデートによって保護される可能性が高いでしょう。しかし、アプリパターンや何らかの機能自体がセキュリティ観点から突然非推奨となった場合は、機能自体の大きな変更や別の機能での代替が必要となります。場合によってはセキュリティアップデートでは保護が難しく、.NET 5への移行なしには根本的解決が不可能な事態になる可能性があるのです。
このような事態はいつ発生するか分からず、また、事態が発生してから準備を始めても、日本のビジネス慣習上、リリースまでに時間がかかり過ぎて対応が間に合わなくなります。よって、いまだ発生していない問題に対し、リスクが存在する状況になったことを認識し、早い段階から準備することが重要です。
もちろん、いまだ発生していない事態への対処であるため、準備には限界があるでしょう。まずは、.NET Frameworkと.NET 5の違いを把握することが重要です。それによって、維持管理しているアプリ上で今後発生する可能性があるリスクについて、.NET Frameworkのまま解決できる問題(つまり比較的短期間で対処できる問題)と.NET 5への移行が必須になる問題(対処に費用と時間がかかる問題)が明確になります。
そして、それらの問題の対処方針についてもあらかじめ関係者に周知し理解を取り付けておくことで、問題発生時にスムーズな対処が可能となります。
将来のクラウドへの移行に対する考慮
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 「マイクロサービスアプリ構築を容易にする」、Microsoftが始めたOSSプロジェクト「Dapr」について、生みの親に聞いた
Microsoftは2019年10月、マイクロサービスアプリケーションの開発を容易にするオープンソースソフトウェアのプロジェクト、「Dapr(Distributed Application Runtime)」を開始した。その「生みの親」であるルーク・キム(Luke Kim)氏とヤーロン・シュナイダー(Yaron Schneider)氏に、2019年11月開催のKubeCon+CloudNativeCon North America 2019で聞いた。 - Visual Studio 2019、Git統合やAIによる入力補完、リモート開発などで多数の機能追加
Microsoftは「Visual Studio 2019 バージョン16.7」の一般提供を開始した。Git統合やIntelliSense、IntelliCode、リモート開発などにおいて、多くの機能を追加している。バージョン16.4以来の長期サービスリリースだ。 - SIも知っておくべき、ローコード開発でトラブルが起こる理由
「ローコード開発」に対する企業の関心が高まっているが、どう捉え、導入を進めればよいのか。考慮しておかなければならない点は何か。ガートナー ジャパンのアナリストに、ローコード開発の市場動向や注意点、今後の展望などを聞いた。