Without a doubt it has profoundly changed the way we work with external libraries and dependencies in our projects here at Red Jungle.
To quote the Nuget codeplex site:
NuGet is a free, open source developer focused package management system for the .NET platform intent on simplifying the process of incorporating third party libraries into a .NET application during development.
There are a large number of useful 3rd party open source libraries out there for the .NET platform, but for those not familiar with the OSS ecosystem, it can be a pain to pull these libraries into a project.
NuGet automates all these common and tedious tasks for a package as well as its dependencies. It removes nearly all of the challenges of incorporating a third party open source library into a project’s source tree.
In effect, what Nuget does is to allow a developer to (either via command line console, or through a GUI – as shown below) find and add packages [such as libraries, tools, etc.] to projects, in a profoundly seamless and simple way. In other words, a feature which was long overdue!
When a package is added, Nuget will download the package, extract it, copy the files to their correct locations within your project structure and automatically make whatever changes are needed to your project, such as adding references and even modifying your .config files appropriately.
Nuget will even keep track of when a new version of each package is available, and allow you to upgrade with a single command. Le
Let’s take ELMAH as an example. It’s a fine error logging utility which has no dependencies on other libraries, but is still a challenge to integrate into a project. These are the steps it takes without NuGet:
1. Find ELMAH
2. Download the correct zip package.
3. “Unblock” the package.
4. Verify its hash against the one provided by the hosting environment.
5. Unzip the package contents into a specific location in the solution.
6. Add an assembly reference to the assembly.
7. Update web.config with the correct settings which a developer needs to search for.
And this is for a library that has no dependencies. Imagine doing this for NHibernate.Linq which has multiple dependencies each needing similar steps. We can do much better!
Since its initial beta release back in October 2010 (originally named NuPack) the Nuget project has been in continuous development and has rapidly improved at each stage; it has now become part of our ‘must have’ tooling support.
For insight into the Nuget project and its development it’s worthwhile reading through Phil Haack’s previous blog posts.
Download a trial of Visual Studio.
About the author
Phil Gale is a Software Architect and Graphic Designer with over a decade of hands on experience in the web and software industry. He is a director at Red Jungle where they make fantastic software with exceptional user experiences. You can catch him twitter at @redjungle and on Geekzone as well.
Other related posts:
Recommended documentation add-on for Visual Studio 2010: GhostDoc
Getting Started with Visual Studio LightSwitch 2011