1

我想知道哪种是组织 dll 工具的最佳方式。

例如,我可以有一个项目,其中包含公司已实施的所有类工具。例如,使用字符串的类、使用文件的类……等等。我的意思是,一个带有我可以在许多项目中使用的工具的通用 dll。例如,这将是一个通用的 myCompaty.Utils.dll。

对于每种类型的工作,它都有许多 dll 的其他方式。例如,我可以有一个 myCompany.Utils.Files,其他 myCompany.Utils.Strings... 等等。

使用第一个选项,我只有一个 dll,但如果两个人需要添加或修复某些东西,只能一个人工作,因为如果两个人同时工作,当一个人编译新的 dll 时,其他人失去工作。

如果我有很多 dll,每种类型的工作一个,那么两个人需要修改同一个 dll 会更加困难,因为每个人都可能负责其中一个 dll。但是,问题是这样,当我部署应用程序时,我的程序目录下会有很多dll。

所以我想知道创建 dll 时哪个是最佳实践。

谢谢。

4

3 回答 3

6

从您的问题可以清楚地看出您没有使用版本控制系统试试看Tortoise SVN之类的东西——然后,你不会有几个人在同一个软件上工作的问题。

关于 DLL - 我会使用多个 DLL,每个 DLL 仅包含特定类型的实用程序方法。它将使部署更简单。如果您反其道而行之,即为您的所有实用程序方法使用一个 DLL,则每次其中的任何内容发生更改时,您都需要重新部署它 - 您更改负责处理文件的代码,您必须发送整个 DLL也将包含不相关的代码。而如果您将拥有多个 DLL,您只需重新部署真正改变的那个。

于 2012-07-07T15:28:58.850 回答
2

基本上,这将取决于您的库将拥有的类、接口和委托的数量。

想象一下,您的“Company.Shared.dll”中有 3000 个类,并且您正在开发一个 Web 应用程序。3000 个课程中有 600 个用于移动开发。在您的 Web 应用程序开发中使用它们的机会是什么?

那么,如果您只需要与 Web 开发相关的类,为什么还要为 Web 应用程序开发部署一个包含 3000 个类的程序集呢?库的大小大于特定于 Web 的库,因为第一个库可以包含许多在 Web 开发中不起作用的代码。

出于这个原因,您将拥有一个名为Company.Shared.Web.dll的共享库和一个所有开发场景通用的名为Company.Shared.dll的库。

您可以将上述逻辑用于其他情况和场景。

于 2012-07-07T15:28:20.597 回答
1

除了版本控制系统(当超过一半的开发人员在一个项目上工作时应该是必须的),您的组织允许每个人更改每个其他项目所依赖的基础库(或库)真的很疯狂。这将很快演变成一团糟。

在我的店里,只有一/两个人可以在那里改变任何东西。而这些家伙是最熟练和最有价值的同事。

对于库中存在的功能细分,我不关心大型 DLL。确实,即使我们更改了一点代码(并且当您的代码成熟且经过良好测试时,这种情况很少发生),我也需要重新分发所有内容,但是跟踪为该项目或该项目运送的每个 dll 超过了成本单个 DLL

于 2012-07-07T15:46:33.063 回答