.NETとは? 初心者にもわかりやすく解説
2020年12月23日

 

パソコン、あるいはネットサービスによってインターネットに少しでも触れているならば、“.NET”という単語に聞き覚えがあると思います。

しかし、大抵の人が思い浮かべるのはインターネット上のリソースを特定するための並びである“URL(Uniform Resource Locator/ユニフォーム リソース ロケータ)”の中にある“.net”であり、これ以外の役割を持つ“.NET”のことは知らないのではないでしょうか。

本記事では、このURLではないほうの“.NET”が一体どのようなもので、どういった機能やメリットを備えているのか紹介していきたいと思います。

 

.NETとは?

.NETとはMicrosoft社が2000年6月に掲げた“Microsoft .NET”という構想、転じて.NET全体の環境を指していました。

現在ではOSS版の.NET CoreやMonoを包括した技術仕様の総称か、同じくMicrosoft社が開発したアプリケーションの開発・実行環境“Microsoft .NET Framework(.NET Framework)”のことを指します。

.NET Frameworkは、Windowsアプリケーションの他、XML WEBサービスやWEBアプリケーションなども包括した環境となっています。

 

なお、WEBサイトのURLに記述されていることがある“.net”とは異なる存在です。

こちらはインターネットのDomain Name Systemで使用されるジェネリックトップレベルドメインの1つです。

インターネットサービスプロバイダやその他のネットワークインフラストラクチャ企業などのネットワークテクノロジーに関わる組織を対象としているということを示す表記として扱われます。

 

Microsoft. NETについて

Microsoft .NET”は、Microsoft社が2000年6月に掲げた構想であり、.NET Frameworkの元となっています。

パソコン、サーバー、スマートフォンといった電子機器や、デジタル情報機器をネットワークに接続させて、インターネット経由でいつでもアクセスできる状態を目指すという、IoT(Internet of Things/モノのインターネット)に通ずる部分があるものでした。

しかし、当時Microsoft社は“XML WEBサービス”という通信技術を重要視していたものの異なるスタイルに準拠した通信技術が発展していったことなど、技術発展が想定とは異なる方向へと向かったことにより、本来の意味でこの単語が使用されることはほぼなくなっています。

現在では、多くの人にとって技術仕様の総称か“Microsoft .NET Framework”の呼称の1つとして認識されています。

 

.NET Frameworkとは何なのか

前述した通り、“.NET Framework”はMicrosoft社が開発したアプリケーションの開発・実行環境です。

構成としては、共通言語ランタイム(Common Language Runtime/共通言語ランタイム)、BCL(Base Class Library/基本クラスライブラリ)、各種ライブラリ/フレームワークの3つからなっています。

 

特徴の1つは“CIL(共通中間言語/Common Intermediate Language)”という概念です。

CLIの目的は言語に依存しない開発環境および実行環境の提供で、実際にVisual Basic、C#、C++、Pythonなどのさまざまなプログラミング言語に対応しています。

これにより、プログラミング初心者でも比較的コーディングが容易となっている他、別の言語を使って設計された機器やソフトウェアとの連携もしやすくなっています。

しかし、バージョンごとに使用できる言語や搭載機能が異なる場合があり、開発環境や目的によっては新しい、もしくは古いバージョンをインストールする必要があるため、注意が必要です。

 

他のプログラミング言語や開発環境と同じく“.NET Framework”も機能や性能のアップデートが行われており、1.0(.NET Framework 1.0)、1.1(.NET Framework 1.1)、2.0(.NET Framework 2.0~3.5)、4.0(.NET Framework 4.0~4.8)のCLRバージョンが存在しています。

なお、CLRのバージョンが同じ物は1つしかインストールできない他、上位互換性が保証されているのはCLRのバージョンが同じものとなっています。

2019年4月18日に正式リリースされた“.NET Framework 4.8”をもってメジャーアップデートは終了しましたが、バグやセキュリティ修正のサポート、Windowsへの搭載は継続されます。

 

Microsoft社のアプリケーションフレームワークの最新版としては“.NET 5”が存在しており、2020年11月10日に正式版のリリースが発表されています。

.NET 5は“.NET Framework”と“.NET Core”のフレームワークを統合し、その後継となるオープンソースのフレームワークです。

 

※CIL

.NET Frameworkの基幹を構成する実行コードや実行環境などについてMicrosoft社が策定した仕様で、コンパイラさえ用意すればどのような言語でもCIL形式のプログラムを作成できる。

また、CIL形式の実行ファイルは、CLR(後述)が用意されている環境であればコンピュータやOSの種類にかかわらず同じように実行可能である。

なお、CILの語彙や構文は、特定の仕様を反映したものではないため、CPUの機械語に似ているものの、いずれの機種でも直接実行できない。

 

.NET Frameworkを構成する要素

CLR

CLRは、.NET Frameworkアプリケーションを実行するためのエンジンとして機能する仮想機械です。

.NET Frameworkのソフトウェアでは、ソースコードがCILにコンパイルされた状態で利用者のもとに配布されます。

CLRは、CIL形式のプログラムを解釈し、コンピュータが直に実行可能な機械語によるプログラムに変換して実行します。

 

※仮想機械

コンピュータの動作をエミュレートするソフトウェアやフレームワーク、エミュレートされた仮想のコンピュータそのものを指す。

仮想マシン、バーチャルマシンとも呼ばれる。

 

BCL

BCLは、すべての.NET Frameworkで利用可能なクラスライブラリであり、プログラムを記述するうえで必要なクラス群を提供してくれます。

提供されているクラス群には、ファイル入出力、グラフィックス、データベース、WEBアクセスなどがあります。

 

ADO.NET

ADO.NETは、.NET Frameworkでさまざまな形式のデータへアクセスする機能を提供するソフトウェアコンポーネントの集合であり、BCLに含まれています。

Windows上で提供されてきたADO(ActiveX Data Objects)をNET Framework環境で動作させるためのAPIであり、ADOを機能強化したものではない点に注意が必要です。

 

※ADO

データソースアクセスを目的としたCOMオブジェクトのセット。

Windows上で動作するソフトウェアから共通の方法でデータベースの操作、参照を行うためのソフトウェア部品のパッケージ。

主要なRDBMS製品が提供しているOLE DBプロバイダを利用でき、さまざまな形式のデータに同じ手順でアクセス可能。

 

WCF(Windows Communication Foundation)

NET Framework 3.0から新たに追加された通信サブシステムで、ネットワークを介して異なるコンピュータで動作するソフトウェア間の通信が可能な他、アプリケーション同士の通信も行えます。

WCFではTCP/IPを使用する“TCP”やWEBサービスに準拠した“HTTP”の他、“名前付きパイプ”、“MSMQ”、“Peer to Peer”などの通信方式を使用可能です

 

ASP.NET

ASP.NETは、Microsoft社が開発・提供するWEBアプリケーションフレームワークで、ASP(Active Server Pages)を.NET向けにしたものです。

.NET環境のWEBサーバーで、WEBページの送信時に動的にプログラムを実行します。

 

※Active Server Pages

Microsoft社が開発したWEBページを動的に作成する技術で、WEBサーバソフトウェア“Internet Information Serivices(IIS)”の拡張機能。

HTMLなどで記述したWEBページ内にスクリプトを埋め込む形で使用する。

スクリプトはユーザーがページにアクセスした際に動的に起動・実行され、処理結果がページの内容に反映される。

 

.NETを使うメリット

.NET Frameworkを使ううえでの大きなメリットは、“サポートされている任意のプログラミング言語を選択できる”という点です。

アプリ開発時には使用する言語を選択することとなりますが、Visual Basicをはじめ、C#、F#、C++、CLI、Pythonなどの多数の言語から選べます。

そのため、使いこなせるプログラミング言語が少なくても、ある程度高度なソフトウェアを開発できます。

 

C#.NETとは?

“C#.NET”は、プログラミング言語“C#”についての環境に応じて提供された機能群を指しており、転じてMicrosoft社の環境(Windows環境)における“C#”、あるいはプログラミング言語であるC#を.NET Frameworkにおいて使用する状態の名称と解釈できます。

なお、C#は基本的に.NET Frameworkにおいて使用するプログラミング言語ですので、C#とC#.NETは同義でありどちらの呼称を使っても問題ないと考えてよいでしょう。

 

まとめ

.NET Frameworkは、.NETという単語が複雑な歴史を持っていることから、初心者であるほどその成り立ちを捉えることが難しく、手を出しにくい分野であると思います。

しかし、言語に依存しない開発環境および実行環境の提供を実現していることにより、活用できるようになれば初心者ほど役立つ便利な環境となっています。

現在では後継となる“.NET 5”が発表されていますが、歴史の長さからより多くの資料を探すことができるため、一度チャレンジしてみてもよいのではないでしょうか?

< 前へ

次へ >