我通常将项目分成多个层,即表示层,业务逻辑层和数据逻辑层。有时我会使用命名空间分隔图层,有时我会有三个单独的DLL(使用层)。
我看到开发人员将层分成多个DLL。例如,我曾经看到一个包含一百多个不同项目文件的业务逻辑层,因此有超过一百个不同的DLL。此外,MSDN文档显示.NET框架包含多个DLL,例如mscorlib等。
我相信拥有单独DLL的原因在于它最大限度地减少了内存占用,并且它允许多个开发人员处理不同的项目,例如一个团队可以在一个项目上工作,另一个团队在另一个项目上工作等。
我在两个开发团队工作。开发人员使用什么标准来决定拆分成单独的DLL?
答案 0 :(得分:1)
将图层分成多个DLL的原因是什么?
有很多理由这样做。
答案 1 :(得分:0)
出于多种原因将代码分成多个程序集,其中一些技术比其他原因更具技术性。程序集可以像命名空间一样用于代码的逻辑分组,实际上,一种常见的模式是将大型名称空间(关注点)分离为该命名空间的单独程序集。但这个原因绝对不是使用多个组件的最佳理由。
代码重用就像是将代码放入不同程序集的首要因素。例如,您可能有一个控制台应用程序,并且所有代码都是编译的一个执行文件。稍后,您决定为同一应用程序创建一个Web应用程序。您可以将解决方案重构为三个项目,而不是将核心代码从控制台应用程序复制到Web应用程序:代码代码的类库(主要实现),控制台应用程序(已存在)和Web应用程序。控制台应用程序和Web应用程序项目/程序集将引用类库项目/程序集,并且主要代码将在两个实现中重用。请注意,这是一种过于简单化的做法。
将代码分成多个程序集以在管理依赖项时分离关注点的另一个原因。在这种情况下,您可能拥有需要引用您可能不希望在核心应用程序集中引用的面向Web的依赖项(其他程序集)的代码。您可以这样做,以便您可以重用核心程序集,而不需要在不需要时通过将应用程序分解为其他程序集/项目来获取不必要的依赖项。
另一个原因是促进大型团队的并行开发,其中子团队可能各自在不同的程序集上工作,有助于减少处理应用程序不同问题的开发人员之间的“冲突”数量。