构建通用实用程序库的最佳方法是什么?

时间:2008-10-06 23:49:36

标签: .net projects-and-solutions

我想知道构建可以在不同项目中使用的公共实用程序库的最佳方法是什么。我正在使用.Net和C#。

我应该为每个实用程序创建一个单独的项目,例如Logging,Authentication,Excel等,并将它们与依赖项一起单独发布,或者我是否应该将所有实用程序包含在一个公共utils程序集中以及所有捆绑的依赖项中,并且仅引用必要的依赖项在使用common utils的项目中?

4 个答案:

答案 0 :(得分:2)

我可能会想出你想要提供的功能(至少一般),然后围绕它定义逻辑命名空间层次结构。一旦你有了总体定义,你应该能够创建所有的库文件并构建它的模块化,这样你就没有一个庞然大物的“所有”库,而是可以拥有像你的文件/目录助手这样的东西。程序集“.dll”,你的数据库包装程序集“.dll”,你的UI组件程序集“.dll等。

答案 1 :(得分:1)

这取决于两件事。

首先,你要捆绑在一起的东西之间的关系是什么?将它们放在一起存放在库中是否有意义?

其次,使用模式是什么?如果它是一组与每个项目链接的标准实用程序,将它们组合在一起是有意义的,但如果您使用的是运行时插件样式模型,您可以在其中动态加载不同的模块以提供功能,则可能需要更多分离。

答案 2 :(得分:1)

我沿着创建主ProductivityLibrary的路线 - 是的,那是愚蠢的名称空间 - 只是发现我有一个我最常用的类的子集,以及设计模式的宏伟方案每次出现一系列想法时,都会重新编译--swiss-army-knife。为所有东西制作插件没有任何意义,因为它变得如此混乱。

构建解决一个问题的离散程序集 - 它更易于管理。

答案 3 :(得分:0)

我找到了一种在我的项目之间共享通用源代码和实用程序的好方法!在每个新项目中,我创建了一个“Junction Point”文件夹,指向同一个公共源文件的存储库。然后在Visual Studio的项目树中,我在我需要的文件上选择“显示所有文件”和“包含”。这真的很棒!简单而有力......

我没有在某些项目中使用各种代码的单片common.dll,而是添加了我真正需要的文件,而且我得到了一个没有大量松散dll的exe文件 - 文件。

另一个提示是使用相同的部分静态Utilities类来拥有不同的文件,例如EncryptionUtils.cs和NetworkUtils.cs。当代码可以从同一个静态类访问时,很容易从代码中找到它们。因为我只包含我真正需要的文件,所以我只在Utilities类中获得这些工具。