我想知道哪种是组织dll工具的最佳方法。
例如,我可以拥有一个项目,其中包含公司已实施的所有类工具。例如,使用字符串的类,使用文件的类......等等。我的意思是,我可以在许多项目中使用的工具的通用DLL。例如,这将是一个通用的myCompaty.Utils.dll。
其他方式它有很多dll,适用于每种类型的工作。例如,我可以有myCompany.Utils.Files,其他myCompany.Utils.Strings等等。
使用第一个选项,我只有一个dll,但是如果两个人需要添加或修复某些东西,只能工作一个人,因为如果两个人同时工作,当一个人编译新的dll,另一个人失去了工作。
如果我有很多dll,每种类型的工作一个,那么两个人需要修改相同的dll更加困难,因为每个人都可能负责其中一个dll。但问题是,通过这种方式,当我部署应用程序时,程序目录中会有很多dll。
所以我想知道创建dll时哪种方法最好。
感谢。
答案 0 :(得分:6)
从你的问题中可以清楚地看出你没有使用versioning system。尝试查看Tortoise SVN之类的内容 - 然后,对于使用同一软件的几个人来说,你就不会有任何问题。
关于DLL - 我会使用多个DLL,每个DLL只包含一种特定类型的实用程序方法。它将使部署更简单。如果您反其道而行之,即为所有实用程序方法都有一个DLL,则每次任何更改时都需要重新部署它 - 您更改了负责处理文件的代码,您必须运送包含不相关代码的整个DLL。如果你有多个DLL,你只需要重新部署真正改变的那个。
答案 1 :(得分:2)
基本上它取决于你的图书馆将拥有的类,接口和代理的数量。
想象一下,你的“Company.Shared.dll”中有3000个类,你正在开发一个Web应用程序。 3000个课程中有600个用于移动开发。在Web应用程序开发中使用它们的可能性有多大?的零强>
那么,如果您只需要与Web开发相关的类,那么为什么要为Web应用程序开发部署3000类程序集呢? 库大小大于特定于Web的大小,因为首先可以包含许多在Web开发中不起作用的代码。
出于这个原因,您将拥有一个名为 Company.Shared.Web.dll 的共享库,并且是所有称为 Company.Shared.dll 的开发方案的通用库。< / p>
您可以将上述逻辑用于其他案例和场景。
答案 2 :(得分:1)
除了版本控制系统之外(当超过一半开发人员在项目上工作时应该是必须的),组织允许每个人都更改基础库(或库)真的很疯狂每个其他项目所依赖的。这将很快变得一团糟。
在我的商店里,只有一两个人可以在那里换任何东西。这些人是最熟练和最有价值的同事。
对于库中存在的功能的细分,我不关心大的DLL。确实,即使我们更改了一些代码,我也需要重新分配所有代码(当代码成熟且经过充分测试时,很少发生这种情况),但跟踪此项目或该项目的每个dll都会超出成本单一的DLL