Your SlideShare is downloading. ×
An overview of the NuGet ecosystem - Mobel.io
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 - Mobel.io

994
views

Published on

Published in: Technology

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
994
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
9
Comments
0
Likes
1
Embeds 0
No embeds

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