Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

.NET Package Management

What are the current offerings for .NET package management. Which are you using and what are the pros and cons?

Some examples out there today are:

  • Nu
  • OpenWrap

For the avoidance of doubt, I'm referring to package management systems such as gem, apt-get, and dpkg.

like image 426
Drew Noakes Avatar asked Sep 04 '10 12:09

Drew Noakes


People also ask

What is .NET package?

NET. Packages are basically compiled library with some descriptive metadata. NuGet is an essential tool for any modern development platform is a mechanism through which developers can create, share, and consume useful code.

What is .NET default package manager called?

NuGet is the package manager for .NET. The NuGet client tools provide the ability to produce and consume packages. The NuGet Gallery is the central package repository used by all package authors and consumers.

Does Visual Studio have a package manager?

The Package Manager Console in Visual Studio uses PowerShell commands to interact with NuGet packages. You can use the console when there's no way to do an operation through the Package Manager UI. You can also use dotnet CLI or NuGet CLI commands in the console.

Is NuGet owned by Microsoft?

NuGet was created in 2010 (under the name “NuPack”) by the Outercurve Foundation, a non-profit founded by Microsoft. The goal of this foundation was to "enable the exchange of code and understanding among software companies and open source communities." The Outercurve Foundation was a precursor to the current .


3 Answers

NuGet (formerly NuPack) is a free, open source developer focused package management system for the .NET

  • Introducing NuGet package manager (Phil Haack)
  • Introducing NuPack Package Management for .NET (Scott Hanselman)
like image 196
Julien Hoarau Avatar answered Oct 20 '22 20:10

Julien Hoarau


Another package manager that is mostly dead nowadays is Horn. Even though development has mostly stopped now, I think it is/was an interesting project.

It took an interesting approach to package management, based on compiling from source code first instead of relying purely on binary packages, in a similar way to gentoo portage's ebuild. This gives the developer ultimate freedom to mix and match library versions (as opposed to waiting for project mantainers to officially update their dependencies), but as they say "with great power comes great responsibility", it is also up to the developer to make sure that the stack he compiles does work.

Of course you could play it safe and instead of building everything from trunk you could fix dependencies versions in your descriptors (for example, there is one descriptor for Castle Windsor trunk and another for Windsor 2.1).

For those that didn't want to build everything from source (which is naturally a very slow process), there was a server at hornget.net that acted as a continuous integration server and provided binary packages.

like image 38
Mauricio Scheffer Avatar answered Oct 20 '22 19:10

Mauricio Scheffer


Since you referred to package management systems that are geared towards the machine, I thought I would mention chocolatey, which is like apt-get but for Windows.

FYI: I am one of the Nu/NuGet guys and I invented chocolatey for what I didn't see come over from Ruby Gems when we switched to NuGet (which were the executable type gems, NuGet is really for libraries and source code, not the products/tools/apps that come out on the other side of source). Since then chocolatey has grown to support PowerShell execution which allows you to do just about anything on Windows.

like image 42
ferventcoder Avatar answered Oct 20 '22 19:10

ferventcoder