10

2.0 ではなく .NET Framework 3.5 用にコンパイルする利点はありますか?

たとえば、メモリ消費量の削減、起動の高速化、パフォーマンスの向上など...

個人的にはそうは思いませんが、何かを見逃している可能性があります。

編集

  1. もちろん、3.5 フレームワークにはさらに多くの機能がありますが、これらはこの質問の焦点では​​ありません。

  2. メリットはないようです。

  3. はい、フレームワークをターゲットにするつもりでした。最新の 3.5 SP1 と VS 2008 をインストールしましたが、フレームワークを使用してコンパイルすることとターゲットにすることの違いは何ですか? プロジェクト オプションでフレームワークをターゲットにすることはできますが、特定のフレームワーク バージョンで「コンパイル」するにはどうすればよいですか? 違いがあるとは知りませんでした。

  4. したがって、現時点では利点がないことに同意します。

4

8 に答える 8

5

コンパイルとターゲティングには違いがあります。

(たとえば) C# 3.0 コンパイラでコードをコンパイルすると、生成された IL コードの最適化が含まれている可能性があるため、パフォーマンスが向上する可能性があります (いずれにしても非常にわずかです)。また、自動プロパティやラムダ式などの新機能を使用することもできます。

特定のフレームワークをターゲットにすると、アセンブリがそのフレームワーク (および事後) で確実に機能し、2.0 をターゲットにして 3.5 ライブラリを使用している場合は失敗します。あるフレームワークのクラスを別の「最速」クラスに置き換えない限り、パフォーマンスの向上は直接関係しません。たとえば、.NET 1.1 をターゲットにするとジェネリックを使用できないため、List よりかなり遅い ArrayList を使用する必要があります (ボックス化とボックス化解除のため)。

于 2008-09-15T20:50:24.640 に答える
2

.NET 2.0 と .NET 3.5 に関して、覚えておくべきことが 2 つあります。

  1. .NET Framework 3.5 は、.NET 2.0 上で実行されるライブラリのほんの一部です。
  2. Visual Studio 2008 で開発し、.NET 2.0 を対象とする場合、拡張メソッドなどの特定の C# 3.0 言語機能を引き続き使用できます。これは、実際には C# 3.0 (または .NET 3.5) コンパイラの機能であるためです。このリンクを参照してください: http://www.codethinked.com/post/2008/02/Using-Extension-Methods-in-net-20.aspx
于 2008-09-15T21:26:55.723 に答える
1

VisualStudioのバージョンごとに異なるコンパイラが付属していると思います。たとえば、C#の場合、Visual Studio 2005に付属している2.0コンパイラと、Visual Studio 2008に付属しているC#3.0です。使用するVisual Studioのバージョンに応じて、コンパイラが異なります。

フレームワークのターゲット設定とは、コンパイルプロセス中にターゲットにするフレームワークのバージョンを具体的に指します。ターゲティングフレームワークは、Visual Studio 2008の新機能です。たとえば、Visual Studio 2008でソリューションを開いて、.Netのv2.0をターゲットにすることができます。その結果、そのコンパイル中に3.0または3.5の.Net機能(WPFなど)を使用できなくなります。

于 2008-09-16T02:08:42.473 に答える
1

私は何も見つけていません。3.5 固有の機能が必要ない場合の明らかな欠点は、3.5 のコード ベースが新しいため、可能性は低いですが、バグが潜んでいる可能性があることです。

于 2008-09-15T20:48:16.037 に答える
1

コンパイルのために .NET 3.5 フレームワークをターゲットにすることを意味していると思いますか? もしそうなら、他の人が言ったように、私はあなたが大きな違いを見るとは思わない.

ただし、更新されたコンパイラの使用について話している場合は、次のリンクで C# と VB の両方について説明されているさまざまな変更と中断の変更があります。

于 2008-09-16T01:35:45.690 に答える
1

.NET アセンブリが .NET 3.5 をターゲットにしている場合、結果として得られるアプリケーションは .NET 3.5 ライブラリを探して必要とし、それだけです。これらのライブラリには、.NET 2.0 フレームワークにはない多数の追加クラスが付属しているため、これらのライブラリをターゲットにする利点があります。

ただし、たとえば Visual Studio 2008 に同梱されていて .NET 3.5 に適した C# 3.0 コンパイラで C# コードをコンパイルする、アセンブリ ターゲットが .NET 2.0 の場合、必要なのは通常の .NET 2.0 ライブラリだけであり、これにもかかわらず、実際には特定の .NET 3.5 コンパイラ機能。これらの機能の多くは、最終的に .NET 2.0 コードのみを使用しているためです。詳細については、http: //weblogs.asp.net/shahar/archive/2008/01/23/use-c-3-features-from-c-2-and-net-2-0-code を参照してください。 aspx

于 2008-09-16T12:27:40.520 に答える
1

フレームワークのそのバージョンのクラスを使用していない場合、3.5 フレームワークにコンパイルしてもメリットはありません。

于 2008-09-15T21:58:05.307 に答える
0

3.5 には 2.0 にはないクラスがあります。Func<...> たとえば。2.0を目指せば使えない。

于 2008-09-15T20:47:36.707 に答える