17

我是一个从未真正使用过 .dll 文件的程序员。当然,当我需要 3rd 方软件时,例如图形库、帮助我创建图形的库等。我确实将引用/ddl 文件添加到我的程序中并在我的代码中使用它们。

此外,您似乎可以将 .dll 用于许多不同的事情,因此我希望将主题集中在 C# 上。

现在我正在开发一个清理库(?)(我认为这是正确的术语),其中充满了可以以各种不同方式清理变量的相关方法。

我想知道的是:

有什么好处:

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

或者如果我在哪里:

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

一般来说,我也想知道什么时候使用已编译的类库是一个优势。我正在考虑速度,安全性,所有这些。

任何人都可以启发我吗?:)

4

7 回答 7

28

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

如果您的清理是通用的,那么将其放入类库肯定是正确的举措。

我知道有人在可执行应用程序中几乎不编写任何代码,几乎所有东西都放在类库中——所以应用程序基本上只是包装类库。我自己不会走那么远...

于 2009-04-02T14:55:45.960 回答
2

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

于 2009-04-02T14:55:23.370 回答
2

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

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

将应用程序的层放在不同的库中也是一个好主意(检查 n 层架构)

于 2009-04-02T14:56:49.030 回答
2

额外的程序集会增加一点加载时间和内存开销,但不会影响性能。

仅当您需要不同的代码访问安全性 (CAS) 并使用 CAS 时,安全性才会有所作为。

一般有以下三个原因:

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

  2. 重复使用。

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

于 2009-04-02T14:57:24.880 回答
0

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

于 2009-04-02T14:58:47.730 回答
0

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

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

于 2009-04-02T14:59:43.813 回答
0

什么是类库?

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

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

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

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

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

何时必须创建和使用 Class Lib?

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

例子 :

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

实时示例:

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

类库就像一个公共场所(大学、火车站)的垃圾箱,任何人都可以访问和使用它。

于 2016-10-20T05:47:30.623 回答