拥有多个DLL或单个大型DLL是否更好?

时间:2012-10-05 15:45:00

标签: .net performance memory dll namespaces

拥有多个DLL或单个大型DLL是否更好?或者重要吗?

我正在处理的应用程序很大,有很多名称空间。目前,每个命名空间都包含在一个单独的DLL中,但是我们一直在考虑将它们中的几个组合在一起以简化依赖性问题。

当引用名称空间时,是否还会将所有其他名称空间加载到内存中?我只关心表现。

1 个答案:

答案 0 :(得分:3)

命名空间和程序集(DLL)都提供了分区项目的方法,但它们以不同的方式实现:命名空间提供逻辑分区,而程序集提供物理分区。

这些分区的边界通常完全匹配,但不一定如此:您可以让同一名称空间的类出现在多个程序集中;您也可以将多个名称空间中的类放入同一个程序集中。

我遵循的创建新程序集的经验法则很简单:如果存在一组类可以独立于另一组类使用的情况,则这两个组应该转到单独的程序集。这使您可以更灵活地将程序集混合为其他项目的依赖项。由于依赖项的依赖项是懒惰加载的,因此使用较小的DLL可以更好地管理应用程序的运行时占用空间。

与多个DLL相关的最大问题是编译时间显着增加。幸运的是,它可以通过managing the "Copy Local"设置解决。