使用通用/实用程序库

在我帮助的公司,我们有一个“实用程序”项目,基本上我们构建的所有应用程序都会引用该项目。 它有很多点,如 NullHelpers、ConfigSettingHelpers、Common ExtensionMethods 等。

我们的工作方式是,当我们希望创建一项新任务时,我们从资源控制中获取工作的当前变体,将其添加到解决方案中,然后从添加到解决方案中的任何新项目中引用该项目。

这实际上运行良好,但是在某些情况下,个人对通常的任务进行了“重大更改”,这对他们有帮助,但对其他人没有好处。

我一直在想,与其将典型集合添加为项目参考,我们应该开始将典型集合建立为独立的 dll,并发布不同的版本以及针对特定工作的特定版本,以便可以进行更改对使用公共库的其他项目没有风险。

说了这么多,我很想看看其他人如何参考或利用他们通常的收藏。

3
2022-06-07 15:16:00
资源 分享
答案: 3

我们在源代码控制中使用分支; 每个人都使用 head 分支,直到他们发布。 当他们分支发布时,他们也会分支公共实用程序工作。

此外,我们的实用程序项目有自己的单元测试。 这样,其他团队可以知道他们是否肯定会损坏其他团队的构造。

显然,我们仍然会定期遇到您提到的问题。 然而,当一个小组签署了一个破坏另一个团队的修改时,这通常意味着该方法/对象的合同在某个地方被损坏了。 我们将这些视为提升通用实用程序任务风格的可能性或者至少要编写更多设备测试:/

3
2022-06-07 17:19:31
资源

我有过精确的完全相同的问题!

我曾经使用工作推荐,但一切似乎都很糟糕,正如你所说,你有很多工作都在引用它。

我现在编译为一个 DLL,并在第一次构造之后将 DLL 引用的 CopyLocal 住宅或商业属性设置为 false (否则我发现它可以覆盖子任务并且也会变得一团糟)。

我认为理论上它应该是 GAC 的,但是如果它的问题正在改变很多(就像我的那样),这可能会变得很麻烦。

1
2022-06-07 15:40:27
资源

这正是我们正在做的事情。 我们有一个实用项目,它有一些非工作特别有益的功能。 我们手动增加变体(小),在 Release 变体中构建项目,签名并将其放置到共享位置。

然后人们使用特定版本的收藏 .

如果在某些特定工作中执行了一些有价值的方法,这些方法可以直接进入主要的实用程序任务,我们会将它们放入项目中的一个独特的助手类中,并将它们记为可行的实用程序候选者(easy// TODO) . 在项目结束时,我们评估前景以及如果他们坚持,我们将他们重新安置到专业收藏 .

破坏性修改是不允许的,如果需要,我们还将方法和类标记为 [过时]。

然而,这并不重要,因为我们会在每个版本中增加版本。

希望这会有所帮助。

5
2022-06-07 15:38:51
资源