c#:为什么要使用DLL?

时间:2011-07-22 17:12:53

标签: c# dll

我正在开发一个大型的c#项目,我想知道为什么人们会在他们的应用程序中使用DLL。我知道一个dll文件(如果我错了请更正)包含一些函数,但为什么我们不将这些函数放在我们的主c#app中?

谢谢

9 个答案:

答案 0 :(得分:17)

大部分内容总结在答案to this question中,但基本推理是“所以你不必重复代码”。

答案 1 :(得分:8)

代码重用。通常,dll文件包含在多个应用程序中有用的函数,并且将它们放在单个编译文件中比复制所有代码要容易得多。

答案 2 :(得分:8)

便携性,可重用性,模块化。

将类型等拆分为单独的程序集允许您在不同项目中重用这些类型,以模块化方式维护这些类型(例如,只更新一个程序集而不是整个应用程序),并与其他人共享代码的一部分。 / p>

它还允许您将常用功能分组到一个包中。

答案 3 :(得分:6)

可维护性。当您需要修复错误时,您只需释放包含修复程序的DLL,而不必重新发布整个应用程序。

答案 4 :(得分:1)

在大型软件中,您拥有许多团队,他们需要处理几个不同的程序模块,并且他们可以实现自己的目标而无需知道其他人在做什么!因此,最好的解决方案之一是每个团队并行生成自己的代码。因此,dll出现了。...

答案 5 :(得分:0)

可扩展性 - 许多插件框架都使用DLL / Assemblies来插件。

答案 6 :(得分:0)

dll:动态链接库: 这是一个图书馆。 它包含一些功能和数据。 我们在哪里使用这些功能? 我们在另一个应用程序或程序中使用这些函数和数据。 最重要的是dll不会被加载到内存中,当它需要时,称它被加载到ram中。

答案 7 :(得分:0)

最好的用途之一是,只需引用dll即可将许多第三方功能集成到您的应用程序中,无需将每个第三方工具/应用程序用于您的系统。 例如,您需要通过MS Outlook通过代码发送会议邀请,为此,只需在您的应用程序中引用MS Outlook提供的dll,您就可以开始编写成功的方式了!

答案 8 :(得分:0)

这是现代计算中一个有趣的问题。

在16位时代,DLL减少了内存中的数量代码。 当16兆计算机被认为已满载时,这是一个大问题。

我发现许多答案很有趣,好像DLL是拥有可重用,可维护和可移植的库的唯一方法。

dll的充分原因是您想与外部用户共享代码。 就像Visual Studio和其他库供应商为您提供dll一样,这使得那里的代码可供外部使用者使用。但是,一次他们确实以另一种方式分发它们。

可修补,的确如此,但这种情况多久发生一次。我工作过的每个公司都对产品进行了整体测试。我想如果您由于带宽或某些原因需要进行增量修补,那将是一个原因。

由于所有其他原因,包括可重用,可维护,模块化。 我想大多数人都不记得静态链接库的.LIB文件。 您甚至可以分发.LIB文件,但必须在编译时而不是在运行时引入它们。它们可以像DLL一样帮助促进可重用,可维护和模块化。 最大的区别是它们是在程序编译时链接的,而不是在程序执行时链接的。

我真的开始怀疑我们是否应该在很多事情上不返回.LIB文件并减少DLL文件的数量。当您必须加载并且运行时链接一堆DLL文件时,内存充足并且加载时间有开销。

遗憾的是,.LIB文件仅是C ++专家的选择。也许他们将来会考虑使用C#。我只是不确定在今天使用DLL的广泛上下文中仍然存在DLL的原因。