1

我通常将项目分为几层,即表示层、业务逻辑层和数据逻辑层。有时我会使用命名空间来分隔层,有时我会拥有三个独立的 DLL(使用层)。

我看到开发人员将层分成多个 DLL。例如,我曾经看到一个业务逻辑层包含一百多个不同的项目文件,因此也有一百多个不同的 DLL。此外,MSDN 文档显示 .NET 框架包含多个 DLL,例如 mscorlib 等。

我相信拥有单独的 DLL 背后的原因是它可以最大限度地减少内存占用,并且它还允许多个开发人员从事不同的项目,例如一个团队可以从事一个项目,另一个团队可以从事另一个项目等。

我在一个两个开发人员团队中工作。开发人员使用什么标准来决定拆分成单独的 DLL?

4

2 回答 2

1

将层分成多个 DLL 的原因是什么?

这样做有多种原因。

  1. 它增加了隔离,可以帮助编译器防止您混淆关注点。如果不显式添加引用,则不能“意外”在其他 DLL 中使用内部类型,这允许编译器帮助您保持代码更简洁。
  2. 如果您在运行时不使用程序集,则不会加载它。这可以使内存占用更小。(但是,如果使用了所有程序集,则无济于事)。
  3. 它在您的 API 和项目中提供了逻辑分离,这有助于您的代码的组织和可维护性。请注意,太多的项目与太少的项目一样糟糕(有时甚至更糟),但是,因为许多项目增加了可能无益的复杂性。
于 2013-02-15T19:12:42.380 回答
0

将代码分成多个程序集的原因有很多,其中一些比其他的更具技术性。程序集可用于代码的逻辑分组,就像命名空间一样,事实上,一种常见的模式是将大型命名空间(关注点)分离到该命名空间的单独程序集中。但这个原因绝对不是使用多个程序集的最佳理由。

代码重用就像将代码放入不同程序集中的第一要素。例如,您可能有一个控制台应用程序,其中的所有代码都是编译的一个执行文件。稍后,您决定为同一个应用程序创建一个 Web 应用程序前端。您可能会将解决方案重构为三个项目,而不是将核心代码从控制台应用程序复制到 Web 应用程序:代码代码的类库(主要实现)、控制台应用程序(已经存在)和 Web 应用程序. 控制台应用程序和 Web 应用程序项目/程序集将引用类库项目/程序集,并且主代码在两个实现中重用。请注意,这是过于简单化了。

将代码分成多个程序集以在管理依赖项时分离关注点的另一个原因。在这种情况下,您的代码可能需要引用您可能不想在核心应用程序程序集中引用的面向 Web 的依赖项(其他程序集)。您可以这样做,以便您可以通过将应用程序分解为其他程序集/项目来重用您的核心程序集,而无需在不需要它们时采用不必要的依赖项。

另一个原因是促进大型团队的并发开发,其中子团队可能各自处理不同的程序集,有助于减少处理应用程序不同关注点的开发人员之间的“冲突”数量。

于 2013-02-15T20:53:55.647 回答