Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何组织dll工具?_C#_Dll_Organization - Fatal编程技术网

C# 如何组织dll工具?

C# 如何组织dll工具?,c#,dll,organization,C#,Dll,Organization,我想知道哪种是组织dll工具的最佳方式 例如,我可以有一个项目,其中包含公司已经实现的所有类工具。例如,使用字符串的类,使用文件的类。。。等等我的意思是,一个通用的dll,里面有我可以在很多项目中使用的工具。例如,这将是一个通用的mycompatiy.Utils.dll 另一方面,它有许多DLL,每种类型的工作。例如,我可以有一个myCompany.Utils.Files,其他myCompany.Utils.Strings。。。等等 对于第一个选项,我将只有一个dll,但如果两个人需要添加或修复

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

例如,我可以有一个项目,其中包含公司已经实现的所有类工具。例如,使用字符串的类,使用文件的类。。。等等我的意思是,一个通用的dll,里面有我可以在很多项目中使用的工具。例如,这将是一个通用的mycompatiy.Utils.dll

另一方面,它有许多DLL,每种类型的工作。例如,我可以有一个myCompany.Utils.Files,其他myCompany.Utils.Strings。。。等等

对于第一个选项,我将只有一个dll,但如果两个人需要添加或修复某些内容,则只能让一个人工作,因为如果两个人同时工作,当其中一个人编译新dll时,另一个人将丢失工作

如果我有很多dll,每种工作类型一个,那么两个人需要修改同一个dll就更困难了,因为每个人都可能负责其中一个dll。然而,问题是,通过这种方式,当我部署应用程序时,程序目录中会有很多DLL

因此,我想知道创建DLL时的最佳实践是什么


谢谢。

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

假设您的“Company.Shared.dll”中有3000个类,并且您正在开发一个Web应用程序。3000个课程中有600个用于移动开发。在Web应用程序开发中使用它们的机会有多大

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

因此,您将拥有一个名为Company.shared.Web.dll的共享库,以及一个名为Company.shared.dll的所有开发场景通用库


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

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

假设您的“Company.Shared.dll”中有3000个类,并且您正在开发一个Web应用程序。3000个课程中有600个用于移动开发。在Web应用程序开发中使用它们的机会有多大

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

因此,您将拥有一个名为Company.shared.Web.dll的共享库,以及一个名为Company.shared.dll的所有开发场景通用库


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

从您的问题可以清楚地看出,您使用的是no。试着检查一下这样的东西-然后,你将不会有几个人在同一件软件上工作的问题


关于DLL——我赞成使用多个DLL,每个DLL只包含特定类型的实用程序方法。这将使部署更加简单。如果您想做相反的事情,即为所有实用程序方法使用一个DLL,那么每当其中的任何内容发生更改时,您都需要重新部署它—您更改了负责处理文件的代码,您还必须提供包含不相关代码的整个DLL。然而,如果您有多个DLL,则只需重新部署真正更改的DLL。

从您的问题中可以清楚地看出,您使用的是no。试着检查一下这样的东西-然后,你将不会有几个人在同一件软件上工作的问题


关于DLL——我赞成使用多个DLL,每个DLL只包含特定类型的实用程序方法。这将使部署更加简单。如果您想做相反的事情,即为所有实用程序方法使用一个DLL,那么每当其中的任何内容发生更改时,您都需要重新部署它—您更改了负责处理文件的代码,您还必须提供包含不相关代码的整个DLL。然而,如果你有多个DLL,你只需要重新部署一个真正改变了的DLL。

除了版本控制系统(当超过一半的开发者在一个项目上工作时,这应该是必须的),你的组织允许每个人都改变基本库(或库)真是太疯狂了所有其他项目都依赖于此。这将很快演变成一片混乱

在我的店里,只有一两个人可以在那里换东西。这些人是最有技能和最有价值的同事


对于库中存在的功能细分,我不关心大型DLL。诚然,即使我们更改了一点代码,我也需要重新分发所有内容(当您的代码成熟且经过良好测试时,这种情况很少发生),但跟踪为该项目或该项目提供的每个dll的成本超过了除版本控制系统外的单个dll的成本,(当超过一半的开发者在一个项目上工作时,这应该是必须的),你的组织允许每个人都改变其他项目所依赖的基础库(或库)是非常疯狂的。这将很快演变成一团

在我的店里,只有一两个人可以改变任何东西,而这些人是最有技能、最有价值的同事

对于库中存在的功能细分,我不关心大型DLL。事实上,即使我们更改了一点代码(以及当您的代码成熟并经过良好测试时),我也需要重新分发所有DLL