.NET Package Management with NuPack (finally)

Nupack-logoOne of the key things that a software developer can do to make their code easy to maintain is ensure that it is relatively easy to compile and run their code on a fresh workstation. This can sometimes be quite difficult given the complex dependencies that any piece of code might require from databases to third-party libraries.

This week there was the announcement of NuPack (bundled with the beta of ASP.NET MVC 3.0). The .NET community is entering a new chapter in open-source/vendor collaboration with the release of NuPack via the Outercurve Foundation (formerly CodePlex Foundation). The cool thing about this is that NuPack directly contributes to solving one of those key maintainability problems for software developers – managing external dependencies.

NuPack is a package manager for the .NET platform, it allows developers to browse for dependencies to include in their own projects and perform the necessary actions to install, update them and even remove them. NuPack is one of the critical ingredients for what I would like to call GLF5 (Get-Latest F5) compliance.

Some History

NuPack is a collaboration between Microsoft, the members of the Nubular open source project and Outercurve Foundation. Nubular was an extension to the RubyGems infrastructure which supported the deployment of .NET dependencies, NuPack removes the Ruby dependency and in the process seems a better fit for pure .NET developers (just like RubyGems is a better fit for pure Ruby developers).

Some people are likely to be critical of Microsoft coming to the party late on the package manager front and displacing the efforts of some others who have been working to solve this problem independently of the software giant. Some of the other projects (in addition to Nubular) include:

  1. ngems
  2. OpenWrap (by Sebastien Lambla)
  3. hornget
  4. … many more.

Whilst these were all good attempts, ultimately I think that they would have failed to get broad adoption because they lacked vendor support. The kind of vendor support which makes sure that the NuPack component gets bundled with future versions of Visual Studio and into the hands of every .NET developer around the world.

Where Next

NuPack still has a ways to go before it does everything that developers need from a package management perspective, but being an open source project you can get involved. And I think this is the .NET communities first real chance to get traction solving the package management problem.

I’m going to be looking through my various open source projects to figure out what makes sense to throw into a NuPack package. One of the things that it will be important for developers to get across if they start making packages is the importance of Semantic Versioning. This is something the Nubular guys were across (and picked up from the RubyGems community) and which I’d love to see the .NET community adhere to as well.


2 thoughts on “.NET Package Management with NuPack (finally)

  1. @NeilRobbins

    Bit much to use the past tense with OpenWrap. Horn, maybe, given their discussions the other day. OpenWrap though is most certainly not in the past & I think will remain/become the premier option for developers. It won’t get the widespread awareness which NuPack is likely to enjoy, or perhaps even the adoption level, for the reasons you give. But don’t write off OpenWrap just yet. As you can see, Seb has been checking in changes today (such as compatibility with the NuPack package format) http://github.com/openrasta/openwrap.

  2. Pingback: NuPack is now NuGet! « notgartner

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s