Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The NuGet ecosystem

The NuGet ecosystem

Reviewing NuGet 3.0 and some interesting projects within the NuGet ecosystem

Awesome Incremented

November 05, 2015
Tweet

More Decks by Awesome Incremented

Other Decks in Programming

Transcript

  1. Agenda •NuGet and changes in 3.0 •Built on top of

    NuGet •Chocolatey and beyond •Squirrel - ClickOnce reloaded •NuPlug - Pluins powered by MEF & NuGet •Klondike - Digging for NuGets
  2. What is NuGet? •NuGet = Package Manager (libraries) • consume

    & produce packages (.nupkg) • .NET, C++ (CoApp) • integrated in Visual Studio •NuGet gallery → https://www.nuget.org/
  3. Changes in NuGet 3.0 •UI changes → 100% rewrite •v3

    protocol → perf & scalability •project.json
  4. Changes in NuGet 3.0 Project.JSON •.NET Core (UWP) •Transitive Dependencies

    → maintainability •Global Packages → %userprofile%\.nuget\packages Dropped Features (mostly update issues) •solution level packages •install.ps1, uninstall.ps1 •content packages •config file transforms
  5. Chocolatey •Package Manager (binaries) • “apt-get for Windows” • automates

    download & click-through •Gallery → https://chocolatey.org/ •Providers • Chef, Puppet, Boxstarter, OneGet, ...
  6. OneGet •Unified interface to package management systems • shipped with

    Win10 or WMF 5.0 • https://github.com/OneGet/oneget •List of supported providers • https://github.com/OneGet/oneget/issues/77
  7. Boxstarter •Easy scripting of Windows installations • Using chocolatey •

    Reboot resilient • Remote Installations • launch from url or Gist • built my Matt Wrock from Chef → http://boxstarter.org/
  8. Squirrel •Squirrel: It's like ClickOnce but Works™ • https://github.com/squirrel/squirrel.windows •

    Uses .nupkg as deployment packages • Delta compression for updates! • https://github.com/mkoertgen/hello.squirrel •Used by Slack → https://slack.com/is
  9. NuPlug •https://github.com/awesome-inc/NuPlug •NuGet as plugin library •Package with 1..n interface

    implementations •Procedure • load packages.config • download packages and dependencies (!) • get implementations for interface (MEF)
  10. Klondike •https://github.com/themotleyfool/Klondike •Easy to use NuGet Server •SelfHost, IIS, Mono

    •Lucene index for fast searching •Proxy for non local-packages •User management and personal API keys
  11. Summary •NuGet is great solving dependencies •The ecosystem makes it

    awesome because • get libraries for development in VS • install software with Chocolatey • create a plugin system with NuPlug • deploy an entire system with Boxstarter
  12. Some References •NuGet Ecosystem (NuGet docs) •NuGet Team Blog •Octopus

    Deploy in the ThoughtWorks Technology Radar (Octopus Blog)