C#、. NET、ASP、ASP.NETなどの関係[終了]


143

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

私が理解していることから、.NETは...もののライブラリ/フレームワークです。フォーム要素などのWindowsデータに本質的にアクセスしていると思いますが、ASP.NETには適用されないようです。

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

最後に、.NETが添付されていないC#は表示されません。C#は、それなしでは使用できないという点で.NETと密接に結びついていますか?

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

[余談ですが、これらは複数の質問であることに気づきましたが、それらは非常に相互に関連していると思います(または少なくとも、プログラマやSOの閲覧が私に与えた印象です)。

回答:


172

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

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

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

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

作業中のプロジェクトは、選択する内容によって異なります。


7
+1、ただし#2の1つのマイナーニグル-.NETは「コードのライブラリ」ではなく、フレームワークです(プログラムを定義および実行する方法を定義する「ワークフロー」として正しく定義します)。Microsoftが公開している.NET言語で利用可能な標準ライブラリのコレクションは、.NET Base Class Library(BCL)です。
nlawalker

7
ASPは、ASP.NETではなく従来のASPを参照するためにも使用できることに注意してください。
ブライアン

11
ポイント1には同意しません。C#は.NETなしで使用できるため、C#.NETではC#を.NETフレームワークで使用することを明示していますが、C#は使用しません。実際には、ほとんどの人はC#が.NETで使用されていると想定しています。
イアンニューソン

23

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

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

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

[クラシック] ASPは、Microsoftの古いWebフレームワークです。名前は似ていますが、ASPとASP.NETは内部ではまったく異なります。重要な違いの1つは、ASPの言語オプションがVBScriptとJScriptだけであることです。ASPは古くて時代遅れの技術であり、それで悩まないでください。


14

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

最後に、ASPはASP.Netと同じではありません。彼らには大きな違いがあります


ac#アプリケーションとac#.netアプリケーションには違いがありますか?あなたはあなたの答えでc#.netから.netを落としたので尋ねます。.Net開発者セクションは非常に役に立ちました。
ミーガンウォーカー

5
まあ、C#は実際には言語であり、.Netとは結びついていません。しかし、C#の現在の使用はすべて.Netであるため、実際には「C#」と「C#.Net」の間に違いはありません
-Earlz

「.NET」開発者として、言語の排他的なメソッド/機能を可能な限り避け、構文を変更するだけですべての.NET言語にジャンプできるため、私は主張します。
ウェイン

1
C#言語は単なる言語です。.NETバックエンドまたはフレームワークと通信することなく、C#で何でも書くことができます。私を疑う人のために、Xamarin C#を見てください。これは、.NETをまったく使用せずにiOSおよびAndroidのネイティブアプリを作成する方法です。
フィルライアン

@PhilRyanこの答えが投稿されたとき、Xamarinは価値がありませんでした。
タイラーH

8

1つだけの答えがMonoに言及しているので、詳細には触れません。

言語としてのC#は元々Microsoftで.NET Frameworkの一部として開発されましたが、後にECMAによって標準化されました。つまり、言語の独立した標準準拠の実装を開発できます。それらの中で最も顕著なものはMonoです。

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

そのため、はい、.NETなしでC#で作業することは可能であり、実行可能です。しかし、MonoがMicrosoftの市場シェアと.NET Frameworkの地位に匹敵する可能性は、現時点ではなく、近い将来にないでしょう。


誰かがMonoを説明し、.NETとペアになっていないとC#が表示されないという誤った仮定を修正するのを待っていました。+1。
KChaloux

7

Jon Skeetの本であるC#In Depthは、.NETをかなり簡潔に破壊します。多くの場合、関連して使用されます

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

2

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


0

言語、フレームワーク、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


「ASP.netおよび.Netアプリケーションをさまざまな言語でプログラムできます。」これが何を意味するのか分かりません。ASP.netプログラムをさまざまな言語で書くことができると言います。しかし、私は、ASPは言語だと思った、と.NETは、あなたが追加したフレームワーク。
ミーガン・ウォーカー

ASP.netはフレームワークであり、プログラミング方法論と考えています。ASP.netは、このリストから任意の言語でコーディングできますen.wikipedia.org/wiki/List_of_CLI_languages ASPクラスではできません。
ジェレミー

1
ASPは言語ではありません。
マーシー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.