2013-02-15 52 views
1

我通常会将项目分割为图层,即表示层,业务逻辑层和数据逻辑层。有时我会使用命名空间来分离图层,有时我会有三个单独的DLL(使用层)。一个图层的多个DLL

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

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

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

+0

独立的DLL没有帮助的内存占用,除非有些项目可以选择完全不使用的DLL。如果整套设备总是一起使用,那么没有记忆效益。 – tcarvin 2013-02-15 19:10:19

+0

@tcarvin,你能发表一个答案,以便我可以信任吗?的 – w0051977 2013-02-15 19:11:03

+0

可能重复[C#:为什么要使用的DLL(http://stackoverflow.com/questions/6793599/c-why-use-dlls) – 2013-02-15 19:14:59

回答

0

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

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

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

另一个原因是方便大型团队的并行发展,其中子团队可以在不同的装配各项工作,帮助减少对应用程序的不同的关注点工作开发商之间“collissions”的数量。

1

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

有很多原因可以做到这一点。

  1. 它增加了隔离,它可以帮助编译器防止混淆顾虑。在不明确添加引用的情况下,“不小心”就不能在其他DLL中使用内部类型,这可以让编译器帮助您保持代码清洁。
  2. 如果您在运行时不使用程序集,则不会加载它。这可以减少内存占用。 (但是,如果使用了所有的程序集,它将无济于事)。
  3. 它提供了API和项目之间的逻辑分离,它可以帮助组织和维护代码。请注意,太多的项目同样糟糕(有时甚至更糟),但是,因为许多项目增加了复杂性,可能没有好处。
+0

谢谢。第1点+1。我已经想到了第2点和第3点,但感谢您确认这些点。是否有开发人员用来决定如何拆分为DLL的标准? – w0051977 2013-02-15 19:17:01