【发布时间】:2012-10-11 17:12:31
【问题描述】:
我知道当我们想使用第三方组件时,像 NuGet 这样的包管理器可以帮助我们。
来自 Nuget Codeplex 页面:
NuGet 是一个免费的、开源的、专注于开发者的包管理 .NET 平台系统旨在简化流程 在将第三方库合并到 .NET 应用程序中 发展。
有大量有用的 3rd 方开源库出来了 有 .NET 平台,但对于那些不熟悉 OSS 的人 生态系统,将这些库拉入项目可能会很痛苦。
我们以 ELMAH 为例。这是一个很好的错误记录实用程序 它不依赖于其他库,但仍然是一个挑战 集成到一个项目中。以下是它采取的步骤:
Find ELMAH Download the correct zip package. “Unblock” the package. Verify its hash against the one provided by the hosting environment. Unzip the package contents into a specific location in the solution. Add an assembly reference to the assembly. Update web.config with the correct settings which a developer needs to search for.这是针对没有依赖关系的库。想象一下这样做 对于 NHibernate.Linq 它有多个依赖项,每个需要 类似的步骤。我们可以做得更好!
NuGet 将包的所有这些常见且繁琐的任务自动化为 以及它的依赖关系。它消除了几乎所有的挑战 将第三方开源库合并到项目的 源码树
这些步骤是我们在设置项目时执行的简单任务。它仅用于自动添加 3rd 方组件并确定配置文件中出错的机会?或者它有更多的责任!?
【问题讨论】:
-
我不确定您在问什么,您是否希望它做其他事情?
-
我认为像 Nuget 这样的东西想要解决的问题不是什么大问题!在某些情况下,它会增加团队工作的复杂性,尤其是在与初级程序员打交道时。
-
你需要它,因为它可以做所有这些事情......?
-
一些初级程序员可能会觉得三元运算符很复杂,但这并不意味着开发人员应该避免使用它...
-
IMO NuGet 简化了整个引用,而不是让它变得更复杂。你确定问题出在初级程序员身上吗?对于各种各样的事情,我现在可以让他们安装一个神奇地解决问题的包,一旦他们完成了它,他们就可以学习它背后的“魔法”,但他们要记住的东西比如何安装要少得多各种软件包或对配置进行某些更改。
标签: visual-studio nuget package-managers