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

Like this? Share it with your network

Share
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,202
On Slideshare
1,201
From Embeds
1
Number of Embeds
1

Actions

Shares
Downloads
9
Comments
0
Likes
1

Embeds 1

https://twitter.com 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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 http://amzn.to/pronuget AZUG Focus on web ASP .NET MVC, Windows Azure, SignalR, ... MVP Windows Azure & ASPInsider http://blog.maartenballiauw.be @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: NuGet.org 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 https://www.nuget.org/packages?q=windowsphone
  • 11. Windows 8 Examples https://www.nuget.org/packages?q=windows8
  • 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 www.semver.org 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 http://concierge.nuget.org Upload packages.config Find recommendations
  • 21. Hosting Your Own Repository Folder / File share NuGet.Server package NuGet Gallery – www.github.com/nuget/nugetgallery MyGet – www.myget.org
  • 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 http://docs.nuget.org/docs/reference/ecosystem
  • 27. Chocolatey NuGet developer library packages Chocolatey applications and tools packager “yum” or “apt-get” for Windows www.chocolatey.org
  • 28. Automate deployments Build results in .nupkg Octopus deploys to its tentacles Test tentacles Staging tentacles Production tentacles www.octopusdeploy.com
  • 29. Plugins / AddOns / … NuGet Package Explorer – own feed OCTGN – own feed SharpDevelop – own feed ReSharper – http://resharper-plugins.jetbrains.com/ Orchard CMS – http://gallery.orchardproject.net/ EPiServer – http://nuget.episerver.com/
  • 30. Creating your own plugin system
  • 31. Conclusion
  • 32. Conclusion NuGet New Problems Solutions! The NuGet Ecosystem Conclusion
  • 33. http://blog.maartenballiauw.be @maartenballiauw http://amzn.to/pronuget http://www.myget.org