×

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

 2020年10月09日

.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

メール: quan@hachinet.jp

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

いずれかのサービスについてアドバイスが必要な場合は、お問い合わせください。
  • オフショア開発
  • エンジニア人材派遣
  • ラボ開発
  • ソフトウェアテスト
※以下通り弊社の連絡先
電話番号: (+84)2462 900 388
メール: contact@hachinet.com
お電話でのご相談/お申し込み等、お気軽にご連絡くださいませ。
無料見積もりはこちらから

Tags

ご質問がある場合、またはハチネットに協力する場合
こちらに情報を残してください。折り返しご連絡いたします。

 Message is sending ...

関連記事

 2025年06月27日

3Dゲームの世界:技術革新とゲーム開発の未来

3Dゲームは、ゲーム開発における革新を象徴する存在であり、プレイヤーにこれまでにないリアルで没入感のある体験を提供しています。今日、3D技術はゲームのグラフィックスやインタラクションの質を飛躍的に向上させ、VRやARといった新技術とともに、ゲーム業界の未来を形作っています。本記事では、3Dゲームの開発に必要な技術や、代表的なゲームエンジンであるUnityとUnreal Engineの違いを比較し、これからのゲーム開発におけるトレンドについても探っていきます。

 2025年06月26日

3Dゲーム開発に必須!無料で使えるアセット&ツールまとめ【初心者〜上級者向け】

3D games の開発は魅力的ですが、初期費用や学習コストが高いと感じている人も多いのではないでしょうか?しかし、現在は高品質な無料アセットやツールが豊富に存在しており、誰でも気軽に開発を始めることが可能です。本記事では、3Dゲーム制作に役立つ無料のアセット&ツールを厳選して紹介します!

 2025年06月25日

3Dゲームエンジニアになるには?年収・スキル・キャリアパス完全ガイド

3Dゲームの需要が年々高まる中、「3Dゲームエンジニア」という職種が注目を集めています。ゲームエンジンを使ってキャラクターや世界を動かすこの仕事は、高度な技術と創造力の融合が求められるプロフェッショナルな分野です。本記事では、3Dゲームエンジニアに必要なスキルやツール、気になる年収、そして将来性や学び方まで、これから目指す人にも、キャリアアップを考える人にも役立つ情報を網羅的に解説していきます。

 2025年06月17日

ブロックチェーンゲームが直面する問題点とは?

ブロックチェーン技術は、近年急速に発展し、さまざまな業界で革新的な変化をもたらしています。その中でも、ゲーム業界におけるブロックチェーンの活用は特に注目を集めています。ブロックチェーンを基盤にしたゲームは、プレイヤーの所有権や取引の透明性を確保し、よりエンターテイメント性の高い体験を提供することができます。しかし、この新しい技術の導入にはいくつかの課題も存在します。本記事では、ブロックチェーンゲームが直面している主な問題点について掘り下げ、これらをどのように克服できるのかを考察していきます。

 2025年06月16日

【2025年版】Go言語とは?特徴・年収・メリットとデメリットを徹底解説!

近年、Go言語(Golang)は、シンプルで高性能なプログラミング言語として注目を集めています。Googleが開発したこの言語は、特にバックエンド開発やクラウドアプリケーション、マイクロサービスにおいてその威力を発揮しています。Go言語の特徴は、シンプルな文法、高速なコンパイル時間、そして強力な並行処理機能にあります。これにより、開発者は効率的でスケーラブルなアプリケーションを迅速に構築できるようになります。この記事では、Go言語の特徴、メリット・デメリット、さらにGo言語を活用したエンジニアの年収や求人情報について詳しく解説します。

 2025年06月12日

Go言語(Golang)とは?シンプルで強力な言語の魅力と適用シーンを徹底解説

現代のソフトウェア開発において、軽量かつ高性能で、しかも学びやすいプログラミング言語が求められています。そんなニーズに応えるのが、Googleが開発したGo言語(Golang)です。Goはシンプルな構文と強力な並行処理能力を兼ね備え、クラウドネイティブや分散システムの分野で急速に存在感を高めています。本記事では、Go言語の基本的な特徴から、どんな場面で使うべきか、逆に不向きなケースまでを分かりやすく解説していきます。Goの導入を検討している方や、興味を持ち始めたエンジニアの皆様は、ぜひ参考にしてみてください。

 2025年06月10日

文字認識の流れ|機能とメリット・デメリット解説

ビジネスの現場では、日々大量の紙書類や帳票がやり取りされ、それらの情報をデジタル化する作業に多くの時間と人手がかかっています。そこで注目されているのが、OCR(光学文字認識)です。この記事では、OCRの仕組みからメリット・デメリットまで、文字認識技術の全体像をわかりやすく解説します。