2009-04-01 20 views
6

私は内部で(Linqなどを利用するために).net 3.5を使うほうがはるかに簡単なDLLをいくつか持っています。私は現在asp.net 2.0を実行しているasp.net WebサイトでこれらのDLLを使用したいと思います。.NET 2.0 Webサイトで.net 3.5 DLLを使用できますか?

このシナリオは可能ですか?何らかの制限や問題がありますか(asp.netはIQueryableのような.net 3.5オブジェクトを返すメソッドへの呼び出しを行いません)。

注:もちろん、.net 3.5がサーバーにインストールされます。

答えて

5

foosnazzyによると、.NET 3.5(SP1)はいくつかの新しいアセンブリを持つ.NET 2.0 SP2です。 Webサイトにインストールしない唯一の理由は、Webサイトが.NET 2.0 SP2で動作しない場合です。

これは以前のように.NET 1.1 Webサイトに.NET 1.1をインストールする方法とは非常に異なります.Webサイトが1.1を使用していなかったとしても、私はWebサイトを壊してしまいました。 1.1なので、私は特定のツールを使うことができました。 .NET 1.1から.NET 2.0へのアップグレードはさらに悪夢でした。

しかし、Microsoftはこれを知りました。 2.0 .NET 3.5 SP1の.NETバージョンはすべて、.NET 2.0共通言語ランタイム(CLR)を使用します。実際、3.5をインストールした人は、IIS設定を見て、Webサイトがまだ.NET 2.0を実行していることを確認することに驚くことがあります。しかし、2つのサービスパックが適用されているのとまったく同じ.NET 2.0です。新しいアセンブリを使用しないサイトは、影響を受けることはありません(サービスパックの機能を超えて)。

C#3.0の機能は、フレームワークとは独立しています。たとえば、匿名型とラムダを純粋な.NET 2.0コードで使用できます。あなたははできません doは、.NET 3.5で新しいアセンブリが必要なので、LINQを使用しています。

3

C#3の多くの機能を.net 2.0で使用できますが、Linqはその1つではありません。 Linq DLLは別途配布することはできませんが、完全な3.5ランタイムをインストールする必要があります。

注:.net 3.5がインストールされている場合、サイトが3.5のアセンブリを含むように構成されていないと問題が発生すると思います。 dllはあらかじめコンパイルされているため、必要な参照がPEファイルに含まれている可能性があるため、Webアプリケーションプロジェクト(Webフォームプロジェクトとは対照的)で動作する可能性がありますが、わかりません。

+0

したがって、3.5のdllをインストールして2.0の互換メソッドしか呼び出せない場合は、それが動作しますか? – Keltex

2

3.5が2.0フレームワークに追加され、すべてが完全に後方互換です。

+0

しかし、3.5がインストールされていない場合は、3.5の機能を使用することはできません。 たとえば、.net 3.5はWindows 2000にはインストールされませんが、.net 2.0はインストールされます。したがって完全に後方互換性はありません。 –

2

いつでもLinqBridgeがあります。これにより、.NET 2.0環境でLinq To Objectsを使用できます。ただし、ASP.NET Webアプリケーションを使用するかASP.NET Webサイトプロジェクトを使用するかによって、ASP.Netで使用する際に注意が必要です。詳細については、this pageを参照してください。

関連する問題