Your SlideShare is downloading. ×
An overview of the NuGet ecosystem -
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

An overview of the NuGet ecosystem -


Published on

Published in: Technology
1 Like
  • Be the first to comment

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. An overview of the NuGet ecosystem Maarten Balliauw @maartenballiauw
  • 2. 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
  • 3. Agenda NuGet New Problems Solutions! The NuGet Ecosystem Conclusion
  • 4. NuGet
  • 5. 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?
  • 6. 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”)
  • 7. NuGet!
  • 8. With NuGet: third-party and OSS One repository: OSS and Microsoft provided libraries mixed Dependencies, Configuration changes, Versioning
  • 9. With NuGet: sharing own code Create a NuGet package Specify dependencies, enforce versioning Consuming project: specify version Updating is a joy
  • 10. Windows Phone Examples
  • 11. Windows 8 Examples
  • 12. Let’s install one! And look at some internals
  • 13. New Problems
  • 14. Versioning U depends on T Y depends on T Let’s upgrade T!
  • 15. One repository It’s a bit of an App Store… Fine for OSS, but what with my own frameworks?
  • 16. Overconsumption That’s a cool library! And that’s a cool library! And that one too! Ooh, another one! How to limit choice?
  • 17. Licensing Developers on a roll don’t care! But you may do… How to limit choice?
  • 18. Solutions!
  • 19. 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
  • 20. Recommendation Engine Upload packages.config Find recommendations
  • 21. Hosting Your Own Repository Folder / File share NuGet.Server package NuGet Gallery – MyGet –
  • 22. 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
  • 23. MyGet Examples Company feed Limiting choice, Licensing Creating packages Package promotion Security
  • 24. One more recommendation… Don’t just update Not everyone respects SemVer… Don’t autoupdate during builds Continuous Integration: Same Input = Same Output
  • 25. The NuGet Ecosystem
  • 26. 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
  • 27. Chocolatey NuGet developer library packages Chocolatey applications and tools packager “yum” or “apt-get” for Windows
  • 28. Automate deployments Build results in .nupkg Octopus deploys to its tentacles Test tentacles Staging tentacles Production tentacles
  • 29. Plugins / AddOns / … NuGet Package Explorer – own feed OCTGN – own feed SharpDevelop – own feed ReSharper – Orchard CMS – EPiServer –
  • 30. Creating your own plugin system
  • 31. Conclusion
  • 32. Conclusion NuGet New Problems Solutions! The NuGet Ecosystem Conclusion
  • 33. @maartenballiauw