我想知道构建可用于不同项目的通用实用程序库的最佳方法是什么。我正在使用 .Net 和 C#。
我应该为每个实用程序(如日志记录、身份验证、Excel 等)创建一个单独的项目,并将它们与依赖项一起单独发布,还是应该将所有实用程序与捆绑的所有依赖项一起包含在一个通用 utils 程序集中,并且只在项目中引用必要的依赖项使用常用工具?
我想知道构建可用于不同项目的通用实用程序库的最佳方法是什么。我正在使用 .Net 和 C#。
我应该为每个实用程序(如日志记录、身份验证、Excel 等)创建一个单独的项目,并将它们与依赖项一起单独发布,还是应该将所有实用程序与捆绑的所有依赖项一起包含在一个通用 utils 程序集中,并且只在项目中引用必要的依赖项使用常用工具?
我可能会弄清楚你想要提供什么功能(至少一般来说),然后围绕它定义一个逻辑命名空间层次结构。一旦你有了总体定义,你应该能够创建所有的库文件并构建它的模块化,这样你就没有一个庞然大物的“一切”库,而是可以拥有像“你的文件/目录助手”这样的东西程序集”.dll、“您的数据库包装程序集”.dll、“您的 UI 组件程序集”.dll 等。
这取决于两件事。
首先,你捆绑在一起的东西之间有什么关系?把它们放在图书馆里有意义吗?
二、使用模式是什么?如果它是与每个项目链接的一组标准实用程序,那么将它们放在一起是有意义的,但如果您使用的是运行时插件样式模型,在其中动态加载不同的模块以提供功能,您可能需要更多的分离。
我已经走上了创建 Master ProductivityLibrary 的路线 - 是的,那是愚蠢的命名空间 - 只是发现我有一个我使用最多的类的子集,以及设计模式瑞士的宏伟方案 -每次出现一组想法时,总是重新编译军刀。为所有东西制作插件是没有意义的,因为它变得如此混搭。
构建解决一个问题的离散程序集 - 它更易于管理。
我发现了一种在我的项目之间共享通用源代码和实用程序的好方法!在每个新项目中,我都会创建一个“Junction Point”文件夹,指向相同的公共源文件存储库。然后在 Visual Studio 的项目树中,我在需要的文件上选择“显示所有文件”和“包含”。这真的很棒!简单而强大...
我没有使用包含在某些项目中可能没有任何用处的各种代码的单一 common.dll,而是添加了我真正需要的文件,并且我得到了一个没有大量松散 dll 文件的单个 exe 文件。
另一个技巧是让不同的文件具有相同的部分静态实用程序类,例如 EncryptionUtils.cs 和 NetworkUtils.cs。当它们都可以从同一个静态类中访问时,很容易从代码中找到这些实用程序。而且因为我只包含我真正需要的文件,所以我只能在 Utilities 类中获得这些实用程序。