複数の DLL と 1 つの大きな DLL のどちらを使用する方がよいですか? それとも関係ありますか?
私が取り組んでいるアプリケーションは、多くの名前空間を持つ大規模なものです。現在、各名前空間は個別の DLL に含まれていますが、依存関係の問題を簡素化するために、それらのいくつかを組み合わせることを検討しています。
名前空間が参照されると、他のすべての名前空間もメモリに読み込まれますか? ただ気になるのは性能です。
複数の DLL と 1 つの大きな DLL のどちらを使用する方がよいですか? それとも関係ありますか?
私が取り組んでいるアプリケーションは、多くの名前空間を持つ大規模なものです。現在、各名前空間は個別の DLL に含まれていますが、依存関係の問題を簡素化するために、それらのいくつかを組み合わせることを検討しています。
名前空間が参照されると、他のすべての名前空間もメモリに読み込まれますか? ただ気になるのは性能です。
名前空間とアセンブリ (DLL) はどちらもプロジェクトを分割する方法を提供しますが、その方法は異なります。名前空間は論理分割を提供し、アセンブリは物理分割を提供します。
多くの場合、これらのパーティション分割の境界は正確に一致しますが、一致する必要はありません。同じ名前空間のクラスを複数のアセンブリに含めることができます。複数の名前空間のクラスを同じアセンブリに配置することもできます。
私が従う新しいアセンブリを作成するための経験則は単純です。クラスの 1 つのグループを別のクラスのグループから独立して使用できる状況がある場合、2 つのグループは別のアセンブリに移動する必要があります。これにより、他のプロジェクトの依存関係としてアセンブリをより柔軟に混在させることができます。依存関係の依存関係は遅延して読み込まれるため、小さな DLL を作成すると、アプリケーションのランタイム フットプリントをより適切に管理できます。
複数の DLL に関連する最大の問題は、コンパイル時間の大幅な増加です。幸いなことに、「ローカルにコピー」設定を管理することで対処できます。