そのときの文脈から何を指すか判断する必要がある
「.NET」という言葉
前回Project Reunionの話をしたので(「UWPとデスクトップアプリの統合を試みる「Project Reunion」のプレビュー版が登場する」)、ここであらためて「.NET」についてまとめておきたい。
Windows関係で「.NETなんとか」という言葉を聞いたことがあるだろう。「.NET」とは、Microsoftが開発・提唱した「アプリケーションの実行環境」である。実行環境とは少し抽象的だが、API(Application Programming Interface)やライブラリなどと呼ばれたり、「開発環境」と言うこともある。
「アプリケーションの実行環境」とは、アプリケーションの実行プログラムを作る方法を提供し、作成したアプリケーションを実際に実行する仕組みのことだ。具体的には、OSが提供する機能をアプリケーションが利用できる形式にする「ライブラリ」的な機能と、アプリケーションプログラムを作るための手段、そして目的のプラットフォームで作成したアプリケーションプログラムを実行する機構をまとめたものが「実行環境」である。
この.NETには、プログラムを仮想「機械語コード」に変換して実行する仕組みと、.NET用プログラムに対して、さまざまな機能を提供する「ライブラリ」が提供される。ライブラリを「API」と表現することもある。
この.NETには、具体的なソフトウェアとして「.NET Famework」と「.NET Core」。そして、これらの互換ソフトウェア(具体的にはMONOなど)が含まれる。つまり、「.NET」とは、今日では、総称であるとされている。しかし、「.NET」という用語は、これまで“未定義”のまま使われており、最初に.NET Frameworkが導入されたときには、「.NET Framework」の略称として使われていたこともあった。
そんな経緯もあり、「.NET」という単語を含むドキュメントやインターネット上の記事に関しては、文脈や書かれた時期から、何を意味しているのかを判断する必要がある。まあ、かなりラフに考えれば、全部「.NET」なんだから、どうでもいいのかもしれないが、実際には、.NET Frameworkと.NET Core、そして過去には、Windows 8モダン環境の.NET機能などもあった。さらに最近では、「.NET Core 5」(5はバージョン番号)の名称が「.NET 5」になり、また1つ「.NET」が増えることになった。
この記事では、単なる「.NET」は、前述のように.NETの「総称」とし、「.NET Core 5」などのシステムに関しては、バージョン番号を略さずに「.NET 5」とする。つまり、後ろに番号がついたら「.NET Core」のことを意味する。なお、以下の表にこれまでの.NETのバージョン履歴を示す。
.NET Frameworkとはそもそもなんなのか?
.NET Frameworkとは、Microsoftによって最初に作られた.NETだ。増強を重ね続けて、整理がつかなくなったWin32APIを整理して仕切り直しするため、また当時問題になりはじめていた「悪意のあるプログラム」や「ウイルス」に対してセキュリティを高めるために開発された。
またAPIは、「Framework」として整理しなおし、目的別にクラス分けする構成を採用した。そしてセキュリティに関しては、プログラムを仮想「機械語コード」として、これを実行するインタープリターを開発。実行前に怪しい挙動を発見できるようにした。
この.NET Frameworkが構想されたのは1990年代の後半で、Windows 2000(1999年リリース)の頃にはプレビューが開始された。当初の予定では、この.NET FrameworkをWindowsの公式な「API」とする予定だった。実際にWindows Vistaでは、「Win32」APIに対して「WinFX」という名称を付ける予定だったが、Vistaのプロジェクトが仕切り直しになったのに合わせて、計画が後退。結局「.NET Framework 3.0」というごく普通の名称になった。以後、Windowsには、.NET Frameworkが搭載され、現在のWindows 10には、.NET Framework 4.8が搭載されている。
しかし、Microsoftの発表によれば、今後は、.NET Frameworkのメジャーアップデートはなされず、.NET Framework 4.8が最後になるという。ただし、セキュリティなどのアップデートは続けられ、当面Windowsには.NET Framework 4.8が搭載されていくという。
.NETという総称からみると「.NET Framework」とは、Windows専用の「.NET」だといえる。Windowsに付属しているため、一番利用されていて、多くのプログラムがこの.NET Frameworkで開発されている。しかしそのために、.NET Frameworkは大きな改良が困難になってきた。わずかな互換性の崩れが、多数のアプリケーションに影響を与えてしまうため、その進歩速度は低下せざるを得ない。また、どれほど便利になろうとも、どれだけ高速化されるとしても、互換性に問題が生ずるようなものは取り込むことができない。
.NET Framework 1.0のリリースは2002年1月。つまり、21世紀になった頃。それから20年。そろそろ限界というわけだ。
この連載の記事
-
第459回
PC
WSL 2.4.4ではtar形式でのディストリビューションが配布でき、企業での利用が容易になってきた -
第458回
PC
Windows上でhostsファイルを活用する -
第457回
PC
IPv6アドレスは先頭を見ればどんな種類かわかる -
第456回
PC
あらためてIPv6基本のキ -
第455回
PC
Windowsで現在どのネットワークアダプタがインターネット接続に使われているかを調べる方法 -
第454回
PC
Windows 11 24H2では「デバイスの暗号化」の条件が変わり、より多くのPCでドライブが暗号化される -
第453回
PC
Windows 11 24H2の配布開始後もすぐにはやってこない Windows UpdateとSafeguard Holds -
第452回
PC
Windows 11 Ver.24H2が登場 Copilot+ PCとそうでないPCで実質Windowsが2つに分かれる -
第451回
PC
新しいWindowsサンドボックスではコマンドラインからの制御が可能に -
第450回
PC
ユニコードで文字数を数える方法 -
第449回
PC
WSLはプレビュー版でGUIでの設定が加わった! リリース2.3.xの新機能を見る - この連載の一覧へ