The Evolution of Package Management for .NET

The thing to realize is that the destination is never the most important part of the journey. It’s the journey itself.

When you start a journey, you are never fully sure where it is going to end up. We started the journey down package management for .NET three times with Nu[bular] (we in this context means the nu team, not me in particular, I was only involved in the last reboot) before we decided to try an existing infrastructure with Ruby Gems.  I have always said that I would use the best tool out there, even if it is not one that I’ve been involved in building.

nubular_npPersonally I’ve always felt that competition is important to drive out the best features and make all products involved better. The community benefits with competition. If you’ve spent any time with me or listened to me on twitter, you can see that I support the idea of Noodle (Bundler/gems for .NET), Horn and OpenWrap. Each of them solves a similar problem in a different way. Each of them has great things about them. Having choices is good. Not everyone likes things the same way.  I like my eggs over easy. I’m not going to force the way I like my eggs when I cook for you, but I’m going to cook them that way for me.

It’s important to realize that the destination is never the most important part of the journey. It’s the journey itself. Two months ago we decided to make Nu with Ruby and use the gems infrastructure. It was like the stars aligned – Ruby Midwest Conference was next door in KC, so we got to spend some time with Nick Quaranto, one of the guys behind GemCutter, also known as RubyGems.org. At that time we discussed at length what our plans were and got a blessing to park gems on their server while running the Nu experiment. Many of our friends and colleagues had also been pining for some sort of package management so everyone was quick to jump onto a proven infrastructure that is super easy to use. When we introduced it, it’s amazing how many people brought the awesome to Nu/Gems.

Nubular

Nu Is Awesome! Being part of the last two reboots I have learned quite a bit about package management and that knowledge and the knowledge that everyone else has learned can be applied to any package management tool. There have been so many great ideas from those in the community and lots of great questions from everyone. Those questions and answers apply to other package management tools.

Having something that builds on an existing infrastructure helped us bootstrap so fast that we were allowed to start working on the interesting features immediately. This has been helpful in getting us to the .NET intricacies and finding ways to solve them. I’ve been blessed to be part of this project.

Microsoft Introduces Package Management – NuPack

Nupack-logoFrom the front page of CodePlex “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.” NuPack is a collaborative project in the Outercurve Foundation.  It is an Open Source Project, and truly the first of it’s type, with Microsoft Employees working full time on it and open source developers contributing at the same time. The core team is not just Microsoft and that means the tool will have the influence of the community at large. This means that like the Orchard Project, you or I can contribute. Unlike the Orchard Project, you and I have an opportunity to contribute core features (given that the right conditions are met).

This is NOT the same Microsoft

No one had any idea that Nu was going to be so explosively popular when it came out two months ago. After all, we started it as an experiment to see if we could even do it. Years ago, Microsoft would have ignored what was happening in the community and just introduced what they were working on without seeming to try to really understand the needs of the community. They have been criticized again and again for appearing to follow a “not invented here” model. When they saw how successful our last reboot of Nubular was, they pulled us in to show us what they had been working on for four months prior to our last reboot and started asking for input on how they could ensure it meets the needs of the community.

But then Microsoft did something different. They made the project OSS and pulled in a few open source developers (including the Nu team) to both give feedback and contribute to the same codebase the full time MS employees are working with.

Make no mistake on the name. Microsoft renamed their tool from the codename NPack to NuPack to signify a merging of the community and what they were working on. Microsoft reached out to members of the community that have been involved with package management for feedback and support, including some that may be up in arms about Microsoft entering the arena.

Why is This Good For the Community?

Listen up Mr/Ms Open Source Provider, this is important for you.

Now let me take off my Nu/NuPack hat(s) for a minute and don my OSS (Open Source Software) provider hat. Let’s say you or I have a tool that we think is awesome and we want to get it into the hands of the community at large. In the .NET community, there is a largely untapped set of people that program in .NET that use Microsoft tools only. Most of them program at work using MS tools and go home and never look at Open Source alternatives (or even things OSS that have no Microsoft equivalent).

Most of this largely untapped audience only sees what Microsoft is doing and thus has never heard of your OSS tools. It’s like the iPhone4 vs HTC Evo video with the “I don’t care.” segment where one person is blind to better features of an alternative product.

Go ahead and watch, I’ll wait. I suggest headphones at work. And it’s funny. Really funny. So is the opposite take on HTC Evo vs. iPhone4.

So, back to the .NET community, you have these people that are blind to this whole community of open source tools for some reason or another. Package management itself is geared toward free/OSS tools and libraries, and having Microsoft behind it will start to open the eyes of this largely untapped community.

This means that you and I, working on these free/OSS tools that are great have more of an opportunity to fall into the hands of the full .NET community. That means that a larger user base could happen. That means more feedback and better tools as a result. That means… …and this is me REALLY dreaming at the moment, Alt.NET could become the mainstream .NET.

What is the Future of Nu?

If you’re still with me, the big pink elephant is in the room and I have not yet addressed it.

So, NuPack is out, what is the future of Nu? What a great question! Nu will co-exist with NuPack for awhile. When NuPack reaches a certain point, it’s ultimately going to be Nu version 2. I personally will continue to be involved with both projects until I see that NuPack does bring at least the same level of awesome as Nu like it promises it will. I don’t know what the date of the awesome is, but I can tell you that we will all realize when it is.

My support lies with the community and when the community is ready to shift, it will make sense to sunset Nubular. But it’s open source, so others could pick it up and take it in whole new directions. :D

Thank You

Thanks to everyone for the support! You have proven that the .NET-o-sphere needs package management and you have been willing to step up and give your time and efforts to help bootstrap the community. I am blessed to have been part of this thus far and am excited to see where the journey goes next.

On a side note, the herding code podcast was done a few hours after Microsoft first showed us NuPack and started asking for feedback. That was August 11th. We’ve continued to bring the awesome in Nu and have had help from quite a few people including Bil Simser (@bsimser), MIchael Carter (@kiliman) and Brendan Erwin (@brendanjerwin).

Over the next few months we are going to see a transition in the community. Certain people out there are not going to be happy about Microsoft entering the package management market, but most people I have spoken to think it will ultimately make the community better. I think most of us have the same opinion. It’s about frickin’ time. And with Microsoft behind it, the possibility for you and I to get our open source tools into the hands of the .NET community at large will make the community better!

Related Posts / More Information

NuPack – http://nupack.codeplex.com

Scott Guthrie - http://weblogs.asp.net/scottgu/archive/2010/10/06/announcing-nupack-asp-net-mvc-3-beta-and-webmatrix-beta-2.aspx

Bil Simser - http://weblogs.asp.net/bsimser/archive/2010/10/06/unicorns-triple-rainbows-package-management-and-lasers.aspx

Phil Haack - http://haacked.com/archive/2010/10/06/introducing-nupack-package-manager.aspx

Scott Hanselman - http://www.hanselman.com/blog/IntroducingNuPackPackageManagementForNETAnotherPieceOfTheWebStack.aspx

David Ebbo - http://blogs.msdn.com/b/davidebb/archive/2010/10/05/introducing-nupack-the-smart-way-to-bring-bits-into-your-projects.aspx

Eric Hexter - http://www.lostechies.com/blogs/hex/archive/2010/10/03/nupack-net-package-management-and-much-much-more.aspx

Phil Haack on Channel9 - http://channel9.msdn.com/Shows/Web+Camps+TV/Web-Camps-TV-8-NuPack-with-Phil-Haack


Posted 10-06-2010 12:54 PM by Rob Reynolds
Filed under: , ,

[Advertisement]

Comments

Brian Donahue wrote re: The Evolution of Package Management for .NET
on 10-06-2010 2:19 PM

Personally, I am just happy to know you like over-easy eggs.  It reminds me of this: www.youtube.com/watch

Scott Bellware wrote re: The Evolution of Package Management for .NET
on 10-06-2010 5:20 PM

And yet, every one of these projects that have come at Microsoft's impetus over the past four or five years have never delivered on the promise of cultivating a stronger open source community.

I think you've done a stellar job here of outlining the potential best case scenario, but the very strong trend and track record suggests that it will simply redirect attention away from meaningful and timely innovation happening outside of Microsoft to lesser efforts happening within Microsoft. In that case, everyone loses except Microsoft, which gets to keep its customers' attention - even if productivity is less than its great potential.

I realize that you're excited for having been paid the compliment of Microsoft seeking your input, but you wouldn't be the first member of the Microsoft community to have been distracted by Redmond's flattery. I think you've made a terrific effort on your own work in package management, and I hope that you will return to it before a likely inevitability comes to pass yet again.

Time will tell, but my bets are on this being just another attention control effort on Redmond's part. The best that we can hope for is that the product will be as good as what the larger population outside of the Redmond campus are already doing and doing well. Unfortunately, and based on past performance, it's a long shot at best, and things don't bode well yet again.

And as always, there's already so much more productivity waiting to be realized for good web developers. I'm personally encouraged to see more .NET web devs realizing what's to be had on the other side of the fence and screwing up the courage to make the leap rather than constantly be undermined by Microsoft's sunk cost imperatives.

Rob Reynolds wrote re: The Evolution of Package Management for .NET
on 10-06-2010 5:54 PM

Scott, that's the nicest thing you've ever said to me online. :D

Hopefully time will tell. If things don't work out, we can move right back to #nuproj and this will have been a learning opportunity for all.

Nieve wrote re: The Evolution of Package Management for .NET
on 10-06-2010 5:56 PM

BTW- what would be the process for people with projects to put up a package out to the world via nupack?

In other words- what do I need to do if I want to see a pack of my favourite oss? nudge the people behind it or the nupack team?

Rob Reynolds wrote re: The Evolution of Package Management for .NET
on 10-06-2010 6:14 PM

@Nieve: Temporary feed for now -  nupackpackages.codeplex.com - create a fork and issue a pull request.

Nieve wrote re: The Evolution of Package Management for .NET
on 10-06-2010 6:44 PM

a bit confusing, looking at the how to contribute section (nupack.codeplex.com/documentation), it says "Please only contribute code which you wrote or have the rights to contribute", so wasn't too sure about creating packages...

nicolalozito.com wrote Ehy, something Nu(Pack) today!
on 10-07-2010 4:05 PM

Ehy, something Nu(Pack) today!

Rob Reynolds wrote re: The Evolution of Package Management for .NET
on 10-07-2010 4:19 PM

@Neive: The note you are seeing is a legal disclaimer for contributing code to NuPack, not for making packages.

grozeille wrote re: The Evolution of Package Management for .NET
on 10-10-2010 5:49 AM

Why nobody speak about REFIX ?

Rob Reynolds wrote re: The Evolution of Package Management for .NET
on 10-10-2010 10:28 PM

@grozeille: What is refix? That might be why.

Rob Reynolds - The Fervent Coder wrote AppHarbor - Azure Done Right AKA Heroku for .NET
on 02-16-2011 7:55 AM

Easy and Instant deployments and instant scale for .NET? Awhile back a few of us were looking at Ruby

About The CodeBetter.Com Blog Network
CodeBetter.Com FAQ

Our Mission

Advertisers should contact Brendan

Subscribe
Google Reader or Homepage

del.icio.us CodeBetter.com Latest Items
Add to My Yahoo!
Subscribe with Bloglines
Subscribe in NewsGator Online
Subscribe with myFeedster
Add to My AOL
Furl CodeBetter.com Latest Items
Subscribe in Rojo

Member Projects
DimeCasts.Net - Derik Whittaker

Friends of Devlicio.us
Red-Gate Tools For SQL and .NET

NDepend

SlickEdit
 
SmartInspect .NET Logging
NGEDIT: ViEmu and Codekana
LiteAccounting.Com
DevExpress
Fixx
NHibernate Profiler
Unfuddle
Balsamiq Mockups
Scrumy
JetBrains - ReSharper
Umbraco
NServiceBus
RavenDb
Web Sequence Diagrams
Ducksboard<-- NEW Friend!

 



Site Copyright © 2007 CodeBetter.Com
Content Copyright Individual Bloggers

 

Community Server (Commercial Edition)