Microsoft .NET
概要
Microsoft .NETとは、米マイクロソフト(Microsoft)社が推進している、機種やOSによらず同じプログラムを動作させられるソフトウェア実行環境を中心とするシステム基盤。現在はほぼ同社の.NET Frameworkとその互換環境のみを指す。特定のマイクロプロセッサ(CPU/MPU)やコンピュータの設計、オペレーティングシステム(OS)、プログラミング言語などから独立した仮想的な機械語の体系(CIL:Common Intermediate Language/共通中間言語)を策定し、プログラミング言語で記述されたソースコードをこの形式の実行プログラムに変換する。
実際にコンピュータ上で動作させるには、.NET Frameworkのような実行環境に実装された、CILを解釈・実行できる仮想的なコンピュータである仮想マシン(VM:Virtual Machine)が機種固有の実行形式プログラム(ネイティブコード)に自動変換して実行する。
.NET実行環境はCLR(Common Language Runtime)と呼ばれ、Windows向けの.NET Frameworkのほか、LinuxやmacOSなど他環境でも動作するオープンソースの.NET Core、iOSやAndroidなどスマートフォン/タブレット端末で動作するMono/Xamarinなどが存在し、Windows以外にも多様な環境でソフトウェアを実行することができる。
CLR上ではWindows FormsやWindows Presentation FoundationなどのGUI環境を用いて一般的なデスクトップアプリケーションを実行できるほか、ASP.NETなどを用いてWebアプリケーションを構築したり、Xamarinを用いてスマートフォン上でアプリを実行させることもできる。
同社では.NET標準の開発環境として統合開発環境(IDE)のVisual Studioおよび各種の対応プログラミング言語を用意しており、C#、Visual Basic、F#、TypeScript、C++、Pythonなどの言語を用いて開発することができる。
CILやCLR、CTS(Common Type System/共通型システム)などを含む.NET全体の仕様CLI(Common Language Infrastructure/共通言語基盤)と呼ばれ、同社の提出した仕様が標準化団体によって規格化された。Ecma InternationalではCLI標準をECMA-335として、ISOではISO/IEC 23271として公開している。日本でも同様のものがJIS X 3016としてJIS規格化されている。
CIL (Common Intermediate Language:共通中間言語/MSIL)
.NET環境で用いられる、実行可能コードを記述するための中間言語をCIL(Common Intermediate Language:共通中間言語)という。当初はMSIL(Microsoft Intermediate Language)と呼ばれていた。
CILの語彙や構文はCPU(マイクロプロセッサ)の機械語(マシン語)に似ているが、特定のプロセッサ製品の仕様を反映したものではなく、どの機種でも直接実行することはできない。
.NET向けプログラミング言語で記述されたコンピュータプログラムのソースコードは、一旦CILによる実行形式に変換されて配布される。利用者が実行する段階で、.NET FrameworkなどのCLR(Common Language Runtime:共通動作環境)がそのコンピュータのネイティブコードに変換して実行する。
CILは開発言語に依存せず、開発言語からCILへのコンパイラさえ用意すれば、どのような言語でもCIL形式のプログラムを作成できる。CIL形式の実行ファイルは、CLRが用意されている環境であればコンピュータの機種やOSの種類に依らず同じように実行できる。
CTS (Common Type System:共通型システム)
.NET環境で利用されるデータ型の標準仕様をCTS(Common Type System:共通型システム)という。.NET向けプログラムの開発に対応した様々なプログラミング言語で共通して用いられるデータ型の仕様を定義している。
言語によって型の種類や仕様が異なるとプログラム間のデータの受け渡しなどが困難になったり不具合の原因となるため、基本的なデータ型について統一された仕様やそれを扱うための各言語の組み込みデータ型、クラスなどが定められている。
同じ型でも型名は言語ごとに異なっており、例えばCTSで32ビット整数を表すSystem.Int32はVisual BasicではInteger型、C#ではint型となっている。
歴史
.NET構想は2000年に提唱され、当初は.NET Framework上で動作するアプリケーションと、同社や他社がインターネットを通じて提供するWebサービス群を共通仕様に基づき連携させてシステムを構築する構想だった。
2000年代前半には.NET Passportや.NET Alerts、.NET My Servicesなど.NETブランドのWebサービスを提供していたが、オンラインサービスと連携させる構想は次第に後退していき、2000年代後半にはほぼ.NET Framework(および互換CLR)のみを指すようになった。2010年頃からは「Microsoft .NET」と社名を関する表記も使われなくなり、単に「.NET」とだけ呼ばれるようになった。