KEMBAR78
Nuget | PDF
AMIR BARYLKO &
                      JAMES CHAMBERS
                      NUGET PACKAGE
                        MANAGER




Amir Barylko & James Chambers- Nuget    mavenTHOUGHT Inc.
ABOUT JAMES

  • Microsoft          MVP in Asp.Net/IIS
  • Husband           and father of 3
  • Humanitarian: food, water, JDRF

  • Product & Community Development Manager at
    LogiSense

Amir Barylko & James Chambers- Nuget        mavenTHOUGHT Inc.
ABOUT AMIR

  • Architect

  • Developer

  • Mentor

  • Great       cook
  • Software          Quality Expert at mavenTHOUGHT Inc.

Amir Barylko & James Chambers- Nuget             mavenTHOUGHT Inc.
CONTACT US

  •   Email: james@jameschambers.com
             amir@barylko.com

  •   Twitter: @canadianjames, @abarylko

  •   Slides: http://orthocoders.com/presentations.html




Amir Barylko & James Chambers- Nuget                      mavenTHOUGHT Inc.
12’’ PIZZA ON WHITE



Amir Barylko & James Chambers- Nuget   mavenTHOUGHT Inc.
HOW DO WE
                  SHARE DLLS TODAY?



Amir Barylko & James Chambers- Nuget   mavenTHOUGHT Inc.
SHARED FOLDERS

  • All    the dlls are stored in a particular location
  • All    the projects add the reference to a DLL
  • When   a DLL is updated overwrites the previous
    version



Amir Barylko & James Chambers- Nuget               mavenTHOUGHT Inc.
NO VERSIONING

  • 1.0.0.0

  • Or     just changed with releases
  • Or     nobody cares




Amir Barylko & James Chambers- Nuget    mavenTHOUGHT Inc.
HUGE SOLUTIONS

  • All    the projects share the same solution
  • No      matter cohesion
  • It’s   easier to “debug” (really?)




Amir Barylko & James Chambers- Nuget              mavenTHOUGHT Inc.
BINARIES IN SRC CONTROL

  • The      binaries of the dependencies
  • Are      stored in source control
  • In   order to be able to build every time




Amir Barylko & James Chambers- Nuget            mavenTHOUGHT Inc.
UPDATE DLLS NIGHTMARE

  • Go      to each project and remove the old
  • Then       add the new reference
  • Or     just don’t use versioning (only internal)
  • But     you force everyone to update!


Amir Barylko & James Chambers- Nuget              mavenTHOUGHT Inc.
ADDING REFERENCES

  • Find     and add elmah.dll
  • Find     and add log4net.dll
  • Find     any other dependency
  • Modify        configuration
  • Etc....

Amir Barylko & James Chambers- Nuget   mavenTHOUGHT Inc.
NUGET



Amir Barylko & James Chambers- Nuget           mavenTHOUGHT Inc.
VS EXTENSION

  • Just    install it!




Amir Barylko & James Chambers- Nuget     mavenTHOUGHT Inc.
WHERE ARE THE DLLS?

  • Packages          folder (check it out)




Amir Barylko & James Chambers- Nuget          mavenTHOUGHT Inc.
RESTORE ON BUILD

  • No      need to store Packages folder
  • Just    check “restore on build”
  • If   needed, nuget will download them




Amir Barylko & James Chambers- Nuget        mavenTHOUGHT Inc.
COMMAND SHELL

  • More        flexibility
  • Use      nuget command shell to install, uninstall etc...
  • Auto       complete can be handy
  • Choose          version, etc....


Amir Barylko & James Chambers- Nuget                mavenTHOUGHT Inc.
WHAT ABOUT DEBUGGING?

  • Use      the symbol source Luke!
  • SymbolSource.Server.Basic          can be installed with
    nuget :)




Amir Barylko & James Chambers- Nuget                mavenTHOUGHT Inc.
PUBLISHING

  • Get      an API key from your server
  • nuget       -spec
  • Or Albacore              has a task for it (Yes, ruby and rake,
    get over it)
  • Or     NugetPackageExplorer

Amir Barylko & James Chambers- Nuget                      mavenTHOUGHT Inc.
POST INSTALLATION

  • Install     all dependencies
  • Run      web transforms
  • Run      any other configuration




Amir Barylko & James Chambers- Nuget   mavenTHOUGHT Inc.
MULTIPLE SERVERS

  • Nuget.org

  • MyGet

  •A     shared folder
  • Your      own local server


Amir Barylko & James Chambers- Nuget    mavenTHOUGHT Inc.
RISKS / DOUBTS



Amir Barylko & James Chambers- Nuget      mavenTHOUGHT Inc.
NO INTERNET

  • Backups

  • Local      feeds
  • Go      home!




Amir Barylko & James Chambers- Nuget     mavenTHOUGHT Inc.
EXPENSIVE UPDATE

  • Update         only when you want
  • Update         all of them together possible
  • Why        force to update if you don’t need to?




Amir Barylko & James Chambers- Nuget               mavenTHOUGHT Inc.
FORCES VERSIONING

  • And       that’s a problem because.... ?




Amir Barylko & James Chambers- Nuget           mavenTHOUGHT Inc.
IF IT WORKS DON’T BREAK IT

  • No      more binaries in source control
  • Clear       dependency management
  • Less     coupling
  • Follow        a standard
  • Less     headaches!
Amir Barylko & James Chambers- Nuget          mavenTHOUGHT Inc.
CONTACT US

  •   Email: james@jameschambers.com
             amir@barylko.com

  •   Twitter: @canadianjames, @abarylko

  •   Slides: http://orthocoders.com/presentations.html




Amir Barylko & James Chambers- Nuget                      mavenTHOUGHT Inc.

Nuget

  • 1.
    AMIR BARYLKO & JAMES CHAMBERS NUGET PACKAGE MANAGER Amir Barylko & James Chambers- Nuget mavenTHOUGHT Inc.
  • 2.
    ABOUT JAMES • Microsoft MVP in Asp.Net/IIS • Husband and father of 3 • Humanitarian: food, water, JDRF • Product & Community Development Manager at LogiSense Amir Barylko & James Chambers- Nuget mavenTHOUGHT Inc.
  • 3.
    ABOUT AMIR • Architect • Developer • Mentor • Great cook • Software Quality Expert at mavenTHOUGHT Inc. Amir Barylko & James Chambers- Nuget mavenTHOUGHT Inc.
  • 4.
    CONTACT US • Email: james@jameschambers.com amir@barylko.com • Twitter: @canadianjames, @abarylko • Slides: http://orthocoders.com/presentations.html Amir Barylko & James Chambers- Nuget mavenTHOUGHT Inc.
  • 5.
    12’’ PIZZA ONWHITE Amir Barylko & James Chambers- Nuget mavenTHOUGHT Inc.
  • 7.
    HOW DO WE SHARE DLLS TODAY? Amir Barylko & James Chambers- Nuget mavenTHOUGHT Inc.
  • 8.
    SHARED FOLDERS • All the dlls are stored in a particular location • All the projects add the reference to a DLL • When a DLL is updated overwrites the previous version Amir Barylko & James Chambers- Nuget mavenTHOUGHT Inc.
  • 9.
    NO VERSIONING • 1.0.0.0 • Or just changed with releases • Or nobody cares Amir Barylko & James Chambers- Nuget mavenTHOUGHT Inc.
  • 10.
    HUGE SOLUTIONS • All the projects share the same solution • No matter cohesion • It’s easier to “debug” (really?) Amir Barylko & James Chambers- Nuget mavenTHOUGHT Inc.
  • 11.
    BINARIES IN SRCCONTROL • The binaries of the dependencies • Are stored in source control • In order to be able to build every time Amir Barylko & James Chambers- Nuget mavenTHOUGHT Inc.
  • 12.
    UPDATE DLLS NIGHTMARE • Go to each project and remove the old • Then add the new reference • Or just don’t use versioning (only internal) • But you force everyone to update! Amir Barylko & James Chambers- Nuget mavenTHOUGHT Inc.
  • 13.
    ADDING REFERENCES • Find and add elmah.dll • Find and add log4net.dll • Find any other dependency • Modify configuration • Etc.... Amir Barylko & James Chambers- Nuget mavenTHOUGHT Inc.
  • 14.
    NUGET Amir Barylko &James Chambers- Nuget mavenTHOUGHT Inc.
  • 15.
    VS EXTENSION • Just install it! Amir Barylko & James Chambers- Nuget mavenTHOUGHT Inc.
  • 16.
    WHERE ARE THEDLLS? • Packages folder (check it out) Amir Barylko & James Chambers- Nuget mavenTHOUGHT Inc.
  • 17.
    RESTORE ON BUILD • No need to store Packages folder • Just check “restore on build” • If needed, nuget will download them Amir Barylko & James Chambers- Nuget mavenTHOUGHT Inc.
  • 18.
    COMMAND SHELL • More flexibility • Use nuget command shell to install, uninstall etc... • Auto complete can be handy • Choose version, etc.... Amir Barylko & James Chambers- Nuget mavenTHOUGHT Inc.
  • 19.
    WHAT ABOUT DEBUGGING? • Use the symbol source Luke! • SymbolSource.Server.Basic can be installed with nuget :) Amir Barylko & James Chambers- Nuget mavenTHOUGHT Inc.
  • 20.
    PUBLISHING •Get an API key from your server • nuget -spec • Or Albacore has a task for it (Yes, ruby and rake, get over it) • Or NugetPackageExplorer Amir Barylko & James Chambers- Nuget mavenTHOUGHT Inc.
  • 21.
    POST INSTALLATION • Install all dependencies • Run web transforms • Run any other configuration Amir Barylko & James Chambers- Nuget mavenTHOUGHT Inc.
  • 22.
    MULTIPLE SERVERS • Nuget.org • MyGet •A shared folder • Your own local server Amir Barylko & James Chambers- Nuget mavenTHOUGHT Inc.
  • 23.
    RISKS / DOUBTS AmirBarylko & James Chambers- Nuget mavenTHOUGHT Inc.
  • 24.
    NO INTERNET • Backups • Local feeds • Go home! Amir Barylko & James Chambers- Nuget mavenTHOUGHT Inc.
  • 25.
    EXPENSIVE UPDATE • Update only when you want • Update all of them together possible • Why force to update if you don’t need to? Amir Barylko & James Chambers- Nuget mavenTHOUGHT Inc.
  • 26.
    FORCES VERSIONING • And that’s a problem because.... ? Amir Barylko & James Chambers- Nuget mavenTHOUGHT Inc.
  • 27.
    IF IT WORKSDON’T BREAK IT • No more binaries in source control • Clear dependency management • Less coupling • Follow a standard • Less headaches! Amir Barylko & James Chambers- Nuget mavenTHOUGHT Inc.
  • 28.
    CONTACT US • Email: james@jameschambers.com amir@barylko.com • Twitter: @canadianjames, @abarylko • Slides: http://orthocoders.com/presentations.html Amir Barylko & James Chambers- Nuget mavenTHOUGHT Inc.