Hachinet Logo
×

「.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

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

If you need advice regarding any of our services, please feel free to contact us.
  • Offshore Development
  • Engineer Staffing
  • Lab Development
  • Software Testing
*Our contact information is as follows:
Phone: (+84) 2462 900 388
Email: contact@hachinet.com
Please feel free to contact us for consultations or applications via phone.
Click here for a free quote.

Tags

If you have any questions or would like to collaborate with Hachinet, please leave your information here. We will get back to you shortly.

 Message is sending ...

Related Articles

 2026年05月13日

テスト戦略:品質を保証する仕組みを実務視点で徹底解説

Webアプリ開発において、品質は「最後にテストして確認するもの」ではありません。実際の現場では、設計・実装・レビュー・CI/CD・監視までを含めて、継続的に品質を維持する仕組みを作ることが重要になります。特に現代の開発では、リリース速度を落とさずに安全性を保つ必要があるため、単なるバグ検出ではなく、「変更に強いシステム」を作るためのテスト戦略が求められています。本記事では、単体テスト・E2E・CI/CD・契約テスト・非機能テストまで含めて、実務で使われる品質保証の考え方を体系的に整理します。

 2026年05月08日

バックエンド開発とは?堅牢なシステムを作るための設計・実装・運用を徹底解説

バックエンド開発は、ユーザーからは見えない部分を担当する領域ですが、実際にはシステム全体の安定性・性能・安全性を支える中核です。特にWebアプリやSaaSでは、API、データベース、認証、非同期処理、監視など、多くの要素が連携して動作しています。本記事では、堅牢なバックエンドを実現するために必要な設計思想、実装パターン、運用戦略を、実務視点で体系的に整理します。

 2026年05月06日

技術選定で失敗しないために:最適なアーキテクチャの選び方を実務視点で解説

技術選定は単なるツール選びではありません。それは「将来の開発速度」「運用コスト」「組織の生産性」を決定する経営判断です。特にWebアプリ開発では、一度選んだアーキテクチャが数年単位で影響を及ぼすため、初期判断の質がプロジェクトの成否を大きく左右します。本記事では、既存の判断軸をベースにしつつ、より実務に踏み込んだ評価方法と具体的な意思決定プロセスを解説します。

 2026年05月05日

最短でリリースするためのMVP開発戦略|Webアプリを高速で市場投入する実践ガイド

Webアプリ開発において最も重要なのは「完璧なプロダクト」ではなく、「最速で検証できるプロダクト」を作ることです。市場ニーズが不確実な状態で機能を作り込みすぎると、開発コストだけが膨らみ失敗するリスクが高まります。そこで重要になるのがMVP(Minimum Viable Product)という考え方です。本記事では、MVPの基本から具体的な開発手順、技術選定、失敗しやすいポイントまでを、実務視点で体系的に解説します。

 2026年04月29日

Web開発に必要な技術スタック完全マップ【2026年版・初心者から実務まで】

Web開発の学習でつまずく最大の理由は、「技術が多すぎて全体像が見えない」ことにあります。実際の現場では、フロントエンド・バックエンド・データベース・インフラが連携して1つのプロダクトを構成しており、個別に学ぶだけでは実装に結びつきません。本記事では、2026年時点の標準スタックをベースに、「なぜその技術が使われるのか」「どうつながるのか」まで踏み込んで整理します。

 2026年04月23日

Androidゲーマー向けパフォーマンス最適化ガイド|安定動作とFPS向上の実践方法

Androidにおけるゲームパフォーマンスは、単純なスペック比較では評価できません。実際の体験は、CPU・GPU・メモリ・サーマル制御・ネットワークといった複数の要素が相互に影響することで決まります。特に近年のモバイルゲームは描画負荷と通信負荷の両方が高く、適切な最適化を行わない場合、本来の性能を維持できません。本記事では、Androidのゲームパフォーマンスを改善するための具体的な手法を、「測定」「設定」「運用」の観点から体系的に整理し、実践可能な形で解説します。

 2026年04月20日

海外旅行でも迷わない!Androidで旅をもっと快適&安心にする必携ツール

海外旅行は、新しい文化や景色に出会える一方で、言語や通信、移動手段など、日常とは異なる環境に直面します。そんなとき、Androidスマートフォンは単なるデバイスではなく、「旅を支えるインフラ」として機能します。本記事では、海外でも安心して行動するために役立つAndroidツールを、実際の利用シーンに沿って紹介します。事前準備から現地での活用まで、一連の流れをイメージしながら読み進めてください。

 2026年04月17日

MiXplorer活用術 ― 「ファイル管理めんどくさい」を一気に解決する最強ツール

スマートフォンを使い続けていると、写真や動画、ダウンロードファイルが知らないうちに増え続け、「どこに何があるのか分からない」という状態になりがちです。整理しようと思っても後回しになり、いざ必要なときに見つからず、無駄な時間とストレスが積み重なっていきます。こうした“地味だけど確実に効いてくる不便さ”を解消してくれるのがMiXplorerです。単なるファイル管理アプリではなく、探す・整える・操作するという一連の流れをスムーズにし、スマートフォンの使い勝手そのものを底上げしてくれる存在です。

 2026年04月15日

音量・ロックのクイックメニューカスタム ― 毎日の操作を1秒短縮する最強時短テクニック

スマートフォンを使っていると、「音量を変える」「画面をロックする」といった操作を1日に何度も繰り返していませんか。これらは一つひとつは小さな操作ですが、回数が増えるほど無駄な時間として積み重なっていきます。設定画面を開いて操作する、ボタンを何度も押す――こうした“当たり前の手間”を減らすだけで、スマホの使いやすさは大きく変わります。本記事では、Android のクイックメニューをカスタマイズし、日常操作を最小限にする方法を実践的に解説します。