This value is hidden in the open: a package manager such as NuGet helps you deal with software dependencies using automation. Many people assume that it is intended only for open source or third-party components, but you can also use it for your own internal packages.
The great thing about NuGet (to name a few benefits):
- NuGet encourages component reuse because you implicitly rely on actual βreleasesβ (even in the case of a pre-release) instead of branching sources
- you can get rid of binaries that inflate your VCS repositories (package recovery function)
- it makes package developers think about how the package will be used, and does they leave work with configuring the component during package installation (who knows better how to configure the package than the creators of the package?). As an example, consider the ELMAH example.
- Automatically creating and publishing packages in the package repository is a form of continuous delivery (for software components). OctopusDeploy even takes this even further and allows you to pack all the web sites ready for deployment.
- NuGet encourages and sometimes leads you to follow some ALM best practices. For instance. the package has a version, so you need to think about your version control strategy (for example, SemVer.org).
- NuGet integrates with SymbolSource.org (which also has a Community version for customization): this makes it easy to debug released packages without having to send this information all the time
- having one or more package repositories makes it easier for an organization to maintain a dependency matrix or even create an inventory of OSS licenses that are used by several projects.
- NuGet notifies you of available package updates.
- Creating packages makes people think about component architecture (all dependencies must also be packaged).
- Package dependencies are automatically resolved (so you cannot forget them)
- NuGet is smart enough to add assembly binding redirects if necessary
The list above is not exhaustive, but I hope that I have covered the key benefits in this answer. I am sure there are more of them.
Cheers, Xavier
source share