ここから本文です

.NET FrameworkとASP.NETの違いを教えてください。

na_********さん

2009/9/1418:03:35

.NET FrameworkとASP.NETの違いを教えてください。

.NET FrameworkはVisualStudio2005などの.netで作った物を動かすのに必要な環境で
asp.netは.NET Frameworkの一部のことと思っていました。

でも良く分かっていません。

参考になるサイトなどありますでしょうか。

宜しくお願いします。

補足abiko_tetu様
とても分かりやすいご説明に感謝致します。
一つお聞きしたいのですが、
「ASP.NETやVB.NETやC#.NETでプログラムを開発するために」とありますのは
ASP.NETという一つの言語が存在するということでしょうか?

閲覧数:
38,507
回答数:
1
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

abi********さん

編集あり2009/9/1504:44:44

[回答本編]


本質問の前提になっている、質問者さんの前質問の

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1130459271

における

>ASP.NETとはVB.NETやC#.NETの総称のように思っていたので

は、誤解です。

ASP.NETやVB.NETやC#.NETの総称は、.NETです。
そして、それらの.NETによる各種開発環境(ASP.NETやVB.NETやC#.NET)のフレームワークが、.NET Frameworkです。
よって、質問で言われている「ASP.NETは.NET Frameworkの一部」と言うよりも、

「ASP.NETやVB.NETやC#.NETでプログラムを開発するために必要なフレームワーク(クラスやライブラリ)」

となります。



[フレームワーク]


Windows上で動作するアプリケーションを作るには、WindowsAPIを利用してプログラミングをします。
WindowsAPIとは、Windows自身が、Windowsの機能を外部公開している関数群です。
しかし、WindowsAPIを直接使うのは、初、中級プログラマーには難しいです。
よって、WindowsAPIの上にラップして(かぶせて)、もっと簡単に取り扱える機能群が、各種言語用コンパイラーのほうで用意されてることが多いです。
プログラマーは、そのコンパイラーが提供してくれる機能を利用すれば、WindowsAPIを気にし無いでプログラミングが可能となります。
このようなコンパイラ提供のクラスやライブラリの集まりのことをフレームワークと呼びます。

基本的に、VB6.0や、VC++6.0といったコンパイラーの違いによって、フレームワークは別々の異なるものです。
どちらもマイクロソフトのコンパイラーなので、内部的には共通部も多いですが、結局、異なる言語ですので、別々のものになっています。

しかし、.NET仕様になってからは、フレームワークが完全に共通化されました。
すなわち、VB.NETや、VC++.NET(ただし、CLRプロジェクト)や、ASP.NETといった各種開発環境において、それらの開発環境が提供する機能群は、共通化されました。
それが.NET Frameworkです。
.NET Frameworkには、ボタンやテキストボックス、ラジオボタン、メニューなどのWindowsアプリの部品を構成させるための機能が詰まっています。
また、ファイルへの入出力、キーボードやマウスの操作、グラフィックス機能などの各種機能も詰め込まれています。



[オペレーターにとってのフレームワーク]


しかし、「そのボタン等のWindows部品や、ファイル入出力の機能等は、そもそもOS自体の機能ではないか?」と疑問になります。
それは、フレームワークとは、そのOSの各種機能を、アプリ作成者が利用するための物です。
これは、「WindowsAPI(すなわちWindows自体)をラップしたもの」という前述の説明で分かると思います。

よって、プログラマーのパソコンには、フレームワーク自体をインストールする必要がありますが、オペレーター(利用者)のパソコンには、インストールされている必要はありません。
オペレーターのパソコンには、フレームワークの機能部に該当するDLLだけをインストールするだけです。
開発環境としてのフレームワークその物は、オペレーターに必要無いです。




[オペレーターの立場から見た.NET Framework]


上記は、従来のフレームワーク全般として説明しました。
しかし、.NET Frameworkというフレームワークは、オペレーターのパソコンにインストールします。
まるで、オプションとして組み込めるOSの一部です。
それどころか、Vista以降では、標準装備ですので、OSその物です。

これは、.NETというテクノロジーを理解すれば分かります。
.NETを簡単に説明すると、「データやプログラムを、共通した標準規格に統一化してしまおう」というものです。
よって、VB.NETで作ろうが、VC♯.NETで作ろうが、コンパイル後のプログラムは、同一の規格に従ったプログラムです。

このため、コンパイラーが提供する機能自体も、各言語間で共通化することが可能となったわけです。
同一規格なのだから、VB.NETからも、VC♯.NETからも、他の言語からも利用可能なフレームワークなのです。

また、このことから、オペレーターの立場から見た.NET Frameworkとは、「.NETという仕様に従ったOS機能」となります。
すなわち、標準規格で統一したOS機能なのです。
よって、オペレーターの立場から見れば、.NET FrameworkがOSの機能の一部であっても、むしろ当然な訳です。



[背景]


質問者さんの誤解は当然で、上記までの説明では、その誤解の根源には触れないようにして来ました。
その誤解の根源を説明するには、過去にさかのぼって説明する必要があります。

まず、MS-DOS時代では、最初からインターネットがあった訳では無く、通信と言えば、一般にTCP/IPプロトコルを利用したソケットという通信技術が利用されていました。
そして、インターネットが登場して、MS-DOS時代の終わり頃では、マイクロソフトは、自社に不利益な存在として拒絶していました。



回答量上限に達したので、前質問で続きを書きます。

質問した人からのコメント

2009/9/15 09:38:28

成功 abiko_tetu様
ご丁寧にご説明いただきまして、ありがとうございます。
初めて知ることが多く、何度も読み返しています。
いろいろなことが分かってくると楽しくなりますね。
もっと勉強して習得できるように頑張ります!^^

あわせて知りたい

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる