In this episode of Herding Code, the guys talk to David Ebbo, an architect on the Microsoft Web Platform and Tools team, about NuGet, a new open source package management system for the .NET platform.

  • David describes the history of NuGet - how NuGet evolved from a web-based feature for use in ASP.NET Web Pages and the inspiration from a web-based database admin tool by David Fowler.
  • Jon asks about how NuGet is related to the ASP.NET Web Admin site which was included in ASP.NET 2.0.
  • David then tells about how, at Scott Guthrie's prompting, the idea involved and how NuGet joined up up with the Nu project.
  • K. Scott asks about how NuGet works in practice using the Package Management Console.
  • There's a brief discussion of the name, and David foreshadows the impending name change to NuGet.
  • K. Scott asks about which packages are currently available, and what's involved in contributing a new package.
  • Scott K. asks about creating aliases, and David talks about the ability to change things via PowerShell.
  • David describes some of the logic involved in dependency management.
  • There's a Twitter question from David Alpert about customizing the package installation folder.
  • K. Scott asks if this is usable in all Visual Studio projects, not just web projects.
  • Kevin asks about configuration transforms.
  • K. Scott asks about the overlap between all the different developer installer systems - Web PI, NuGet, and the Visual Studio Extension manager. David explains how the focus of NuGet is very focused on bringing libraries into one project.
  • Jon asks if they've seen people using NuGet in ways they hadn't anticipated, mentioning a post by Eric Hexter on integrating NuGet and Solution Factory. David talks about how a NuGet package can include PowerShell scripts, which means you can add commands to the Package Manager console, describing how the NUnit package adds commands which allow you to run tests from the console.
  • Scott K. asks about the use of NuGet for... you guessed it... Javascript.
  • Kevin asks if NuGet could be integrated with the new project wizard.
  • Jon asks if there's any possible integration with Visual Studio Snippets. David explains how packages are including source code with sample code, and how this fits the use of project level source code better.
  • Jon asks about Web Activator.
  • K. Scott asks about how you'd run a local package repository. David talks about how you can do this by just putting packages in a folder.
  • Jon asks about how a package gets officially submitted and added to the feed.
  • Kevin remarks about the way NuGet is working as an open source project which accepts submissions from both Microsoft employees and the community.
  • There's a Twitter question from Elijah Manor about managing Javascript dependencies.
  • Kevin is happy to see the unit test coverage in NuGet, and asks about the unit test coverage requirements for package submissions.
  • Jon asks if there's any integration of Mercurial beyond the server-side package submission.
  • K. Scott asks about the possibility of future integration between NuGet and OpenWrap.
  • Jon talks about how he sees a lot of opportunity for NuGet to introduce some great open source libraries to developers and development shops which might not previously have considered using them.
  • Kevin asks if this is another example of a Microsoft initiative squashing existing open source projects. David talks about how NuGet was created to fill a void where they didn't see any leading package management systems for the .NET platform.
  • K. Scott asks about David's T4MVC project. David talks about how it's been really interesting and exciting for him as his first open source project.
  • Jon asks about how T4MVC is run on project build, and David mentions the Chirpy project.
  • Jon asks about how David divides his time between NuGet, ASP.NET Web Pages, ASP.NET in general, and T4MVC.
  • David ends with a call for contributions to NuGet.

Show Links:

Download / Listen:

Herding Code 99: David Ebbo on NuGet

[audio:http://herdingcode.com/wp-content/uploads/HerdingCode-0099-David-Ebbo-on-NuGet.mp3]