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

An overview of the NuGet ecosystem - Mobel.io

on

  • 1,031 views

 

Statistics

Views

Total Views
1,031
Views on SlideShare
1,030
Embed Views
1

Actions

Likes
1
Downloads
9
Comments
0

1 Embed 1

https://twitter.com 1

Accessibility

Categories

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.

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

An overview of the NuGet ecosystem - Mobel.io An overview of the NuGet ecosystem - Mobel.io 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 http://amzn.to/pronuget AZUG Focus on web ASP .NET MVC, Windows Azure, SignalR, ... MVP Windows Azure & ASPInsider http://blog.maartenballiauw.be @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: NuGet.org 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 https://www.nuget.org/packages?q=windowsphone
  • Windows 8 Examples https://www.nuget.org/packages?q=windows8
  • 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 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
  • Recommendation Engine http://concierge.nuget.org Upload packages.config Find recommendations
  • Hosting Your Own Repository Folder / File share NuGet.Server package NuGet Gallery – www.github.com/nuget/nugetgallery MyGet – www.myget.org
  • 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 http://docs.nuget.org/docs/reference/ecosystem
  • Chocolatey NuGet developer library packages Chocolatey applications and tools packager “yum” or “apt-get” for Windows www.chocolatey.org
  • Automate deployments Build results in .nupkg Octopus deploys to its tentacles Test tentacles Staging tentacles Production tentacles www.octopusdeploy.com
  • 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/
  • Creating your own plugin system
  • Conclusion
  • Conclusion NuGet New Problems Solutions! The NuGet Ecosystem Conclusion
  • http://blog.maartenballiauw.be @maartenballiauw http://amzn.to/pronuget http://www.myget.org