NuGet is a topic that I have been hearing about for a while, especially from Clark Sell. I figured it was about time to take a dive into it and see what it was all about.
The description of NuGet makes it seem like magic to add dependencies to your code projects. Of course there is always an explanation for how the trick works. In this case it is by using a package and a definition of how resources should be added to your project.
One of the interesting aspects of using NuGet is the UI. The fact that you can get a list of NuGet packages allows you to find things that you may not have used before. Add to that the fact that packages could be located on the web or on a corporate server only increases its power.
Packages are actually zip files which seems to be the standard these days. After spending a lot of time with OOXML I have learned that this is a handy approach. When you install one of these packages that information is added to the packages.config file in your solution which allows you to not have to check in all of your dependencies. A developer can pull down the required dependencies simply by going through this configuration file.
There are a variety of things that a NeGet package can do. On top of adding assemblies they can also modify your application’s configuration file so that you don’t have to make these changes by hand.
Lastly, you can create your own packages and deploy them. This is a great way to create consistency across your company or to help support your customers.
To get started with NuGet head to NuGet.org. There is also an interesting video here.