5

MSスタックのすべてのパーツがどのように組み合わされているかについてはかなり混乱しています。C#バージョン、Visual Studioバージョン、.NET Frameworkバージョン、およびASP.NETバージョン(これは.netバージョンと同じですか?)は、特定のプロジェクトにどのように適合しますか?

たとえば、.NETFramework2を対象とするプロジェクトにVisualStudio2010を使用している場合、使用できるC#またはASP.NETの機能をどのように知ることができますか?

4

6 に答える 6

5

C# のバージョンによって、使用できる言語機能が決まります。それは他のすべてのものから独立しています。(コンパイラだけなので)
古いフレームワークを対象としている場合でも、(ほとんどの) 新しい言語機能を使用できます。

ただし、これらの機能の一部 ( dynamicNoPIA など) は、特定の .Net Framework バージョンの機能に依存しています。

.Net Framework のバージョンによって、使用できる .Net の部分が制御されます。一部の .Net 機能 (LINQ や TPL など) は、新しいバージョン (それぞれ 3.5 と 4.0) で導入されました。

さらに複雑なことに、ASP.Net は実行時に C# コンパイラを呼び出して ASPX または Razor ビュー (および Web サイト プロジェクトのスタンドアロン ファイル) をコンパイルするため、このようなシナリオではフレームワーク バージョンよりも新しい言語機能を使用できません。

于 2012-05-17T13:45:59.973 に答える
2

C#バージョンは、ソースコードをコンパイルするために呼び出されるコンパイラのバージョンであり、VSバージョンは、複数のフレームワークバージョンをサポートする可能性のあるVisualStudioIDEのバージョンです。フレームワークのバージョンは、使用可能な.NET BCL(基本クラスライブラリ)のバージョンに影響します。

したがって、例のように2.0フレームワークをターゲットにする場合は、2.0フレームワークで使用可能なBCLライブラリのみを使用できます。したがって、を使用することはできませんSystem.Linq

ただし、VS2010はC#4コンパイラを使用するため、デフォルトパラメータなどのC#4コンパイラ機能を使用しても、古いフレームワークをターゲットにする ことができます。

したがって、C#4コンパイラはコンパイル時にデフォルトのパラメータを処理するため、VS2010からビルドすると、2.0フレームワークでコンパイルおよび実行されます。

class Program
{
    public static void HelloWorld(string x = "Hi")
    {
        Console.WriteLine(x);
    }
    static void Main(string[] args)
    {
        HelloWorld();
        HelloWorld("Buyah");
    }
}
于 2012-05-17T13:46:33.017 に答える
1

WikipediaのC#エントリの表を確認してください。この表には、さまざまなバージョンのC#言語(およびコンパイラ)と、それらが依存する.NETおよびVisualStudioのバージョンの概要が示されています。

Visual Studioは通常、下位互換性があるため、Visual Studio2010でも.NETFramework2.0に対してC#2.0コードを記述できます。

于 2012-05-17T13:50:53.577 に答える
1

Visual Studio のバージョンによって、使用できる C# / .NET のバージョンが決まります。IDE は C# バージョンより前にリリースされたため、Visual Studio 2005 で .NET 4.0 機能を使用して C# を作成することはできません。ただし、VS 2010 から .NET 2.0 をターゲットにするなど、逆方向に進むことはできます。

フレームワークのバージョンと IDE に関する C# のバージョンは、.NET / C# 2.0 および VS 2005 以降では次のとおりです。

VS 2005 | .NET 2.0 以前 | C# 2.0 以前

VS 2008 | .NET 3.5 以前 | C# 3.0 以前

対 2010 | .NET 4.0 以前 | C# 4.0 以前

VS 11 (ベータ版) | .NET 4.5 以前 | C# 5.0 以前

于 2012-05-17T13:51:51.720 に答える
0

VisualStudioはIDEです。使用しているVSのバージョンに応じて、.Netの多くのバージョンをサポートします。VS2010は、.Net2から.Net4までをサポートします(現在のベータ版は含まれません)

.Netには、ライブラリの機能に基づいた独自のバージョンがあります

互いに独立しており、.Net、C#、およびVBには独自のバージョン番号があります。VBは従来のVBから引き継いで、ついに私がチェックしたのは11でした。C#は.Net番号とほぼ一致しています。これらは、言語自体がライブラリから独立した新しい機能を取得したときに変更されます。

ASP.Netにも、さまざまな機能に基づいた独自のバージョンがあります。

それらはすべて相互に関連していますが、相互に依存していません。通常、これらはすべて.netのバージョンになりますが、言語またはフレームワークを更新する前に、ASP.Netに新しい機能をリリースする場合があります。

于 2012-05-17T13:50:06.680 に答える
0

ここではテーブルの方が適していますが、私の答えは次のとおりです。

言語: C# 1、.NET Frameworks 1.0、1.1、VS 2003

言語: C# 2、.NET Frameworks 2.0、VS 2005 (追加された主な機能: ジェネリック)

言語: C# 3、.NET Framework 3.0、3.5 (実際にはバージョン 2.0 に基づいています)、VS 2008 (追加された主な機能: LINQ (言語)、WCF、WPF、WF (テクノロジー)

言語: C# 4、.NET Framework 4.0、VS 2010 (主な機能の追加: 動的型)

ちなみに、VS 2008、2010 は、バージョン 2.0 以降の .NET Framework をターゲットにできます。

于 2012-05-17T13:53:50.400 に答える