First introduced in 2010, NuGet has been around for a few years now and many people and organizations are starting to realize that NuGet presents a great opportunity to improve and automate parts of the development processes. Whether you work on open source projects or in an enterprise environment, NuGet is here to stay, but you have a way bigger NuGet ecosystem at your disposal today.
Because the NuGet project is open source under a permissive Apache v2 license, other projects can leverage NuGet and companies can build support for it in their products. All of them extend the NuGet ecosystem to what it is today.
It is great to see how NuGet adoption is growing, especially when people come up with innovative ideas that facilitate our work even further. And if any of you has a way to improve the NuGet tools, whether the Outercurve, Microsoft or any other NuGet-based product, then please tell them about your ideas. Report defects, log feature requests, provide feedback, write documentation or submit a pull request and experience eternal gratitude from an entire community.
The NuGet project provides a free, open source package management system for .NET and consists out of a few client tools (NuGet Command Line and NuGet Visual Studio Extension) and the official NuGet Gallery hosted at http://www.nuget.org. Combined, these tools and the gallery form the NuGet project, governed by Outercurve Foundation and part of the ASP.NET Open Source Gallery.
Most NuGet client tools are based on the cross-platform
NuGet.Core project. If you want to build your own NuGet client, your best bet is to fetch the NuGet.Core project's sources from Codeplex, or to run the following command in the Package Manager Console to install the NuGet.Core package:
This is a command line wrapper around NuGet.Core.
More info: NuGet Command Line Reference
To create a basic NuGet server and point it to a local folder or network share, create a new ASP.NET application and run the following command in the Package Manager Console to install the NuGet.Server package:
More info: Install the NuGet.Server package
To set up your own NuGet Gallery, fetch the sources from GitHub and follow the instructions at https://github.com/NuGet/NuGetGallery.
NuGet Concierge is a package recommendation service: upload a packages.config file and NuGet Concierge will recommend you packages you may find useful.
Microsoft has extensively contributed to the development of the NuGet project. All contributions made by Microsoft employees are also open source and are donated (including copyrights) to the Outercurve Foundation.
You can download this Visual Studio extension using the Visual Studio Extension Manager or directly from the Visual Studio Gallery at http://visualstudiogallery.msdn.microsoft.com/4ec1526c-4a8c-4a84-b702-b21a8f5293ca.
You can download this Visual Studio extension using the Visual Studio Extension Manager or directly from the Visual Studio Gallery at http://visualstudiogallery.msdn.microsoft.com/27077b70-9dad-4c64-adcf-c7cf6bc9970c.
WebMatrix 3 also has a NuGet Package Manager Extension which you can download using the built-in extension manager or directly from the WebMatrix Extensions Gallery at http://extensions.webmatrix.com/packages/NuGetPackageManager/.
One of the developers of the core NuGet team at Microsoft, Luan Nguyen, created a great graphical tool to work with NuGet packages. The GUI allows you to very easily create, publish, download and inspect NuGet packages and their metadata.
MyGet is a NuGet server that allows you to create and host your own NuGet feeds. It is hosted on Windows Azure and has a freemium offering, meaning you can use it for free (within the constrains of the free plan) or subscribe to one of the paying plans if you require more resources or features. More info at https://www.myget.org.
Chocolatey.org is a system-level package manager for Windows based on NuGet, allowing you to search and install software components on your system, even unattended. Looks very promising and definitely something to keep an eye on!
SymbolSource is a hosted symbolserver that integrates with NuGet and is configurable in Visual Studio, allowing you to debug NuGet packages by downloading the symbols and sources on-demand.
The CoApp project originally aimed to create a vibrant Open Source ecosystem on Windows by providing the technologies needed to build a complete community-driven Package Management System, along with tools to enable developers to take advantage of features of the Windows platform.
The project has pivoted to mesh with the NuGet project and the collaborative result is visible in NuGet 2.5 where support for native packages was first introduced. The CoApp project is still building additional tools to enhance C/C++ support in NuGet.
ProGet is an on-premise NuGet server with a freemium model that also provides integration with the Inedo BuildMaster product.
BoxStarter is another cool project leveraging NuGet and Chocolatey to quickly set up development environments.
More info: http://boxstarter.codeplex.com/documentation
SharpDevelop was amongst the first IDEs other than Visual Studio to support NuGet.
Xamarin Studio and MonoDevelop also have a NuGet extension, built on top of a custom build of the NuGet.Core.dll and a custom build of Microsoft's XML Document Transformation (XDT) library.
TeamCity has a few build steps specifically designed to deal with NuGet package consumption, creation and publication. In addition, it also comes with a built-in NuGet feed collecting all packages produced in your build artifacts.
AppVeyor is Continuous Integration service for Windows developers to securely build and test code in parallel and deploy successful bits to on-premise or cloud environments. Every AppVeyor account comes with a private NuGet feed aggregating packages from all build artifacts and supporting publishing of your own packages.
Artifactory is a repository manager with built-in support for various artifacts, including NuGet packages.
Nexus is another repository manager with built-in support for NuGet and they even provide a "What is NuGet for Java Developers" on their blog.
NuGet Server is a fully functional NuGet server you install as a Windows service. Purchase for $5 US, download and double click the installer. NuGet Server is basically a wrapper of the NuGet.Server package, but installed through a wizard. NuGet Server is distributed with its own web server, so you don't need IIS.
More info: http://nugetserver.net/
scriptcs offers a cross-platform scripting environment for authoring C#. Scripts can be created via a text editor and executed or code can be executed interactively in the scriptcs [REPL] (https://github.com/scriptcs/scriptcs/wiki/REPL). scriptcs allows script authors to install NuGet packages and use them in their scripts. scriptcs also leverages NuGet for extensibility as [script packs] (https://github.com/scriptcs/scriptcs/wiki/Script-Packs) and [modules] (https://github.com/scriptcs/scriptcs/wiki/Modules) are installed as NuGet packages.
There are quite a few other tools and utilities building further on top of NuGet. Here's a list of what I've found interesting:
Using a new tool or technology usually comes with a learning curve. Luckily for you, NuGet has no steap learning curve it all! In fact, anyone can get started consuming packages in no time. Authoring packages however, and especially authoring good packages, as well as embracing NuGet in your automated build and deployment processes requires some research in order to get things right.
The following pointers should help you get the maximum out of NuGet:
NuDoq provides the missing link between straightforward access and updates to NuGet packages, and their corresponding API documentation.
NuDoq regularly polls the NuGet.org gallery server for the latest package updates, unpacks and processes the library documentation files, and update the site accordingly.
If you have a NuGet ecosystem project that would be a valuable addition to this page, please feel free to submit a pull request with an edit to this page.