web-dev-qa-db-ja.com

C#、. NET、ASP、ASP.NETなどの関係

ASPと他の '.NET'言語については、C#、C#.NET、および同じものの違いが本当にわかりません。

私の理解から、.NETは...のライブラリ/フレームワークです。基本的にはフォーム要素などのWindowsデータへのアクセスだと思いますが、それはASP.NETには当てはまらないようです。

さらに、自分自身を「.NET」開発者と呼ぶ人々もいます。これは、C#、ASP、およびその他の言語に堪能であることを意味しますか?

最後に、.NETがアタッチされていないC#は表示されません。 C#は.NETと密接に結びついており、それがないと使用できません。

要約すると、.NETは正確に何を提供しますか? C#やASPなど)とどのように関連していますか?「.NET開発者」とはどういう意味ですか?最後に、.NETがないとC#が表示されないのはなぜですか?

[余談ですが、私はこれらが複数の質問であることを理解していますが、それらは相互に関連していると思います(または少なくとも、それはプログラマーの閲覧/ SOなどが私に与えた印象です)]。

146
Megan Walker

私はあなたの混乱を理解し、Javaの世界に関しても同じ視点を持っていると信じています。とにかく、私はあなたの質問を一つずつ解いて、一つずつ取り組むようにします...同様に...その中に他のいくつかのポイントを追加すると、何が起こっているのかを明確にするのに役立つでしょう:

  1. C#とC#.NETは同じものです... C#
  2. .NETは、あなたが言うように、.NET言語が通信できるコードのライブラリです。
  3. .NET言語には、C#.NET、VB.NET、マネージC++、F#などのさまざまな種類があります。
  4. .NET言語はCIL( Common Intermediate Language )にコンパイルされます。これは、すべてが同じ言語を「話し」始め、相互運用できることを意味します。
  5. ASP.NETは、Webサイトの作成に使用される.NETライブラリの一部です。 ASP.NETには、WebForms(Webページを作成する古い方法)や急速に成熟するMVCライブラリなど、注目に値する他のサブセクションもあります。
  6. フォーム(古い技術)または新しいWPF(Windows Presentation Foundation)は、従来のデスクトップアプリケーションとして知られているものを作成するために.NETで通常使用する技術です。

最後に終わらせたいのは、ライブラリとフレームワークの違いです。近年、これら2つの用語は同義語として使用されていますが、そうではありません。 2つを区別するために考えられる最も簡単な方法は次のとおりです。

  • ライブラリには多数の機能が含まれているため、選択して選択することができます。つまり、1つのテクノロジーを使用しても、他のテクノロジーに縛られているわけではありません。これは自由を意味しますが、より多くの仕事があなたのために切り取られます。
  • ただし、フレームワークは、作業方法を非常に明確に示しています。それは、良くも悪くも変更するのが難しいワークフローを提供します。これは迅速な開発/プロトタイピングを意味しますが、将来大きな変更が加えられた場合、それらを実装することが不可能(または非常に時間がかかる)になる可能性があります。

作業しているプロジェクトは、どの選択をするかによって異なります。

172
PaulCarroll

.NETは、アプリケーション開発フレームワークです。さまざまな機能を含む多数のライブラリが含まれています。

C#は、.NETで使用するために作成された言語です。 .NET互換の言語はこれだけではありません。他のオプションには、VB.NET、F#、Managed C++、IronRuby、IronPythonなどがあります。 .NETフレームワークの機能を使用するには、選択した言語でコードを記述します。

ASP.NETは、WebベースのアプリケーションとWebサイトの作成を支援する.NETの拡張機能です。全体的なフレームワークの多くは、このコンテキストで利用できます(または、WinFormsの場合は便利です)。

[Classic] ASPもMicrosoftの古いWebフレームワークです。似たような名前にもかかわらず、ASPとASP.NETは内部ではかなり異なります。1つ顕著な違いは、ASPの唯一の言語オプションはVBScriptとJScriptです。ASPは古くて時代遅れのテクノロジーなので、自分で問題を解決しないでください。

23
Grant Palin

まず、.Netは、Javaバイトコードと同様のバイトコードフレームワークです。ただし、.NetはBYTECODEのみです。「。Net」公式言語はありません。Netをターゲットとする2つの主要言語ASP.Netは、C#またはVB.Net(または他の.Netターゲット言語)で記述されたアプリケーションをWebサイトとして機能させるための、提供されている.Netライブラリの拡張機能です。

.Netを知っていると言う開発者は、通常、C#またはVB.Net、あるいはその両方を知っていることを意味し、知らない方でも簡単に学ぶことができます(C#とVB.Netは、一般的な構文を除いて、非常によく似た言語です)

最後に、ASP IS ASP.Netとは異なります。大きな違いがあります。

14
Earlz

詳細については触れずに、Monoについて言及している回答は1つだけなので、

言語としてのC#は、もともとMicrosoftで.NET Frameworkの一部として開発されましたが、後で [〜#〜] ecma [〜#〜] によって標準化されました。これは、言語を開発することができ、実際に開発されました。それらの中で最も目立つのは Mono です。

Monoは、C#コンパイラやCLI実装(Mono Runtime、MicrosoftのCLRに相当する.NET Frameworkの仮想マシン)を含む、.NET Frameworkと互換性のあるECMA標準準拠のツールセットのオープンソース実装です。 .NETアプリケーションをクロスプラットフォームで実行することを目的としています。現在、C#4.0と 。NET Framework機能の実質的な部分 をサポートしています。マイクロソフトの実装のミラーリングに加えて、Monoチームは独自の革新も行っています。

したがって、はい、.NETなしでC#で作業することは可能であり、実現可能です。ただし、Monoが現在ではなく、近い将来、Microsoftの市場シェアと.NET Frameworkの地位に匹敵する可能性は低いです。

8
scrwtp

ジョン・スキートの本、C#In Depthは.NETをかなり簡潔に破壊します。それはしばしば関連して使用されます

  1. プログラミング言語(C#、VB)
  2. これらの言語がコンパイルされるバイトコードを実行するランタイム(CLR)。
  3. フレームワークライブラリ(Windowsフォーム/ASP.NET)
7
mootinator

他の答えはそれぞれのテクノロジーの説明に適していますが、混乱の主な理由の1つを見逃していると思います。 C#とC#.NETは本質的に同義ですが、VB.NETとVBは異なり、ASPとASP.NETも異なります。VBは一般にVB6以前を指し、ASPはクラシックASPを指します。これらのテクノロジーは.NETフレームワークのリリースで根本的に再設計されたものであり、 Microsoftはほとんどすべての製品に.NETを追加しましたが、C#も新しく、両方の名前が実際に同じものを参照しています。

2
Ryathal

言語、フレームワーク、CLR、パターン、プログラミング方法を区別する必要があります。

ASP.NetはWinforms開発とはまったく異なるプログラミングパターンを使用していますが、同じ基盤を共有しています。 ASP.netおよび.Netアプリケーションをさまざまな言語でプログラムできます。

次に、MonoとMonoのコンテキストで使用されているC#言語があります。

これらのリンクを読んでください:
http://en.wikipedia.org/wiki/Common_Language_Runtime
http://en.wikipedia.org/wiki/.NET_Framework#Alternative_implementations
http://en.wikipedia.org/wiki/File:Overview_of_the_Common_Language_Infrastructure.svg

0
Jeremy