6

首先,我想说的是,我总体上喜欢 nuget,并且在许多小型项目中经常使用它,尤其是在尝试新事物时。

但是,我认为 Nuget 不适合我的主要项目/环境的原因有很多:

  • 代码被部署到一个安全的环境中——因此需要高度的监督
  • 这是一个相当大的项目,有大约 10 名开发人员跨越数年 - 通过快速添加包节省的时间可以忽略不计。
  • 我对库自动更新不感兴趣
  • 我想知道在采用新库时进行了哪些配置,以及除了代表我确定的任何“合理默认值”之外我还有哪些其他选项。

简而言之,我想知道我的项目会发生什么,而 Nuget 在“帮助我”方面过于激进,我无法忍受。

因此,当我创建一个支持 MVC 和 WebAPI 的新“空”asp.net 项目并发现自己配置了 8 个 nuget 包时,我真的很失望。这些文件中的大部分都是浪费的(我真的不需要 JSON.Net 用于每个版本的 .Net 框架,但是谢谢)。

为了在没有 nuget 的情况下获得类似的设置,我执行了以下操作:

  1. 隐藏 web.config 的副本
  2. 将我感兴趣的所有 DLL 复制到一个新文件夹中
  3. 卸载所有nuget包
  4. 引用了我想要的 DLL
  5. 重新添加了必要的 web.config 位

啊,我们走了。好多了。

然后我继续并右键单击控制器文件夹>添加控制器并右键单击视图文件夹和>添加视图。

令人费解的是,nuget 包文件又回来了,并通过添加“帮助了我”

  • jQuery
  • jQuery 验证
  • jquery 不显眼的验证。

谁说我想使用 jquery 验证?!

所以我的问题是:我如何阻止这种疯狂?如果我不想使用 nuget,我是否注定要在 VS 工具上蹑手蹑脚?

或者,我也会接受一个令人信服的论点,解释说我对项目中的内容有不必要的保留,应该只喝 Kool-Aid。

4

1 回答 1

1

我看不出您不想使用 NuGet 的原因。这些是我对此的看法:

代码被部署到一个安全的环境中——因此需要高度的监督

这与 NuGet 无关。如果您需要高级别的监督,那么您需要一个良好的分支和发布策略以及您选择的源代码控制。代码审查政策等

这是一个相当大的项目,有大约 10 名开发人员跨越数年 - 通过快速添加包节省的时间可以忽略不计。

NuGet 并不是要快速添加依赖项。它是关于有效地管理您的依赖关系。所以问题是,你会有任何依赖吗?如果是,那么您为什么要拒​​绝使用可以帮助您以不太可能犯错的方式管理它们的工具?

我对库自动更新不感兴趣

NuGet 不会自动更新您的库。

但是,它会在一个位置向您显示所有可用更新,您可以选择要接受的更新。这是一个很棒的功能,我不明白为什么会打扰您。老实说,如果您不使用 NuGet,您更有可能错过非常重要的更新。如果 Microsoft 修复了某个 MVC 库中的关键安全问题怎么办?

NuGet 将

  • 向您展示可用的更新
  • 帮助您在所有依赖更新库的地方应用更新
  • 帮助您为目标项目选择正确的版本

我想知道在采用新库时进行了哪些配置,以及除了代表我确定的任何“合理默认值”之外我还有哪些其他选项。

这与 NuGet 无关。无论您是通过 NuGet 还是手动使用第 3 方库,在这两种情况下,您都必须阅读该库的文档,以便对如何配置项目做出明智的决定。

唯一的区别是,通过安装 NuGet 包,它更有可能提供开箱即用的合理配置。所以真的,你只能从中受益。如果你想改变你的配置,那么你改变哪个默认值都没有关系,对吧?

于 2015-09-04T15:50:05.103 回答