Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Evolution of NuGet

20 views

Published on

NuGet is evolving to be much more than a Visual Studio extension used only for ASP.NET applications. Come see how NuGet can be used cross-platform and in new scenarios.

Published in: Software
  • Be the first to comment

  • Be the first to like this

Evolution of NuGet

  1. 1. Evolution of NuGet MonkeySpace 2013
  2. 2. Airborne (1993)
  3. 3. jeffhandley.com @jeffhandley jeff.handley@microsoft.com • 1993: In Airborne with Seth Green and Jack Black • 1994: Started writing code • 1995: Started full-time in the industry as a tester • Developed tiny, small, medium, large, and huge apps for 12½ years • Worked for tiny, small, and medium development shops • 2008: Joined Microsoft to work on RIA Services (eventually becoming development lead) • 2011: Joined the NuGet team in September • 2013: Development Lead for NuGet, the NuGet Gallery, and RIA Services Yes, I like Nine Inch Nails
  4. 4. Segway, photo by oskay http://blog.hansdezwart.info/2008/10/28/gaining-authority-by-riding-a-segway/
  5. 5. NuGet’s Conception
  6. 6. NuGet’s CoreTeam: September 2011 All Members Part-Time on NuGet • Phil Haack (pm) • Luan “dotnetjunky” Nguyen (dev) • Pranav Krishnamoorthy (dev) • Matthew Osborn (dev) • Alex Dion (test) • Drew Miller (test lead / gallery dev)
  7. 7. NuGet’s 2 ½-year History1/ 13/ 2011 1.0 2/ 12/ 2011 1.1 3/ 30/ 2011 1.2 4/ 25/ 2011 1.3 6/ 17/ 2011 1.4 8/ 30/ 2011 1.5 12/ 13/ 2011 1.6 Semantic Version Support (Prerelease) Package Restore Integrated Preinstalled Packages (Project Templates) Private Feeds Solution-Level Package Management Package Visualizer Package Cache Symbol Server Integration NuGet.exe and VS Share Config WiX+ .NET Micro Framework Profiles GAC References Introduced with ASP.NET MVC3 and Web Pages v1 12/ 5/ 2011 New NuGet.org Deployed 4/ 4/ 2012 1.7 5/ 23/ 2012 1.8 6/ 19/ 2012 2.0 10/ 4/ 2012 2.1 12/ 12/ 2012 2.2 2/ 15/ 2013 2.2.1 4/ 25/ 2013 2.5 6/ 26/ 2013 2.6 Networking Bug Fixes Improved Source Control Integration Satellite Package Support VaryAll Items by Target Framework Portable Class Library Support Hierarchical Configuration Specifying Packages Folder Location VS 2012 Quick Launch Specify Content Target Folder Localization Refresh Multi-Repository Preinstalled Packages build folder C++ Support Mono/ Xamarin Support (iOS/ Android/ Mac) Overwrite Content Update All 8/ 22/ 2012 In the box with Visual Studio 2012 RTM 4/ 4/ 2013 In the box with VS 2012 Update 2 In the box with VS 2013 Preview XDTTransforms Machine-Wide Config
  8. 8. NuGet’s CoreTeam: July 2013 All Members Full-Time on NuGet Client Crew • Luan “dotnetjunky” Nguyen (dev) • DeepakVerma (test) • Deepak Aravindakshan (dev) • Dan Liu (test) • Fei Ling (dev) Gallery Crew • Andrew Nurse (dev) • Bhuva Krishnamurthi (test) • Tim Lovell-Smith (dev) • Clay Compton (test) • JohnTaylor (dev) Howard Dierking Jeff Handley Ranjini Mathrubootham (pm) (dev lead) (test lead)
  9. 9. What we do Client Crew • NuGetVisual Studio Extension • http://nuget.codeplex.com • NuGet WebMatrix Extension • NuGet Command-Line (nuget.exe) • NuGet Package Explorer (http://npe.codeplex.com) • NuGet Packages • NuGet.Core • NuGet.Server • NuGet.VisualStudio Gallery Crew • NuGet Gallery • http://nuget.org • http://github.com/nuget/nugetgallery • NuGet Docs • http://docs.nuget.org • http://github.com/nuget/nugetdocs • Developer Operations • 1-week rotations • Monitoring and user support
  10. 10. What others do • MyGet (feeds, build) • Chocolatey • SharpDevelop Integration • Xamarin Studio Integration • CoApp’s native libraries • TeamCity Integration • Octopus Deploy • scriptcs • ProGet • Sonatype Nexus
  11. 11. http://technologytheorieswiki.wikispaces.com/Critical+Mass+Theory
  12. 12. Cost of reaching critical mass • Meeting Microsoft’s tenets for shipping withVisual Studio • Package Restore consent requirement  • Fulfilling requests from other Microsoft teams • Earning big bets from other products while avoiding “death by success” • Adapting to changes inVisual Studio and project systems • Partner team and release vehicle test passes • Aligning toVisual Studio ship schedules • Occasionally going dark while integrating withVisual Studio • Working within a Microsoft private fork of NuGet
  13. 13. http://scrapetv.com/News/News%20Pages/Technology/pages/YouTube-challenges-users-to-guess-how-much-money-its-losing-Scrape-TV-The-World-on-your-side.html#.Ue2Ou43rxbU
  14. 14. http://lapentoladoro.blogspot.com/2012/11/la-legalizzazione-delle-slot-mascin.html
  15. 15. NuGet 2.7 Late Summer 2013 DEMO
  16. 16. NuGet 2.7 Late Summer 2013 • Automatic Package Restore inVS • Add ‘Restore’ command to nuget.exe • Package Restore Consent ON BY DEFAULT! • Group Policy control over default package sources • Omit development-only dependencies when packing (Adam Ralph) • Support XNA forWindows Phone • Support pre-installed packages outside ofVSTemplates • Build errors/warnings for packages that need reinstallation
  17. 17. http://ib2-business-p7.wikispaces.com/1.3+Organizational+Objectives
  18. 18. Discovery • Context-sensitive enumeration and search • Packages recently installed directly into the current target framework • Statistics and reports for package authors and consumers • Editable package metadata • Package discovery through graphs • Follow packages, owners, and users to generate custom feeds • OAuth and authentication throughVisual Studio’s sign in
  19. 19. Trust • Organizations or team accounts • Owner reputation • Friendly license names and filters • Feeds for owners’ packages and followed packages • Signed packages?
  20. 20. Constraint Dependency upper-bounds suck!
  21. 21. http://jadedalt.wordpress.com/2012/06/12/the-mmo-tab/
  22. 22. Incompatibility • Create a system for reporting package incompatibilities • Incompatibilities would be checked before package installation • Warning you about the risk, not preventing you from doing your work • “Stop trying to be clever and get out of my way!” • Also works for packages that aren’t dependencies of one another
  23. 23. API • RESTful API v3 • For use by the NuGet clients • For use by ecosystem projects • OData will be eventually consistent
  24. 24. Installation <NuGetPackageReference id=“Glimpse.Mvc4” version=“1.3.2” source=“nuget.org” /> <NuGetPackageReference project=“MyOrg.CommonExtensions” /> • Minimize modifications to the project file • Resolve references at build time for better retargeting and multi-targeting • Treat direct installs differently from dependencies • Source-specific updates and restores • Global package installations (important for native) • nuget.exe install / nuget.exe uninstall (will require new functionality from XBuild) • Replace PowerShell with Roslyn (install.csx/uninstall.csx)
  25. 25. Build • NuGet packages as a natural part of build • NuGet packages replace assemblies as the natural unit of reference • Will require deeper integration with MSBuild and XBuild
  26. 26. http://www.flickr.com/photos/thomasguest/5491482766/
  27. 27. http://www.flickr.com/photos/cool_dry_place/524794828/
  28. 28. Newtonsoft.Json http://getrealphilippines.com/blog/2011/08/the-catch-phrase-administration-of-president-noynoy-aquino/
  29. 29. Evolution of NuGet • Ensure great package discovery at 100,000+ packages • Establish trust relationships between package authors and consumers • Minimize package installation constraints, while raising incompatibility awareness • Create a RESTful API for improved ecosystem growth • Change package installation to assume NuGet ubiquity but maintain portability • Move logic from installation to build to adapt to project changes • Increase our openness • Engage our cross-platform partners, contributors, and users • Capitalize onVisual Studio integration and support, but don’t require it
  30. 30. Q & A Get some stickers @jeffhandley jeffhandley.com jeff.handley@microsoft.com

×