SlideShare a Scribd company logo
1 of 28
www.realdolmen.com




                             ORGANIZE YOUR CHICKENS:
                             NUGET FOR THE ENTERPRISE




JANUARY 16, 2013 | SLIDE 1
WHO AM I?

            Xavier Decoster
            Antwerp, Belgium

            Technical Consultant, RealDolmen
            Co-founder of MyGet.org
            Microsoft Extended Experts Team
            Author of Apress Pro NuGet

            http://www.xavierdecoster.com
            @xavierdecoster


JANUARY 16, 2013 | SLIDE 2
IN THIS SESSION




                             Chickens?!




JANUARY 16, 2013 | SLIDE 3
We all have dependencies: deal with them!

      DEPENDENCY MANAGEMENT


JANUARY 16, 2013 | SLIDE 4
SYMPTOMS YOU GOT A PROBLEM…




                                                      No Versioning Strategy
      “Not Invented Here”     Binaries Duplicated
           Syndrome              all over VCS
                                                        Release Bottlenecks

                             Time Consuming Builds    No License Management
             Monolithic
            Frameworks
                             Conflicting References       OSS Inventory




JANUARY 16, 2013 | SLIDE 5
WELCOME TO DEPENDENCY HELL


 “A term for the             frustration
                              of software users who have
 installed software packages which have
 dependencies on specific versions of other
 software packages.” (Wikipedia)




JANUARY 16, 2013 | SLIDE 6
IMPACT OF DEPENDENCY HELL


         Version Control           Delays
         Branching Strategy        Increased Time-to-market
         Requirements Management   Frustration, both for
         Architecture              developers and users
         Coding & Testing          Decreased ROI
         Continuous Integration       VCS storage size ++
                                      Time spent waiting/idle ++
         Build Management
                                      Value revenue --
         Deployment
         Release Management                         Bite me! I’m
                                                    outta here..




JANUARY 16, 2013 | SLIDE 7
A thin red line connecting many ALM processes…

      PACKAGE MANAGEMENT


JANUARY 16, 2013 | SLIDE 8
FIRST THINGS FIRST
        From dependency hell to package hell?
          Broken process/architecture cannot be fixed by a tool!


        Hell is hell, whether it’s the home of
             Assemblies
             Packages
             Gems
             What. Ever.


        Escape route
          Separating Concerns  Improves Cohesion
          Increasing Cohesion  Improves maintainability
          Improving maintainability  escaped from hell 


JANUARY 16, 2013 | SLIDE 9
NUGET: THE WAY OUT?
        NuGet is a tool for package management
          Facilitates searching & automates
           installing, upgrading, uninstalling, creating & publishing
           packages
          Encourages good practices: e.g. versioning & reuse of
           components


        Tools should
          Just work
          Reduce friction
          Empower us & guide us to do the right thing


        NuGet is such a tool
          Not the answer to everything
          But excellent at guiding you to find a way out
JANUARY 16, 2013 | SLIDE 10
HOW ABOUT FRICTION?!
        NuGet covers ~80% of typical needs
          Not only OSS needs!


        Scenarios
          Automation
          Automation
          Automation


        Most friction is caused by
          Not adhering to good ALM practices
          Not adhering to good technical design
          Lack of extensibility in / integration with other tools



JANUARY 16, 2013 | SLIDE 11
VERSIONING
        Think about your versioning!
          Semantic versioning (semver.org)

               Major           Breaking changes
               Minor           Backwards compatible API
                               additions/changes
               Patch           Bugfixes not affecting the API


          NuGet is smarter when using SemVer
                 Safe upgrades


          You can be smarter when using SemVer
                 Anticipate breaking changes



JANUARY 16, 2013 | SLIDE 12
VERSIONING
   “Zookeepers must become Rangers” (Mark Seemann)
                                       Non-negotiable deadline
                                         “Big Bang Release”

 Product

    Component A


    Component B


    Component C



                              Time


JANUARY 16, 2013 | SLIDE 13
A STORY OF CONSUMERS AND CONSUMABLES…




                   Consume packages               Can consume packages



       Typically do not produce packages
                              Consumer         Consumables
                                                     Produce packages
   Usually require installation / deployment




JANUARY 16, 2013 | SLIDE 14
THE –FORCE IS STRONG IN THIS ONE…
  “As software creators we don’t get to decide what
 version of our tools / libraries that people use. If we
    try to force them, our users will go somewhere
                    else.” (Rob Reynolds)
        As a package publisher
          Do NOT expect/force your consumers to always update to the latest version
          You can only hope they upgrade.


        As a result, dear package consumers:
          Do NOT auto-update packages!


                                Consuming any package update must be
                              a well-considered and human-made decision.



JANUARY 16, 2013 | SLIDE 15
VERSIONING TAKE-AWAYS
        Be explicit!

        Breaking change?
          Clients decide when to upgrade!
          Introduce new version side-by-side & deprecate the old one


        Monitor & measure usage
          If you don’t know if it’s used, you can’t remove it




JANUARY 16, 2013 | SLIDE 16
YOUR OWN NUGET REPOSITORY
        NuGet.org = public feed
          Privacy
          Intellectual property


        Solutions
             Local Folder / Network share
             NuGet.Server package
             NuGet Gallery
             MyGet.org




JANUARY 16, 2013 | SLIDE 17
INSTALL-PACKAGE NUGET.SERVER




JANUARY 16, 2013 | SLIDE 18
NUGET.SERVER LIMITATIONS
        Simple Implementation
          Only 1 feed per web application
          No granular security: 1 API key for all
          Minimal UI


        Conclusion:
          Something more useful requires development




JANUARY 16, 2013 | SLIDE 19
NUGET-AS-A-SERVICE
        www.myget.org
        NaaS
          No installation: Register and off you go!
          Freemium
        Key Features for enterprise scenarios
          Granular security
                   Private feeds (ADFS supported)
                   Fine-grained permissions & an API key per user
                   Integration with (private) SymbolSource repositories
                   User & Quota management
          Repository management
                 Package Retention Rules
                 Package Promotion & Mirroring



JANUARY 16, 2013 | SLIDE 20
CHANGE OF PERSPECTIVE




                              NuGet as a package
                              manager

                              NuGet as a protocol for
                              distributing packages



JANUARY 16, 2013 | SLIDE 21
NUGET AS A PROTOCOL
        Distributing tools & software
          www.Chocolatey.org
          “Apt-Get” for Windows
          WebPI support


        Distributing Web sites
          www.OctopusDeploy.com
          Build results in .nupkg
          Octopus deploys to its tentacles
                 Test/Staging/Production tentacles




JANUARY 16, 2013 | SLIDE 22
A GLIMPSE AT THE NUGET ECO-SYSTEM

              Develop


                      Build


                          Package


                          Share     Network
                                    Share




                      Collaborate


              Deploy


JANUARY 16, 2013 | SLIDE 23
CAUTION
        With great power comes great responsibility

        Package creators: behave!
          Componentize
          Version
          Minimal friction


        Package publishers: control!
          User permissions
          Repository contents


        Package consumers: validate!
          No auto-updates

JANUARY 16, 2013 | SLIDE 24
OR IN CHICKEN TERMS…




JANUARY 16, 2013 | SLIDE 25
LAST BUT NOT LEAST
        NuGet is OSS (Outercurve Foundation)

        Microsoft’s involvement
          Sponsors development
          Results in:
                 Improved Visual Studio integration
                 Increased adoption of NuGet


        Community involvement
             Contribute ideas, code, documentation!
             Share experiences, give feedback, submit issues
             Discuss: http://jabbr.net/#/rooms/nuget
             Package!


JANUARY 16, 2013 | SLIDE 26
CONCLUSION

                   Dependencies & people are chickens
                                Deal with them! NuGet can help

                                    NuGet is a tool
                          Improve your process! NuGet can help

                              Consumables vs Consumers
                          Improve your process! NuGet can help

                              NuGet as a package manager
                                   NuGet as a protocol

JANUARY 16, 2013 | SLIDE 27
http://www.xavierdecoster.com
                                                              @xavierdecoster




                                  THANK YOU!
                                                Questions?



                              Come get your MyGet stickers,
                                    you might get lucky! 


Disclaimer: no chickens were hurt during the making of this presentation
JANUARY 16, 2013 | SLIDE 28

More Related Content

Similar to Organize your chickens - NuGet for the Enterprise

SDC Sweden - Organize your chickens - NuGet for the Enterprise
SDC Sweden - Organize your chickens - NuGet for the EnterpriseSDC Sweden - Organize your chickens - NuGet for the Enterprise
SDC Sweden - Organize your chickens - NuGet for the Enterprise
Maarten Balliauw
 
Notes from Educator Pre-training Briefing 1 - Summary of AfG-toolset 2012-13
Notes from Educator Pre-training Briefing 1  - Summary of AfG-toolset 2012-13Notes from Educator Pre-training Briefing 1  - Summary of AfG-toolset 2012-13
Notes from Educator Pre-training Briefing 1 - Summary of AfG-toolset 2012-13
CDI Apps for Good
 
WCAG 2.0: Why can't we all just get along?
WCAG 2.0: Why can't we all just get along?WCAG 2.0: Why can't we all just get along?
WCAG 2.0: Why can't we all just get along?
AccessibilitéWeb
 
Security & Compliance in the Cloud - Hadoop Magazine Column Version 1.2 by Ja...
Security & Compliance in the Cloud - Hadoop Magazine Column Version 1.2 by Ja...Security & Compliance in the Cloud - Hadoop Magazine Column Version 1.2 by Ja...
Security & Compliance in the Cloud - Hadoop Magazine Column Version 1.2 by Ja...
Jarrett Neil Ridlinghafer
 

Similar to Organize your chickens - NuGet for the Enterprise (20)

SDC Sweden - Organize your chickens - NuGet for the Enterprise
SDC Sweden - Organize your chickens - NuGet for the EnterpriseSDC Sweden - Organize your chickens - NuGet for the Enterprise
SDC Sweden - Organize your chickens - NuGet for the Enterprise
 
Technical Forum - November 2013
Technical Forum - November 2013Technical Forum - November 2013
Technical Forum - November 2013
 
SOLID Principles part 1
SOLID Principles part 1SOLID Principles part 1
SOLID Principles part 1
 
Upstate DevOps - CICD - November 2019
Upstate DevOps - CICD - November 2019Upstate DevOps - CICD - November 2019
Upstate DevOps - CICD - November 2019
 
DZone’s 2016 Guide To Building And Deploying Applications In The Cloud
DZone’s 2016 Guide To Building And Deploying Applications In The CloudDZone’s 2016 Guide To Building And Deploying Applications In The Cloud
DZone’s 2016 Guide To Building And Deploying Applications In The Cloud
 
CE-4029, "eyeSite’s Gesture recognition technology + introducing the develope...
CE-4029, "eyeSite’s Gesture recognition technology + introducing the develope...CE-4029, "eyeSite’s Gesture recognition technology + introducing the develope...
CE-4029, "eyeSite’s Gesture recognition technology + introducing the develope...
 
Java EE Microservices
Java EE MicroservicesJava EE Microservices
Java EE Microservices
 
SAAS IS THE ENEMY OF OPEN SOURCE GOOD THING THAT WE ARE IN THE POST-SAAS ERA
SAAS IS THE  ENEMY OF OPEN SOURCE  GOOD THING THAT WE ARE IN THE POST-SAAS ERASAAS IS THE  ENEMY OF OPEN SOURCE  GOOD THING THAT WE ARE IN THE POST-SAAS ERA
SAAS IS THE ENEMY OF OPEN SOURCE GOOD THING THAT WE ARE IN THE POST-SAAS ERA
 
CE-4026, New Interfaces, by David Brebner
CE-4026, New Interfaces, by David BrebnerCE-4026, New Interfaces, by David Brebner
CE-4026, New Interfaces, by David Brebner
 
Notes from Educator Pre-training Briefing 1 - Summary of AfG-toolset 2012-13
Notes from Educator Pre-training Briefing 1  - Summary of AfG-toolset 2012-13Notes from Educator Pre-training Briefing 1  - Summary of AfG-toolset 2012-13
Notes from Educator Pre-training Briefing 1 - Summary of AfG-toolset 2012-13
 
MM-4104, Smart Sharpen using OpenCL in Adobe Photoshop CC – Challenges and Ac...
MM-4104, Smart Sharpen using OpenCL in Adobe Photoshop CC – Challenges and Ac...MM-4104, Smart Sharpen using OpenCL in Adobe Photoshop CC – Challenges and Ac...
MM-4104, Smart Sharpen using OpenCL in Adobe Photoshop CC – Challenges and Ac...
 
Matt Bruzek - Monitoring Your Public Cloud With Nagios
Matt Bruzek - Monitoring Your Public Cloud With NagiosMatt Bruzek - Monitoring Your Public Cloud With Nagios
Matt Bruzek - Monitoring Your Public Cloud With Nagios
 
Advanced deployment scenarios
Advanced deployment scenariosAdvanced deployment scenarios
Advanced deployment scenarios
 
La pubblicazione di un'applicazione sullo store
La pubblicazione di un'applicazione sullo storeLa pubblicazione di un'applicazione sullo store
La pubblicazione di un'applicazione sullo store
 
UA Europe 2013: Content Delivered? Check! OK how do we use it?
UA Europe 2013: Content Delivered? Check! OK how do we use it?UA Europe 2013: Content Delivered? Check! OK how do we use it?
UA Europe 2013: Content Delivered? Check! OK how do we use it?
 
Evolving to Cloud-Native - Nate Schutta (1/2)
Evolving to Cloud-Native - Nate Schutta (1/2)Evolving to Cloud-Native - Nate Schutta (1/2)
Evolving to Cloud-Native - Nate Schutta (1/2)
 
WCAG 2.0: Why can't we all just get along?
WCAG 2.0: Why can't we all just get along?WCAG 2.0: Why can't we all just get along?
WCAG 2.0: Why can't we all just get along?
 
Node.JS Expreee.JS scale webapp on Google cloud
Node.JS Expreee.JS scale webapp on Google cloudNode.JS Expreee.JS scale webapp on Google cloud
Node.JS Expreee.JS scale webapp on Google cloud
 
Security & Compliance in the Cloud - Hadoop Magazine Column Version 1.2 by Ja...
Security & Compliance in the Cloud - Hadoop Magazine Column Version 1.2 by Ja...Security & Compliance in the Cloud - Hadoop Magazine Column Version 1.2 by Ja...
Security & Compliance in the Cloud - Hadoop Magazine Column Version 1.2 by Ja...
 
Lessons I Learned While Scaling to 5000 Puppet Agents
Lessons I Learned While Scaling to 5000 Puppet AgentsLessons I Learned While Scaling to 5000 Puppet Agents
Lessons I Learned While Scaling to 5000 Puppet Agents
 

Recently uploaded

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Recently uploaded (20)

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 

Organize your chickens - NuGet for the Enterprise

  • 1. www.realdolmen.com ORGANIZE YOUR CHICKENS: NUGET FOR THE ENTERPRISE JANUARY 16, 2013 | SLIDE 1
  • 2. WHO AM I? Xavier Decoster Antwerp, Belgium Technical Consultant, RealDolmen Co-founder of MyGet.org Microsoft Extended Experts Team Author of Apress Pro NuGet http://www.xavierdecoster.com @xavierdecoster JANUARY 16, 2013 | SLIDE 2
  • 3. IN THIS SESSION Chickens?! JANUARY 16, 2013 | SLIDE 3
  • 4. We all have dependencies: deal with them! DEPENDENCY MANAGEMENT JANUARY 16, 2013 | SLIDE 4
  • 5. SYMPTOMS YOU GOT A PROBLEM… No Versioning Strategy “Not Invented Here” Binaries Duplicated Syndrome all over VCS Release Bottlenecks Time Consuming Builds No License Management Monolithic Frameworks Conflicting References OSS Inventory JANUARY 16, 2013 | SLIDE 5
  • 6. WELCOME TO DEPENDENCY HELL “A term for the frustration of software users who have installed software packages which have dependencies on specific versions of other software packages.” (Wikipedia) JANUARY 16, 2013 | SLIDE 6
  • 7. IMPACT OF DEPENDENCY HELL Version Control Delays Branching Strategy Increased Time-to-market Requirements Management Frustration, both for Architecture developers and users Coding & Testing Decreased ROI Continuous Integration VCS storage size ++ Time spent waiting/idle ++ Build Management Value revenue -- Deployment Release Management Bite me! I’m outta here.. JANUARY 16, 2013 | SLIDE 7
  • 8. A thin red line connecting many ALM processes… PACKAGE MANAGEMENT JANUARY 16, 2013 | SLIDE 8
  • 9. FIRST THINGS FIRST  From dependency hell to package hell?  Broken process/architecture cannot be fixed by a tool!  Hell is hell, whether it’s the home of  Assemblies  Packages  Gems  What. Ever.  Escape route  Separating Concerns  Improves Cohesion  Increasing Cohesion  Improves maintainability  Improving maintainability  escaped from hell  JANUARY 16, 2013 | SLIDE 9
  • 10. NUGET: THE WAY OUT?  NuGet is a tool for package management  Facilitates searching & automates installing, upgrading, uninstalling, creating & publishing packages  Encourages good practices: e.g. versioning & reuse of components  Tools should  Just work  Reduce friction  Empower us & guide us to do the right thing  NuGet is such a tool  Not the answer to everything  But excellent at guiding you to find a way out JANUARY 16, 2013 | SLIDE 10
  • 11. HOW ABOUT FRICTION?!  NuGet covers ~80% of typical needs  Not only OSS needs!  Scenarios  Automation  Automation  Automation  Most friction is caused by  Not adhering to good ALM practices  Not adhering to good technical design  Lack of extensibility in / integration with other tools JANUARY 16, 2013 | SLIDE 11
  • 12. VERSIONING  Think about your versioning!  Semantic versioning (semver.org) Major Breaking changes Minor Backwards compatible API additions/changes Patch Bugfixes not affecting the API  NuGet is smarter when using SemVer  Safe upgrades  You can be smarter when using SemVer  Anticipate breaking changes JANUARY 16, 2013 | SLIDE 12
  • 13. VERSIONING “Zookeepers must become Rangers” (Mark Seemann) Non-negotiable deadline “Big Bang Release” Product Component A Component B Component C Time JANUARY 16, 2013 | SLIDE 13
  • 14. A STORY OF CONSUMERS AND CONSUMABLES… Consume packages Can consume packages Typically do not produce packages Consumer Consumables Produce packages Usually require installation / deployment JANUARY 16, 2013 | SLIDE 14
  • 15. THE –FORCE IS STRONG IN THIS ONE… “As software creators we don’t get to decide what version of our tools / libraries that people use. If we try to force them, our users will go somewhere else.” (Rob Reynolds)  As a package publisher  Do NOT expect/force your consumers to always update to the latest version  You can only hope they upgrade.  As a result, dear package consumers:  Do NOT auto-update packages! Consuming any package update must be a well-considered and human-made decision. JANUARY 16, 2013 | SLIDE 15
  • 16. VERSIONING TAKE-AWAYS  Be explicit!  Breaking change?  Clients decide when to upgrade!  Introduce new version side-by-side & deprecate the old one  Monitor & measure usage  If you don’t know if it’s used, you can’t remove it JANUARY 16, 2013 | SLIDE 16
  • 17. YOUR OWN NUGET REPOSITORY  NuGet.org = public feed  Privacy  Intellectual property  Solutions  Local Folder / Network share  NuGet.Server package  NuGet Gallery  MyGet.org JANUARY 16, 2013 | SLIDE 17
  • 19. NUGET.SERVER LIMITATIONS  Simple Implementation  Only 1 feed per web application  No granular security: 1 API key for all  Minimal UI  Conclusion:  Something more useful requires development JANUARY 16, 2013 | SLIDE 19
  • 20. NUGET-AS-A-SERVICE  www.myget.org  NaaS  No installation: Register and off you go!  Freemium  Key Features for enterprise scenarios  Granular security  Private feeds (ADFS supported)  Fine-grained permissions & an API key per user  Integration with (private) SymbolSource repositories  User & Quota management  Repository management  Package Retention Rules  Package Promotion & Mirroring JANUARY 16, 2013 | SLIDE 20
  • 21. CHANGE OF PERSPECTIVE NuGet as a package manager NuGet as a protocol for distributing packages JANUARY 16, 2013 | SLIDE 21
  • 22. NUGET AS A PROTOCOL  Distributing tools & software  www.Chocolatey.org  “Apt-Get” for Windows  WebPI support  Distributing Web sites  www.OctopusDeploy.com  Build results in .nupkg  Octopus deploys to its tentacles  Test/Staging/Production tentacles JANUARY 16, 2013 | SLIDE 22
  • 23. A GLIMPSE AT THE NUGET ECO-SYSTEM Develop Build Package Share Network Share Collaborate Deploy JANUARY 16, 2013 | SLIDE 23
  • 24. CAUTION  With great power comes great responsibility  Package creators: behave!  Componentize  Version  Minimal friction  Package publishers: control!  User permissions  Repository contents  Package consumers: validate!  No auto-updates JANUARY 16, 2013 | SLIDE 24
  • 25. OR IN CHICKEN TERMS… JANUARY 16, 2013 | SLIDE 25
  • 26. LAST BUT NOT LEAST  NuGet is OSS (Outercurve Foundation)  Microsoft’s involvement  Sponsors development  Results in:  Improved Visual Studio integration  Increased adoption of NuGet  Community involvement  Contribute ideas, code, documentation!  Share experiences, give feedback, submit issues  Discuss: http://jabbr.net/#/rooms/nuget  Package! JANUARY 16, 2013 | SLIDE 26
  • 27. CONCLUSION Dependencies & people are chickens Deal with them! NuGet can help NuGet is a tool Improve your process! NuGet can help Consumables vs Consumers Improve your process! NuGet can help NuGet as a package manager NuGet as a protocol JANUARY 16, 2013 | SLIDE 27
  • 28. http://www.xavierdecoster.com @xavierdecoster THANK YOU! Questions? Come get your MyGet stickers, you might get lucky!  Disclaimer: no chickens were hurt during the making of this presentation JANUARY 16, 2013 | SLIDE 28

Editor's Notes

  1. Reinventing the wheelWe don’tneedthatdependency“Iftheycan do it, we can do it, but better” Whathappenedtoreuse of components?Marketing-DrivenVersioningPeople are waitingfor v2 tobuyLet’s call it v4 Platform Update SP3 November Edition KB2348063 RTW Refresh We lost ownership of AssemblyVersion ?
  2. Rangersexplicitly deal withversioning in anuncontrolled environmentZookeepers (ISVs/SaaS) don’tbecausethey control the environmentIllusion: It's impossible to predict all future feature requirements.Applications don't exist in a vacuum. They depend on other applications, and other applications depend on them.The lack of versioning leads to impossible deadlines, slipping code quality, death marches
  3. Minimal friction: extract samples in separate packagesClean up your mess afteruninstall