2017-12-19 7 views
0

申し訳ありません私は古い学校のプログラマーです。ソリューションのすべてのプロジェクトが同じ.Netフレームワークをターゲットにしていました。しかし、.NET 4.5.1クラスライブラリを参照している.Net 4.6.1プロジェクトを作成している開発者がいます。新しい.NetプロジェクトのOLDクラスライブラリ

新しいMVC/Web内の古いバージョンのクラスライブラリを参照するのはいいですか? Apiプロジェクトですか?

グリーンフィールドプロジェクトの場合、異なる実行時間を混在させることで、本番環境での実行時間の同時ロードによるパフォーマンスの低下はもちろん、DLL地獄のような状況には向かないでしょう。

+2

["マルチターゲット"という名前にもかかわらず、プロジェクトは一度に1つのフレームワークと1つのプラットフォームのみを対象とすることができます。](https://docs.microsoft.com/en-us/visualstudio/msbuild/msbuild-multitargeting-概要)、https://docs.microsoft.com/en-us/dotnet/framework/deployment/side-by-side-execution(これは十分に文書でカバーされており、ここでは良い答えを得ることはほとんどありません) – dlatikay

答えて

3

最近では2 Runtimes(1.0と1.1を含む場合は4)しかありません。 2.0と4.0があり、実行しているマシン上のバージョンが異なっています。したがって、.NET 4.5.1でプロジェクトをターゲットにすることができ、4.6.1ランタイムでうまく動作します。

すべてが1つのプロセスとして終わる1つのソリューションの一部であれば、すべてのターゲットプラフォームを同じにしておくことは理にかなっていますが、.NET 4.7アプリケーションにはペナルティはありません。ターゲットの4.5 - たとえば。

.NET 4.0とデスクトップ向けのコードを記述する必要がありますが、サーバー側には新しい.NETが必要です。デスクトップとサーバーの両方のプロジェクトから参照する.NET 4.0の共通コードを持つプロジェクトがたくさんあります。

2

長時間の応答短く - はい。古いクラス

1)メソッドとオブジェクトは、最新のはまだされているし、あなたの現在の.NETフレームワークと互換性があります。古いライブラリを扱うとき それはベストプラクティスではありません、あなたは確認する必要があります。また、廃止予定のメソッドを使用しないようにする必要があります。

2)古いクラスがコンパイルされ、新しい.netフレームワークでも実行されるようにする必要があります。

古いクラスが新しい.netフレームワークでうまくいけば、新しいフレームワークのクラス全体を再びフィートに書き直す必要がないので、このアプローチは非常に便利です。

すべてがソリューションの一部であり、問​​題なく動作しているのであれば、必ずしもすべてのものが正しいかどうかをチェックして一緒に作業していることを確認する必要はありません。

クラスを上位のフレームワークに移行する場合は、フレームワークに合わせてクラスコード全体を書き直す必要があるという欠点があります。これは適合しない場合です。

関連する問題