An overview of the NuGet ecosystem

3 minute read

Many people are starting to realize what an awesome tool NuGet really is. If you don't believe me, just take a look the statistics. Looking at the NuGet ecosystem out there, I figured it might be a good idea to summarize it in a blogpost, for those who are experiencing trouble trying to keep up. If you don't know where to start, check the overview below and head over to the NuGet documentation.

  • NuGet - The NuGet Visual Studio extension, available in the Visual Studio Gallery, comes with a nice integrated experience that makes managing NuGet packages as simple as adding a reference. You can customize its settings, you can perform most standard operations from a graphical user interface, and you can do more advanced stuff using the Package Manager Console. This PowerShell-enabled console is opening the door to Visual Studio automation and is an example of how NuGet can be so much more than just a package manager. Scaffolding is a great example of this.

  • NuGet Gallery - The nuget.org website allows you to create an account and get an API key to start publishing packages to the official NuGet feed. You can also query the NuGet Gallery and find more information about packages and their creators. As a package producer, this is also the place where you will find download statistics.

  • NuGet Package Explorer - This nice and handy tool allows you to open, create, publish and validate NuGet packages from within a graphical user interface. It supports plug-ins allowing you to extend its functionality even further. If you don't feel comfortable playing around with the NuGet manifest XML file (*.nuspec), then this is the right tool for you.

  • NuGet Command Line - The NuGet command line tool allows you to perform operations against NuGet repositories or Visual Studio solutions/projects. It comes in really handy in continuous (package) integration scenarios. The NuGetPowerTools, which will become part of NuGet itself, makes good use of it.

  • NuGet.Server package - Allows you to set up your own NuGet server fast and easy and exposes a single feed. Another way is to create your own NuGet Gallery.

  • MyGet - MyGet makes package management even easier, by providing you with NuGet-as-a-Service. Log in, create a feed and start uploading or consuming your packages right away! No need to set up a NuGet server yourself, and you benefit from enhanced security and accessibility through the use of the Windows Azure Access Control Service.

  • Chocolatey - Chocolatey is moving the solution-wide package manager to new frontiers: NuGet as a system-wide package management tool! Looks promising and is definitely something to keep an eye on.

  • Octopus - Octopus is a convention-based solution using NuGet as a protocol for automated deployments. Another example of thinking outside of the box and putting NuGet in a new perspective.

  • NuGetFeed - NuGetFeed allows you to create a favorites list for NuGet packages, allowing you to monitor them for updates. Great addition to the NuGet ecosystem in my opinion.

  • Windows Azure NuGetRole - Not really a tool, but a very cool (and working!) concept to push deployments to Azure using NuGet.

  • NuGet integration in JetBrains TeamCity - If you're using TeamCity, you'll get all the NuGet goodness built-in!

  • NuGit - NuGit is a new kid in the blok: distributing opensource projects faster using NuGet integration with Github

  • Artifactory - Artifactory is a well-known repository manager which now also supports NuGet packages.

  • Sonatype Nexus Professional - Nexus is another repository manager that now embraces NuGet, and they even have a nice introduction to NuGet for Java Developers on their blog.

  • OpenWrap - OpenWrap is an alternative package manager compatible with NuGet remotes.

  • NuGetMustHaves - The NuGetMustHaves.com website provides a nice categoric overview of popular must-have NuGet packages

  • NuGet Server in Java - This is a Java implementation of a NuGet Server.

  • ProGet - By Inedo, another on-premise NuGet repository tool.

  • NuGetFight - NuGetFight allows you to enter a NuGet packages battle on a NuGet feed (e.g. NuGet Gallery, Chocolatey, MyGet). Can't decide between two packages? Fight!

It is great to see how NuGet adoption is growing, especially when people come up with innovative ideas that facilitate our work even further. I'm convinced a package manager such as NuGet should be part of any development environment. If you're not using NuGet yet, consider giving it a try and find out for yourself!

Leave a Comment