豆知識
.NET Frameworkや.NETに関する役に立つのか立たないのか微妙な豆知識をまとめています。
.NET Frameworkの由来
「.NET Framework」という名前の由来は、Microsoftが1990年代後半に掲げた戦略「Next Generation Windows Services(NGWS)」にさかのぼります。このプロジェクトの成果として誕生したのが、2002年にリリースされた.NET Framework 1.0です。 「.NET(ドットネット)」は、インターネット(.net)とネットワークの融合を意識した名称です。当時、Microsoftは「ソフトウェア+サービス」というビジョンを掲げており、Webサービスや分散アプリケーションの基盤としての役割を強調していました。「.NET」は単なる製品名ではなく、Microsoftの次世代プラットフォーム全体を象徴するブランド名として使われていました。 「Framework(フレームワーク)」は、アプリケーション開発を支援するための共通基盤を意味します。.NET Frameworkは、共通言語ランタイム(CLR)やクラスライブラリ(BCL)を含む、アプリケーションの開発・実行に必要な機能を包括的に提供する環境です。
参考情報
.NET Coreの由来と.NETに変更された背景
「.NET Core」という名称は、Microsoftが従来の.NET Frameworkに代わる新しい開発プラットフォームとして、2016年に導入した際に付けられたものです。この「Core(コア)」という言葉には、軽量でモジュール化された中核的な機能を持つ新しい.NETの基盤という意味が込められていました。.NET Coreは、Windowsに限定されていた.NET Frameworkとは異なり、クロスプラットフォーム(Windows、macOS、Linux)対応を実現し、クラウドやコンテナ環境に最適化された設計となっていました。
しかし、.NET Coreの進化に伴い、.NET Framework、.NET Core、Xamarinなど複数に分かれていた.NET関連技術を統合し、1つの統一されたプラットフォームとして再定義する必要性が生じました。その結果、2020年にリリースされた「.NET 5」からは「Core」の名称を廃止し、最終的に「.NET」というシンプルで包括的なブランドに統一されました。
参考情報
NetFXとは?
NetFXは、Windows上で動作するアプリケーションを開発・実行するための.NET Frameworkを指す略語です。.NET Frameworkのインストーラーが作成するフォルダーやレジストリの名称など所々で使用されています。
参考情報
EXCEPTION_COMPLUSという名の.NET例外
EXCEPTION_COMPLUSはマネージド例外が発生したことを示す例外コード0xE0434352に対する識別子で、Windowsの構造化例外処理(Structure Exception Handling:SEH)で.NETの例外を表すために使用されます。最後の3バイトは"CCR"を表しており、これはCommon Language Runtimeの略とも言われています。
#define EXCEPTION_COMPLUS 0xe0434352 // 0xe0000000 | 'CCR'
.NET Frameworkは、当初COM+の後継として設計され、マネージドコードとアンマネージドコード(COM)との相互運用性を重視していました。そのため、.NETランタイム(CLR)はCOM+のインフラを活用し、例外処理やメモリ管理などの一部機能をCOM+ベースで実装していた時期があります。 このような歴史的経緯により、.NETの内部ではCOM+との互換性や連携を意識した命名が多く残っています。たとえば、ランタイムの動作に関わる環境変数の名前にもCOMPlus_というプレフィックスが使われており、これは.NET Coreや.NET 5以降でも互換のために一部が残されています(現在はDOTNET_に移行中)