什么时候使用C#类库(.dll)?

时间:2009-04-02 14:51:56

标签: c# class dll class-library

我是一名从未真正使用.dll文件的程序员。 当然,当我需要第三方软件时,例如图形库,帮助我创建图形等的库。我会将reference / ddl文件添加到我的程序中并在我的代码中使用它们。

此外,似乎你可以使用.dll来完成很多不同的事情,所以我希望这个主题能集中在C#上。

现在我正在开发一个消毒库(?)(我认为这是正确的术语),它将充满相关的方法,可以用各种不同的方式消毒变量。

我想知道的是:

会有什么好处:

1)将方法写入类库 - >编译/构建它 - >添加库作为程序的参考 - 需要清理一些变量吗?

如果我去哪,它会完全相同:

2)在程序中创建一个新的SanitizeClass - >添加所有消毒方法 - >在程序中需要清理变量的不同类中调用SanitizeClass中的方法

一般来说,我也想知道何时使用编译的类库是有利的。 我在想速度,安全性,所有这一切。

有人能启发我吗? :)

7 个答案:

答案 0 :(得分:20)

关键问题是:多个应用程序使用该类型是否有意义?如果是这样,它应该在类库中。如果没有,你可能仍然想把它放在一个类库中,只是为了分离(例如在n层解决方案中每层有一个程序集),但你可以把它放在你的应用程序中。

如果您的清理是通用的,那么将它放在一个类库中肯定是正确的举动。

我知道那些在可执行应用程序中几乎没有编写代码的人,并且几乎将所有放在类库中 - 所以应用程序基本上只包装了类库。我自己并不倾向于那么远......

答案 1 :(得分:2)

首先想到的是可重用性。这个清理库是否会在您正在使用的应用程序之外使用?如果你是,那么你不希望将来引用一个exe,因为你想构建一个DLL文件(可能甚至强名称它和GAC它),然后在将来引用它。

答案 2 :(得分:2)

其他程序集会增加轻微的加载时间和内存开销,但不会对性能产生影响。

如果您需要不同的代码访问安全性(CAS)并且将使用CAS,安全性只会有所作为。

通常有三个原因:

  1. 它使事情变得更简单。将所有内容放在一个程序集中变得笨拙(这可能包括组织/团队问题)。

  2. 重新使用。

  3. 您需要单独的程序集。例如。在不同的程序集中使用接口和实现以允许卸载AppDomains(例如,用于插件)。

答案 3 :(得分:1)

当您想要在多个程序之间共享代码时,使用库非常有用。

如果您认为您需要您的课程来清理多个程序中的数据,那么最好将它们放入库中。

将应用程序的各层放在不同的库中(检查n层架构)

也是一个好主意

答案 4 :(得分:0)

我认为最简单的方法是将SanitizeLibrary项目作为Library Class项目添加到您的解决方案中,并在您的应用程序中引用该项目。如果您发现它很有用,那么您可以从当前项目中提取库,并在其他项目中将其作为dll引用。

答案 5 :(得分:0)

如果您要在不同的应用程序中重用此代码 - 即:这将是某种共享库 - 然后将其编译为dll

reg性能,请注意对外部汇编执行的任何代码总是比在同一汇编中执行代码慢一点

答案 6 :(得分:0)

什么是类库?

我们可以在所有.Net应用程序中创建类文件(C#.Net,Asp.net,Asp.net MVC)

在Java中它被称为包!...

在.Net中,我们将其称为DLL(动态链接库)

如果要在应用程序中创建类,则只能在此应用程序中使用此类,不能在其他应用程序中使用它。

如果您创建类库您可以在所有应用程序中使用它。

何时需要创建和使用类库?

当我们在不同的应用程序中编写相同的代码时,我们可以创建类库并在所有应用程序中使用它。

示例:

如果您在多个应用程序中有export excel选项,则可以在类库中编写导出代码,并且可以在多个应用程序中使用它。

实时示例:

班级就像房间里的垃圾箱一样,只有房间成员可以访问它。

Class lib 就像垃圾箱在公共场所(学院,火车站),任何人都可以访问和使用它。