an overview of the nuget ecosystem - mobel.io
TRANSCRIPT
![Page 1: An overview of the NuGet ecosystem - Mobel.io](https://reader037.vdocuments.net/reader037/viewer/2022103114/554f8d2fb4c905435d8b4e7e/html5/thumbnails/1.jpg)
An overview of the NuGet ecosystemMaarten Balliauw@maartenballiauw
![Page 2: An overview of the NuGet ecosystem - Mobel.io](https://reader037.vdocuments.net/reader037/viewer/2022103114/554f8d2fb4c905435d8b4e7e/html5/thumbnails/2.jpg)
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
![Page 3: An overview of the NuGet ecosystem - Mobel.io](https://reader037.vdocuments.net/reader037/viewer/2022103114/554f8d2fb4c905435d8b4e7e/html5/thumbnails/3.jpg)
Agenda NuGet New Problems Solutions! The NuGet Ecosystem Conclusion
![Page 4: An overview of the NuGet ecosystem - Mobel.io](https://reader037.vdocuments.net/reader037/viewer/2022103114/554f8d2fb4c905435d8b4e7e/html5/thumbnails/4.jpg)
NuGet
![Page 5: An overview of the NuGet ecosystem - Mobel.io](https://reader037.vdocuments.net/reader037/viewer/2022103114/554f8d2fb4c905435d8b4e7e/html5/thumbnails/5.jpg)
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?
![Page 6: An overview of the NuGet ecosystem - Mobel.io](https://reader037.vdocuments.net/reader037/viewer/2022103114/554f8d2fb4c905435d8b4e7e/html5/thumbnails/6.jpg)
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”)
![Page 7: An overview of the NuGet ecosystem - Mobel.io](https://reader037.vdocuments.net/reader037/viewer/2022103114/554f8d2fb4c905435d8b4e7e/html5/thumbnails/7.jpg)
NuGet!
![Page 8: An overview of the NuGet ecosystem - Mobel.io](https://reader037.vdocuments.net/reader037/viewer/2022103114/554f8d2fb4c905435d8b4e7e/html5/thumbnails/8.jpg)
With NuGet: third-party and OSS One repository: NuGet.org OSS and Microsoft provided libraries mixed Dependencies, Configuration changes, Versioning
![Page 9: An overview of the NuGet ecosystem - Mobel.io](https://reader037.vdocuments.net/reader037/viewer/2022103114/554f8d2fb4c905435d8b4e7e/html5/thumbnails/9.jpg)
With NuGet: sharing own code Create a NuGet package Specify dependencies, enforce versioning Consuming project: specify version Updating is a joy
![Page 10: An overview of the NuGet ecosystem - Mobel.io](https://reader037.vdocuments.net/reader037/viewer/2022103114/554f8d2fb4c905435d8b4e7e/html5/thumbnails/10.jpg)
Windows Phone Exampleshttps://www.nuget.org/packages?q=windowsphone
![Page 11: An overview of the NuGet ecosystem - Mobel.io](https://reader037.vdocuments.net/reader037/viewer/2022103114/554f8d2fb4c905435d8b4e7e/html5/thumbnails/11.jpg)
Windows 8Exampleshttps://www.nuget.org/packages?q=windows8
![Page 12: An overview of the NuGet ecosystem - Mobel.io](https://reader037.vdocuments.net/reader037/viewer/2022103114/554f8d2fb4c905435d8b4e7e/html5/thumbnails/12.jpg)
Let’s install one!And look at some internals
demo
![Page 13: An overview of the NuGet ecosystem - Mobel.io](https://reader037.vdocuments.net/reader037/viewer/2022103114/554f8d2fb4c905435d8b4e7e/html5/thumbnails/13.jpg)
New Problems
![Page 14: An overview of the NuGet ecosystem - Mobel.io](https://reader037.vdocuments.net/reader037/viewer/2022103114/554f8d2fb4c905435d8b4e7e/html5/thumbnails/14.jpg)
Versioning U depends on T Y depends on T Let’s upgrade T!
![Page 15: An overview of the NuGet ecosystem - Mobel.io](https://reader037.vdocuments.net/reader037/viewer/2022103114/554f8d2fb4c905435d8b4e7e/html5/thumbnails/15.jpg)
One repository It’s a bit of an App Store… Fine for OSS, but what with my own frameworks?
![Page 16: An overview of the NuGet ecosystem - Mobel.io](https://reader037.vdocuments.net/reader037/viewer/2022103114/554f8d2fb4c905435d8b4e7e/html5/thumbnails/16.jpg)
Overconsumption That’s a cool library! And that’s a cool library! And that one too! Ooh, another one! How to limit choice?
![Page 17: An overview of the NuGet ecosystem - Mobel.io](https://reader037.vdocuments.net/reader037/viewer/2022103114/554f8d2fb4c905435d8b4e7e/html5/thumbnails/17.jpg)
Licensing Developers on a roll don’t care! But you may do… How to limit choice?
![Page 18: An overview of the NuGet ecosystem - Mobel.io](https://reader037.vdocuments.net/reader037/viewer/2022103114/554f8d2fb4c905435d8b4e7e/html5/thumbnails/18.jpg)
Solutions!
![Page 19: An overview of the NuGet ecosystem - Mobel.io](https://reader037.vdocuments.net/reader037/viewer/2022103114/554f8d2fb4c905435d8b4e7e/html5/thumbnails/19.jpg)
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.0empty = latest version
![Page 20: An overview of the NuGet ecosystem - Mobel.io](https://reader037.vdocuments.net/reader037/viewer/2022103114/554f8d2fb4c905435d8b4e7e/html5/thumbnails/20.jpg)
Recommendation Engine http://concierge.nuget.org Upload packages.config Find recommendations
![Page 21: An overview of the NuGet ecosystem - Mobel.io](https://reader037.vdocuments.net/reader037/viewer/2022103114/554f8d2fb4c905435d8b4e7e/html5/thumbnails/21.jpg)
Hosting Your Own Repository Folder / File share NuGet.Server package NuGet Gallery – www.github.com/nuget/nugetgallery MyGet – www.myget.org
![Page 22: An overview of the NuGet ecosystem - Mobel.io](https://reader037.vdocuments.net/reader037/viewer/2022103114/554f8d2fb4c905435d8b4e7e/html5/thumbnails/22.jpg)
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
![Page 23: An overview of the NuGet ecosystem - Mobel.io](https://reader037.vdocuments.net/reader037/viewer/2022103114/554f8d2fb4c905435d8b4e7e/html5/thumbnails/23.jpg)
MyGetExamplesCompany feedLimiting choice,LicensingCreating packagesPackage promotionSecurity demo
![Page 24: An overview of the NuGet ecosystem - Mobel.io](https://reader037.vdocuments.net/reader037/viewer/2022103114/554f8d2fb4c905435d8b4e7e/html5/thumbnails/24.jpg)
One more recommendation… Don’t just update Not everyone respects SemVer…
Don’t autoupdate during builds Continuous Integration: Same Input = Same Output
![Page 25: An overview of the NuGet ecosystem - Mobel.io](https://reader037.vdocuments.net/reader037/viewer/2022103114/554f8d2fb4c905435d8b4e7e/html5/thumbnails/25.jpg)
The NuGet Ecosystem
![Page 26: An overview of the NuGet ecosystem - Mobel.io](https://reader037.vdocuments.net/reader037/viewer/2022103114/554f8d2fb4c905435d8b4e7e/html5/thumbnails/26.jpg)
Many, many, many Outercurve Foundation NuGet Project NuGet-based tools by Microsoft NuGet Package Explorer MyGet (NuGet-as-a-Service) Chocolatey OctopusDeploy RedGate Deployment Manager SymbolSource ProGet (Inedo) CoApp BoxStarter SharpDevelop NuGet plug-in Xamarin NuGet plug-in
TeamCity support for NuGet Artifactory support for NuGet Nexus support for NuGet Glimpse Plug-ins ReSharper Plug-ins Orchard NuGetMustHaves NuGetFeed NuGetLatest NuGet server in Java NuGet Fight NuGit
see http://docs.nuget.org/docs/reference/ecosystem
![Page 27: An overview of the NuGet ecosystem - Mobel.io](https://reader037.vdocuments.net/reader037/viewer/2022103114/554f8d2fb4c905435d8b4e7e/html5/thumbnails/27.jpg)
Chocolatey NuGet developer library packages
Chocolatey applications and tools packager “yum” or “apt-get” for Windows
www.chocolatey.org
![Page 28: An overview of the NuGet ecosystem - Mobel.io](https://reader037.vdocuments.net/reader037/viewer/2022103114/554f8d2fb4c905435d8b4e7e/html5/thumbnails/28.jpg)
Automate deployments Build results in .nupkg Octopus deploys to its tentacles Test tentacles Staging tentacles Production tentacles
www.octopusdeploy.com
![Page 29: An overview of the NuGet ecosystem - Mobel.io](https://reader037.vdocuments.net/reader037/viewer/2022103114/554f8d2fb4c905435d8b4e7e/html5/thumbnails/29.jpg)
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/
![Page 30: An overview of the NuGet ecosystem - Mobel.io](https://reader037.vdocuments.net/reader037/viewer/2022103114/554f8d2fb4c905435d8b4e7e/html5/thumbnails/30.jpg)
Creating your own plugin system
demo
![Page 31: An overview of the NuGet ecosystem - Mobel.io](https://reader037.vdocuments.net/reader037/viewer/2022103114/554f8d2fb4c905435d8b4e7e/html5/thumbnails/31.jpg)
Conclusion
![Page 32: An overview of the NuGet ecosystem - Mobel.io](https://reader037.vdocuments.net/reader037/viewer/2022103114/554f8d2fb4c905435d8b4e7e/html5/thumbnails/32.jpg)
Conclusion NuGet New Problems Solutions! The NuGet Ecosystem Conclusion
![Page 33: An overview of the NuGet ecosystem - Mobel.io](https://reader037.vdocuments.net/reader037/viewer/2022103114/554f8d2fb4c905435d8b4e7e/html5/thumbnails/33.jpg)
Thank you!http://
blog.maartenballiauw.be@maartenballiauw
http://amzn.to/pronugethttp://www.myget.org