An overview of the NuGet ecosystem -
Upcoming SlideShare
Loading in...5

An overview of the NuGet ecosystem -






Total Views
Views on SlideShare
Embed Views



1 Embed 1 1



Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

An overview of the NuGet ecosystem - An overview of the NuGet ecosystem - Presentation Transcript

  • An overview of the NuGet ecosystem Maarten Balliauw @maartenballiauw
  • Who am I? Maarten Balliauw Daytime: Technical Evangelist, JetBrains Co-founder of MyGet Author – Pro NuGet AZUG Focus on web ASP .NET MVC, Windows Azure, SignalR, ... MVP Windows Azure & ASPInsider @maartenballiauw
  • Agenda NuGet New Problems Solutions! The NuGet Ecosystem Conclusion
  • NuGet
  • Before NuGet: third-party and OSS Everything points towards Microsoft Only for those who search Google, Bing, CodePlex, GitHub, … False competition Microsoft things either bundled or via a neat installer Hard to integrate OSS Compile? Find right version? Find right dependencies?
  • Before NuGet: sharing own code Shared code in source control Or compiled code in separate assembly Separate assembly on a network share or in source control No versioning on the assembly file Update nightmare (“big solutions”)
  • NuGet!
  • With NuGet: third-party and OSS One repository: OSS and Microsoft provided libraries mixed Dependencies, Configuration changes, Versioning
  • With NuGet: sharing own code Create a NuGet package Specify dependencies, enforce versioning Consuming project: specify version Updating is a joy
  • Windows Phone Examples
  • Windows 8 Examples
  • Let’s install one! And look at some internals
  • New Problems
  • Versioning U depends on T Y depends on T Let’s upgrade T!
  • One repository It’s a bit of an App Store… Fine for OSS, but what with my own frameworks?
  • Overconsumption That’s a cool library! And that’s a cool library! And that one too! Ooh, another one! How to limit choice?
  • Licensing Developers on a roll don’t care! But you may do… How to limit choice?
  • Solutions!
  • Enforce Explicit Semantic Versioning Major Breaking changes Minor Backwards compatible API additions/changes Patch Bugfixes not affecting the API <dependency id="ExamplePackage" version="1.3.2" /> 1.0 = 1.0 ≤ x (,1.0] = x ≤ 1.0 (,1.0) = x < 1.0 [1.0] = x == 1.0 (1.0) = invalid (1.0,) = 1.0 < x (1.0,2.0) = 1.0 < x < 2.0 [1.0,2.0] = 1.0 ≤ x ≤ 2.0 empty = latest version
  • Recommendation Engine Upload packages.config Find recommendations
  • Hosting Your Own Repository Folder / File share NuGet.Server package NuGet Gallery – MyGet –
  • Create your own feed! Have a copy of your dependencies! Manage approved packages Manage licenses Host your own packages Private feeds Use it for staging packages
  • MyGet Examples Company feed Limiting choice, Licensing Creating packages Package promotion Security
  • One more recommendation… Don’t just update Not everyone respects SemVer… Don’t autoupdate during builds Continuous Integration: Same Input = Same Output
  • The NuGet Ecosystem
  • Many, many, many Outercurve Foundation NuGet Project TeamCity support for NuGet NuGet-based tools by Microsoft Artifactory support for NuGet NuGet Package Explorer Nexus support for NuGet MyGet (NuGet-as-a-Service) Glimpse Plug-ins Chocolatey ReSharper Plug-ins OctopusDeploy Orchard RedGate Deployment Manager NuGetMustHaves SymbolSource NuGetFeed ProGet (Inedo) NuGetLatest CoApp NuGet server in Java BoxStarter NuGet Fight SharpDevelop NuGet plug-in NuGit Xamarin NuGet plug-in  see
  • Chocolatey NuGet developer library packages Chocolatey applications and tools packager “yum” or “apt-get” for Windows
  • Automate deployments Build results in .nupkg Octopus deploys to its tentacles Test tentacles Staging tentacles Production tentacles
  • Plugins / AddOns / … NuGet Package Explorer – own feed OCTGN – own feed SharpDevelop – own feed ReSharper – Orchard CMS – EPiServer –
  • Creating your own plugin system
  • Conclusion
  • Conclusion NuGet New Problems Solutions! The NuGet Ecosystem Conclusion
  • @maartenballiauw