Wednesday, October 06, 2010

I “Nu” I needed you… NuPack v1 Developer Preview/CTP 1 Released (Think, “Where have you been all my dev life… finally an package management system/installer for .Net”)

Scott Hanselman - Introducing NuPack Package Management for .NET - Another piece of the Web Stack

“Microsoft's been filling out the Web Stack with more and more right-sized LEGO pieces lately, and today ScottGu announced the developer preview of NuPack. It's a piece of the stack that's been notably missing for years and after using it for a while now, I'm not sure how I lived without it.

NuPack is a package management system for .NET. The goal of NuPack is to make the process of incorporating third party libraries into your solutions as simple as possible.

NuPack - The Idea

Here's how it works. Notice the "Package Manager Console" window at the bottom of Visual Studio 2010. That's PowerShell. (It'll be in View | Other Windows for this release)

image
[GD: I couldn’t snap the entire post, it’s a long one and a must read so please click through]

…”

Phil Haack - Introducing NuPack Package Manager

NuPack is a free open source developer focused package manager intent on simplifying the process of incorporating third party libraries into a .NET application during development.

After several months of work, the Outercurve Foundation (formerly CodePlex Foundation) today announced the acceptance of the NuPack project to the ASP.NET Open Source Gallery. This is another contribution to the foundation by the Web Platform and Tools (WPT) team at Microsoft.

Just to warn you, the rest of this blog post is full of blah blah blah about NuPack so if you’re a person of action, feel free to go:

Now back to my blabbing. I have to tell you, I’m really excited to finally be able to talk about this in public as we’ve been incubating this for several months now. During that time, we collaborated with various influential members of the .NET open source community including the Nu team in order to gather feedback on delivering the right project.

What Does NuPack Solve?

The .NET open source community has churned out a huge catalog of useful libraries. But what has been lacking is a widely available easy to use manner of discovering and incorporating these libraries into a project. …

image…”

CodePlex - NuPack

Nupack-logo

NuPack is a free, open source developer focused package management system for the .NET platform intent on simplifying the process of incorporating third party libraries into a .NET application during development.

There are a large number of useful 3rd party open source libraries out there for the .NET platform, but for those not familiar with the OSS ecosystem, it can be a pain to pull these libraries into a project.

Let’s take ELMAH as an example. It’s a fine error logging utility which has no dependencies on other libraries, but is still a challenge to integrate into a project. These are the steps it takes:

  1. Find ELMAH
  2. Download the correct zip package.
  3. “Unblock” the package.
  4. Verify its hash against the one provided by the hosting environment.
  5. Unzip the package contents into a specific location in the solution.
  6. Add an assembly reference to the assembly.
  7. Update web.config with the correct settings which a developer needs to search for.


And this is for a library that has no dependencies. Imagine doing this for NHibernate.Linq which has multiple dependencies each needing similar steps. We can do much better!

NuPack automates all these common and tedious tasks for a package as well as its dependencies. It removes nearly all of the challenges of incorporating a third party open source library into a project’s source tree. Of course, using that library properly is still up to the developer.

Here's a small sampling of what NuPack can do:

image…”

In a word, Cool! The V1 CTP1 vsix is downloadable from the CodePlex site, as is the source too… :)

Here’s a shot of the Add Package Reference dialog (I dig that they reused Extension Manager UI);

image

NuPack makes it almost TOO easy to use third party components. I don’t know if they could make it easier or more convenient. This SERIOUSLY takes out the pain of using these projects/packages.

I also think it’s cool that the package sources can be user driven. Think about internal package sources, or third-party lists, etc.

image

 

Also see:

No comments: