.NET Framework / .NET Standard / .NET Core とは何か?

はじめに

米 Microsoft は、9月23日(現地日時)に、開発者向けオンラインコンファレンスにて「.NET Core 3.0」の正式リリースを発表しました。

Microsoft が提供する「.NET」という言葉がつくものには、「.NET Core」以外に、「.NET Framework」「.NET Core」などがあります。

開発現場において「Windows Forms アプリケーション」や「WPF アプリケーション」といった Windows向けアプリケーションお開発を行なっている場合は、「.NET Core」や「.NET Standard」は馴染みが薄く、違いについて混乱があるように思えます(筆者がその一人です)。

そこで、今回は、「.NET Framework」「.NET Core」「.NET Standard」について焦点を当てて理解を深めていきます。

.NET Framework とは何か?

.NET Framework はVisual Studio で開発した Windows 向けのアプリケーションを動作させるためのランタイム実行環境です。また、.NET Framework はアプリケーションフレームワークでもあります。様々な機能をライブラリとして提供しており、このライブラリを使用して Windows の機能を簡単に実装することを可能にします。

.NET Framework を使用すると、Windows Forms アプリケーション、WPF アプリケーション、ASP.NET アプリケーションなどを作成することができます。

.NET Core とはなにか?

冒頭でも紹介した .NET Core ですが、こちらはオープンソースのソフトウェアフレームワークです。.NET Framework とは異なり、Linux系 OS(Debian, Fedora, Ubuntu, etc)や macOS, Windows などクロスプラットフォームを対象としています。

これまでの .NET Core は、コンソールアプリ や Web、 モバイルを開発対象としていましたが、今回発表された .NET Core 3.0 では、Windows Forms や WPF アプリケーションがサポートされました。

ちなみに、11月に「.NET Core 3.1」がリリースされる予定で、LTS(Long Term Support)となっています。1つ前のバージョン .NET Core 2.2 については 12月23日にサポートが切れる予定です。

Xamarin とは?

Xamarin は「.NET」という言葉は付きませんが、.NETファミリーの一員です。

Xamarin を使用すると macOS アプリ、UWP アプリ、iOS アプリ、Android アプリなど、クロスプラットフォームを対象としたアプリケーションを作成することができます。Xamarin を使用すると 共通のコードで iOS、Android、UWP アプリを一度に作ることが可能です。

Xamarin は、テクノロジー自体は、.NET Framework と C# を基盤としていますが、Mono というライブラリを使用します。

.NET Standard とは何か?

.NET Standard は Microsoft の説明(https://docs.microsoft.com/ja-jp/dotnet/standard/net-standard)によると、.NET API の「正式な仕様です」とあります。

.NET Standard に従って作成された API は、.NET Framework、.NET Core、Xamarin といった 全ての.NET 実装において、共通となるクラスライブラリを提供することを可能にします。

それぞれの関係性について

.NET Framework、.NET Core、Xamarin、.NET Standard のそれぞれについて説明をしましたが、言葉だけではわかりにくいので関係性を図で示します。

もっともベースとなる部分に .NET Standard があることがわかります。すでに説明した通り、.NET Standard は仕様であり、.NET Framework、.NET Core、Xamarin それぞれのベースとなるクラスを定義します。よって .NET Standard に準拠した自作のライブラリであれば、コードを改修する必要なく、.NET Framework、.NET Core、Xamarin で共通して使用することができます。

ちなみに図中の .NET Standard の部分は、Base Class Library と呼ばれ、略して BCL と呼ばれることもあります。

.NET ファミリーの関係性
.NET ファミリーの関係性

.NET 5 について

.NET Core 3.0 が発表されたばかりで、なおかつ11月に .NET Core 3.1 がリリースされるわけですが、Microsoft はすでに次のバージョンに関するロードマップを発表しています。詳しくは Introducing .NET 5 を参照していただきたいのですが、要約すると、2020年11月に .NET 5 がリリースされる予定とのことです。これにより、今後は .NET が1つだけになり、 Windows、Linux、macOS、iOS、Android、tvOS、watchOS、WebAssembly などをターゲットにできるようになるとのことです。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください