.NET Frameworkについて最低限知っておくべきこと

 .NET Frameworkは、Microsoft Visual Studioを用いて開発したプログラムのランタイム実行環境です。
 メモリ管理、OSやハードの制御を行ってくれます。
 .NET Frameworkを利用することで、Microsoft Visual Studioを利用するプログラマーは、メモリ管理等を意識することなく、業務プログラムのコーディングに集中することが出来ます。
 又、.NET Frameworkは、フレームワークとしてMicrosoft Visual Studioを介したプログラム開発に様々な機能を提供します。準備されるライブラリを利用することで、開発の負担を軽減することができます。
 このように.NET FrameworkはMicrosoftのアプリケーションの中核として開発、実行に欠かせない存在ですが、.NET Frameworkのバージョンについては注意が必要です。作成したアプリケーションに対応する.NET Frameworkのバージョンが存在しないと正常に動作しないのです。
 ここでは、.NET Frameworkのバージョンについて「.NET Frameworkを使用するにあたり、最低限知っておくべきこと」としてまとめていきます。

1..NET Frameworkのバージョン

.NET Frameworkのバージョン系統

 上図のように、2系統存在します。この点、注意しなければなりません。
 .NET Framework2.0/3.0/3.5系と.NET Framework4系は完全に独立しており、同一のパソコンに対して各々インストールすることが可能で、共存できます。
 さらに、各々の系統はインストール方法に差があります。

.NET Framework2.0/3.0/3.5系

 2.0に対し3.0で機能追加され、さらに3.5で機能追加がなされました。例えば3.5をインストールすると、2.0と3.0も同時にインストールされる包括インストールです。
 言い換えると、3.5だけをインストールすることはできません。

.NET Framework4系
 共存できない、置換えインストールです。例えば、4.5から4.6にアップデートする場合、インストーラーは4.5をアンインストールしてから4.6をインストールします。
 

.NET FrameworkのバージョンとプレインストールOS、Microsoft Visual Studioの対応表

.NET Frameworkバージョン プレインストールOS Microsoft Visual Studio
3.5 Windows7 Visual Studio 2008
4 - Visual Studio 2010
4.5 Windows8/8.1/Server2012 R2 Visual Studio 2012/2013
4.6 Windows10 Visual Studio 2015
4.7 Windows10(Creators Update) Visual Studio 2017

 例えば、Visual Studio 2008の場合、3.5しか選択できませんが、Visual Studio 2017の場合、3.5、4、4.5、4.6、4.7のどれを使うか選択できますので、実際にプログラムを使用するOSによって、.NET Frameworkバージョンを使い分けます。


 尚、端末に.どのNET Frameworkのバージョンがインストールされているか、確認する方法は、Microsoftのサイト(https://msdn.microsoft.com/ja-jp/library/hh925568(v=vs.110).aspx)にて詳しく説明されています。


Microsoft Visual Studioでの.NET Frameworkバージョン設定方法

 Microsoft Visual Studioでは、アプリケーションをどの.NET Frameworkのバージョンで使用するか、下図の詳細設定画面で指定するだけです。

 Microsoft Visual Studioのバージョンによって指定できる.NET Frameworkのバージョンが制限されます。(上図参照)

2..NET Frameworkとプログラム言語

 .NET Frameworkの話というより、Microsoft Visual Studioの話ともいえるのですが、使用できるプログラミング言語は主にC#、VBです。
 つまり、C#ないしはVBを使えないと、.NET Frameworkを利用したアプリケーションの開発はできません。
 以前、J#(JavaのMicrosoft Visual Studio対応版言語)が利用できましたが、Microsoft Visual Studio 2005で廃止になりました。
 又、Microsoft Visual StudioではC++を利用できますが、.NET Frameworkを利用したプログラムはC#でなければ作成できませんので注意が必要です。

3.マルチプラットフォームのための.NET Coreとは

 良く聞くキャッチフレーズ「Write Once Run Anywhere.」
 一度プログラミングすれば、そのプログラムはWindowsであれmacOSであれLinuxであれ、どのプラットフォームでも動くという理想論です。
 これを実現するため、Microsoftは、.NET Coreという、.NET Frameworkの機能限定版ランタイムをmacOSやLinuxにインストールすることで、 Microsoft Visual Studioで開発したアプリケーションをそれらのOSで使用できるようにしました。
 ただし、仕方のないことだとは思いますが、他プラットフォームでの動作が保証されている訳ではなく、道半ばです。
 また、Android、iOS上でも動けば素晴らしいことなのですが、対応していません。


 理想論として、実現すれば素晴らしいことですが、各メーカが日々OSを進化させる中、中間コンパイラとして対応し続けるのは至難の業だと思います。現に.NET CoreはOSSとすることで、Microsoftですら自社のみでの対応をあきらめています。
 もし.NET Coreを用いたアプリケーションのトラブルを探るような状態になってしまったら、素直にJavaやswift等各OSのネイティブ言語で一からコーディングした方が速いのではないかと思います。


 例えば、昔Adobeも「AIR」というマルチプラットフォームのランタイム環境を提供していましたが、現在Linux版サポート終了など、当初の目標は破たんしています。
 Android、iOS両方で動くアプリをハイブリット開発できるプラットフォームであるApache Cordovaも、ネイティブ言語であるJavaやswiftでできる全てを網羅できるわけではありません。
 継続的にマルチプラットフォーム環境を提供するのは、非常に難しいのだと思います。

 文章が長くなってしまったのですが、結局何が言いたいかというと、.NET Coreを.NET Frameworkと同レベルで信頼するべきではないということです。



おすすめの関連記事

各種プログラム言語と開発環境まとめ(VB、VBA)
VB、VBAのIDE開発環境についてまとめました。