c#:为什么要使用dll ?

本文关键字:dll 为什么 | 更新日期: 2023-09-27 18:03:17

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

谢谢

c#:为什么要使用dll ?

大部分内容可以总结为这个问题的答案,但基本的理由是"这样你就不必重复代码了"。

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

可移植性、可重用性、模块化。

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

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

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

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

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

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

使用dll的好理由是你想与外部方共享代码。就像Visual Studio和其他库供应商提供的dll一样,这使得外部消费者可以使用这些代码。然而,他们曾经以另一种方式分发它们。

Patchable,这是真的,但是这种情况真的经常发生吗?我工作过的每个公司都将产品作为一个整体进行测试。我想如果你需要做增量补丁,因为带宽或其他原因,这将是一个理由。

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

我真的开始怀疑我们是否应该回到。lib文件的许多事情和减少DLL文件的数量。内存是充足的,有加载时间的开销,当你必须加载和运行时链接一堆DLL文件。

遗憾的是,. lib文件只有当你是一个c++爱好者时才可以选择。也许将来他们会考虑在c#中使用它们。我只是不确定DLL在今天广泛使用的情况下仍然存在的原因。

在大型软件中,您有许多团队,他们在几个不同的程序模块上工作,并且他们可以在不需要知道其他人在做什么的情况下继续他们的目标!因此,最好的解决方案之一就是每个团队并行地编写自己的代码。所以,dll出现了....

可扩展性——很多插件框架都使用dll/Assemblies作为插件。

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

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