「.NET Framework」から「.NET Core」への移行が進まない理由:「.NET Framework」からの脱却は実現するか【前編】
企業は長きにわたって「.NET Framework」を使い続けている。開発元のMicrosoftが.NET Frameworkの後継として「.NET Core」を公開したものの、移行はあまり進んでいない。それはなぜなのか。
Microsoftのアプリケーション開発・実行環境「.NET Framework」は、ユーザー企業を支えるために進化を続けてきた。他方で同社は、.NET Frameworkの後継であるアプリケーション開発・実行環境「.NET Core」にも、最新のニーズに合わせた機能を追加している。
NET Frameworkに定着したユーザー企業が全て.NET Coreに移行したわけではない。この状況は、「Windows」アプリケーションの開発現場において、古いNET Frameworkにこだわるユーザー企業と、新たな.NET Coreを導入したユーザー企業の間に大きなギャップを生んでいる。
2021年、Microsoftは.NET Coreの新バージョン「.NET 6」をリリースした。同社はクラウドサービス、PC、モバイルデバイス向けのアプリケーション開発機能を向上させることで、そのギャップを埋めることを期待している。
だから「.NET Core」への移行が進まない
併せて読みたいお薦め記事
レガシーシステムからの脱却
- 「COBOL」プログラムが古くなっても動き続ける“切実な理由”
- 古いハードウェアを使い続けるリスクと、それでも使い続ける際の注意点
- レガシーなはずの「メインフレーム」がいまだに使われ続ける“納得の理由”
Microsoftが.NET Frameworkの正式版を初めて公開したのは2002年だ。同社はOS「Windows NT」「Windows 2000」「Windows XP」に「マネージドコード」を導入した。マネージドコードは、.NET Frameworkで実行できるプログラムを指す。Windows用アプリケーションとWebアプリケーションの開発で利用でき、「C#」「C++」「F#」など複数のプログラミング言語で記述可能だ。
.NET Frameworkには9つのメジャーバージョンがある。メジャーバージョンアップを繰り返すたびに、.NET Frameworkの旗の下に集うプログラミング言語は増えていった。
2016年、Microsoftは.NET Frameworkの新バージョンである.NET Coreを公開した。.NET Coreは対象のOSとプログラミング言語を同社製品以外に拡大させただけでなく、クロスプラットフォーム(OS非依存)のアプリケーション開発・実行環境の実現を目的に、設計が新しくなった。同社は.NET Frameworkも引き続きサポートする一方で、.NET Coreに機能を着々と追加することで、開発者が.NET Frameworkから.NET Coreに移行するよう仕向けたいと考えていた。
それでもNET Frameworkが生き残っている理由
古い存在になったにもかかわらず、.NET Coreとの互換性が低い機能に依存するレガシーアプリケーションを管理する目的で.NET Frameworkを使い続けている開発者は少なくない。統合開発環境(IDE)「Visual Studio」、Webフォーム開発ツール「ASP.NET Web Forms」、アプリケーション実行用仮想マシン(VM)「共通言語ランタイム」(CLR)など、.NET Framework関連の古いツールに依存するレガシーアプリケーションもある。
CLRは.NET Frameworkがアプリケーションを実行する上で特に重要だ。CLRは「JIT(Just-in-Time)コンパイラ」を搭載している。JITコンパイラはアプリケーションの実行時に、プログラミング言語で記述されたソースコードを機械語に変換することで、エラーを起こさずに多様なOSでアプリケーションを実行できるようにする。.NET Coreにも独自のCLR「CoreCLR」があり、CoreCLRはJITコンパイラ「RyuJIT」を内包する。世の中には.NET FrameworkのCLRを組み込んでいるアプリケーションが幾つも存在しており、それらはレガシーアプリケーションとしての問題を抱えていることになる。
TechTarget発 先取りITトレンド
米国TechTargetの豊富な記事の中から、最新技術解説や注目分野の製品比較、海外企業のIT製品導入事例などを厳選してお届けします。
Copyright © ITmedia, Inc. All Rights Reserved.