「.NET」とは何か?基礎知識から具体的な構成まで網羅的に解説

 2020年10月09日

「.NET」とは何か?基礎知識から具体的な構成まで網羅的に解説

.NETは、一般的に.NET Frameworkと呼ばれるアプリケーションを指す言葉として使われますが、使用者によっては別の意味で使われることも少なくありません。
そんな誤解を減らすためにも、今回は.NETの歴史と具体的な特徴について説明していきます。

 

目次

①.NETとは

②.NETの歴史

③.NETの構成

④.NETのできること

⑤まとめ

 

.NETとは


Tuyển dụng việc làm .NET Developer lương cao | Recruitery

.NET(ドットネット)とは、主にMicrosoft .NET Framework(マイクロソフト ドットネット フレームワーク)というアプリケーション、または開発環境を指す単語です。WindowsのシステムやWebサービスなどの開発に利用され、Windows7以降のOSでは、デフォルトで搭載されるようになっています。エンジニアの方以外は積極的に触れることの少ないアプリケーションですが.NET Frameworkを消去(無効化)してしまうと、動作しなくなってしまうプログラムも多いため、アンインストールをしないように注意しましょう。

 

.NETの歴史


Step up your .NET business skills. | Polarising

.NET Frameworkは、2000年6月に開発元であるマイクロソフトが打ち出した「Microsoft .NET(マイクロソフト・ドットネット)」という構想が元となって作られています。このビジョンは、大規模なネットワークサービスを構築するため、腕時計やカーナビといった家電からパソコンや携帯電話に至るまで、あらゆる電子機器をインターネットに接続させるというマイクロソフトの経営戦略です。

上記の構想を実現させるため、マイクロソフトから「Visual Studio .NET」と呼ばれる開発ツールがリリースされました。現在、Windows系アプリケーションの開発環境として使われ続けている.NET Frameworkは、このVisual Studio .NETがベースとなって作られています。

しかし、マイクロソフトが発表したMicrosoft .NETは、構想の主軸となるはずだった通信仕様(XML Webサービス)が世間に普及せず、実現することはありませんでした。結果的に、開発ツールとしてリリースされたVisual Studio .NETだけが形として残り、「.NET」という言葉も.NET Frameworkを指す言葉として使われるようになったのです。

 

.NETの構成


NET Frameworkは、次の図のように、

・「共通言語ランタイム(CLR:Common Language Runtime)」と呼ばれるプログラム実行エンジン
・基本クラス・ライブラリ(BCL:Base Class Library)
・各種ライブラリ/フレームワーク

から構成される(ちなみに2012年8月時点で、.NET Frameworkの最新版はバージョン「4.5」である。これまで主に「1.0」「2.0」「3.0」「3.5」「3.5 SP1」「4」がリリースされています)。

「.NET Framework 4」の構成図
主要な機能のみで、一部は省略している。「アプリ」は「アプリケーション」の略。

 

CLR(共通言語ランタイム)

CLR(共通言語ランタイム)とは.NET Frameworkに搭載されている動作環境のことです。プログラムコードを.NET Framework上に入力すると、入力された言語がCIL(共通中間言語)と呼ばれる共通のコードに変換されます。変換されたコードはCLRで実行できるため.NET FrameworkではC#やPythonなど様々なプログラミング言語を使ってアプリケーションを作ることが可能なのです。このほかにも、CLRは.NET Frameworkでスレッド管理、例外処理、セキュリティ管理などを担っています。

コードを変換するという意味では、Java仮想マシン(JVM)の仕様にも類似していますが.NET Frameworkは様々なプログラム言語を使用できるという点に違いがあります。ただし.NET Frameworkもすべての言語に対応しているわけではなく、JavaやPHPといった人気の高いプログラミング言語は使うことができません。基本的に.NET FrameworkはWindowsのOSでしか動作せず、使用できるプログラム言語もC#やVisual Basicのように、マイクロソフト社製のものが多くなっています。

 

BCL(基本クラス・ライブラリ)

プログラムを記述するうえで必要な、基本的なクラス群を提供ます。例えば、文字列を扱うStringクラス(System名前空間)や、Webアクセスを扱うWebClientクラス(System.Net名前空間)、ファイル入出力を扱うFileクラス(System.IO名前空間)などが提供されています。

 

ADO.NETデータセット

データセットは、データベースのデータを扱える技術であります。.NETの初期から提供されているため、機能も豊富で安定しており、仕組みも優れているため、現在でも第一線で活用されています。

 

ADO.NET Entity Framework

Entity Frameworkは、.NET Framework 3.5 SP1で追加された新しいデータ・アクセス技術で、「エンティティ」を定義することによって、オブジェクト指向の考えにのっとったデータベースの取り扱いが行える技術であります。最新の.NET Framework 4で機能が豊富になってきているので、注目度が増してきています。

 

LINQ to SQL

LINQ to SQLとは、データベースへのデータのクエリが、C#やVB(Visual Basic)のソース・コードとして手軽に記述できる言語機能「LINQ(言語統合クエリ)」が活用できるデータ・アクセス技術であります。.NET Framework 3.5で追加されたので比較的新しい技術ですが、Entity Frameworkが登場し、その技術からは(LINQ to SQLとほぼ同等の機能を持つ)LINQ to Entitiesが提供されているため、比較的軽めのプログラム以外ではLINQ to SQLは使われなくなってきています。

 

WCF Data Services

WCF Data Services(初期のころは「ADO.NET Data Services」とも呼ばれていた)は、前述のEntity Frameworkなどのデータ・アクセス技術と組み合わせて、データベースへのデータ・アクセスを提供するREST API(このプロトコルは、「OData」と呼ばれる)を自動作成するための技術であります。この技術は、.NET Framework 3.5 SP1で追加されました。

 

WCF(SOAPやREST)

WCF(Windows Communication Foundation)は、.NET Framework 3.0で追加された通信技術で、SOAP形式やRESTスタイルの通信を実現できます。現時点で、XML Webサービスを作成したい場合は、この技術を利用します。

 

ASP.NET Webサービス

ASP.NET Webサービスは、.NETが誕生したときから提供されている通信技術で、SOAP形式のXML Webサービスを作成できます。「メソッドを記述する感覚で手軽にXML Webサービスを作成できる」というメリットがあります。WCFが登場してからはWCFに代替されることが増えています。

 

ASP.NET Webフォーム

ASP.NET Webフォームは、初期の.NETから提供されているWebアプリケーション構築フレームワークであります。主に従来のVB6開発者層をターゲットにしており、Windowsアプリケーションの開発に近い手法でWebアプリケーションを開発できるのが特徴です。主にイントラネット向けのWebアプリケーションでよく使われています。

 

ASP.NET MVC

ASP.NET MVCは、.NET Framework 3.5 SP1で追加された新しいWebアプリケーション構築フレームワークで、Web開発の世界では標準となっているMVC(Model-View-Controller)パターンに基づいてWebアプリケーション開発が行えるのが特徴です。HTML5などのWeb標準対応やスマートフォン向けのWebサイト作成などでも活用しやすいため、特に最近、注目度が高まってきています。

 

Windowsフォーム

Windowsフォームは、.NET Framework 1.0から提供されているWindowsアプリケーション構築用のフレームワークで、「Windowsフォーム上へのドラッグ&ドロップでコントロールを貼り付け、そのコントロールがエンド・ユーザーにより何らかの操作をされたときの処理コードを記述する」という開発スタイルが特徴であります。現状のWindowsアプリケーションに必要な機能はそろっているので、定評があり、いまも広く使用されています。

 

WPF

WPFは、.NET Framework 3.0で追加されたWindowsアプリケーション構築フレームワークで、GPUを活用した高度なレンダリングと、「XAML」(「ざむる」と読む)というXML形式のデザイン言語が特徴であります。UX(ユーザー・エクスペリエンス=エンド・ユーザーの使い勝手)の重要性が注目される中で、より高度なUI(ユーザー・インターフェイス)を構築できる技術として活用されています。

 

複数の開発言語のサポート

上の構成図には載せなかったが、.NET Frameworkの重要なポイントとして、複数言語の対応が挙げられます。具体的には、C#/VB/C++/F#などの言語が扱えます。このほかにも、Ruby言語(IronRuby)やPython言語(IronPython)など、さまざまな言語が利用できます。

 

.NETのできること


NET フレームワーク』を徹底解説!!その特徴からできることまで、分かりやすくご紹介します。 | Geekly Media

 

NET Frameworkは、Windowsとの相性の良さから、Windows系のシステム開発で用いられることが多くなっています。特に、業務の効率化や自動化をするシステム開発においては.NET Frameworkが使用されるケースも少なくありません。勤怠管理システム、在庫管理システムといった、業務の根幹を担う開発作業においては.NET Framework、または.NET Frameworkに対応した言語を扱えるエンジニアが重宝されるでしょう。また、先に挙げた通り.NET Frameworkは「複数のプログラミング言語を使える」という特徴があるため、別の言語を使って設計された機器やソフトウェアと連携しやすいというメリットがあります。

ですが.NET Frameworkはバージョンごとに使用できる言語や搭載されている機能が異なるケースも多く、開発環境によっては新しい(もしくは古い)バージョンのインストールが必要となることもしばしばです。サポートされているWindowsのバージョンや.NET Frameworkの具体的なインストール方法については、マイクロソフトのホームページ上にある「.NET Framework インストールガイド」をご覧ください。

 

まとめ


以上、「.NETとは何か?」について現時点の筆者の考えを述べ、さらに.NET Frameworkを知るための必要最小限の事項をできるだけ短くまとめてみました。

 

「.NET」を自社サービスや課題解決のソリューションとして活用したいとご検討されている方はぜひ一度ご相談ください。

※以下通り弊社の連絡先

アカウントマネージャー: クアン(日本語・英語対応可)

電話番号: (+84)977035914

メール: quannh@hachinet.com

お電話でのご相談/お申し込み等、お気軽にご連絡くださいませ。