The Zen of Package Management Microsoft Ignite 2016 5/9/2018 11:13 AM The Zen of Package Management NET324 Anthony Borton © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Who am I? Anthony Borton VSTS/TFS/DevOps trainer and consultant Microsoft Ignite 2016 5/9/2018 11:13 AM Who am I? Anthony Borton VSTS/TFS/DevOps trainer and consultant @AnthonyBorton anthonyb@enhancealm.com.au www.alm-training.com Microsoft Visual Studio and Development Technologies MVP Microsoft Certified Professional since 1993 Microsoft Certified Trainer since 1996 © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
With success comes pain Microsoft Ignite 2016 5/9/2018 11:13 AM With success comes pain Our small team grows into multiple teams Our codebase is growing Our teams start stepping on each others work We need to look into componentisation Our teams need an effective way to share reusable components © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Package componentisation Packages address many of the challenges of referencing binaries. Instead of checking them into source, you can have a solution B produce its binaries into NuGet packages that another solution A can then consume.
Building a culture of code sharing Microsoft Ignite 2016 5/9/2018 11:13 AM Building a culture of code sharing How it used to be How it can be Team A One team writes; others re-use and improve it Team B Team C Team A Team B Duplicate, wasted effort Team C Each team writes the common component that they need © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Package Management 5/9/2018 11:13 AM © 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Introducing Package Management Microsoft Ignite 2016 5/9/2018 11:13 AM Introducing Package Management Package Management is an extension that makes it easy to discover, install, and publish packages It offers deep integration into TFS and VSTS TFS 2015 Not supported TFS 2017 Built-in VSTS Marketplace extension © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Support for different package types? Visual Studio 11 5/9/2018 Support for different package types? Microsoft Package Management initially supported only NuGet packages but since its release other package types are being added. Package type Components Package Management Support NuGet .Net Assemblies Supported npm Nodejs packages Maven POM and JAR files Planned for 2017 Q1 in VSTS Bower Web front-end (Eg. HTML,CSS, Javascript) Not currently supported Cocoapods Swift and Objective-C Cocoa projects Conda Conda packages used in Python © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Enhancements for NuGet feeds Manage the full lifecycle of your packages with support for unlist and delete. Acquire package straight from the web using the Download button These are also available through the REST API
Demo Adding Package Management to our VSTS account Anthony Borton Microsoft Ignite 2016 5/9/2018 11:13 AM Demo Adding Package Management to our VSTS account Anthony Borton © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
What are feeds? Feeds provide a way for you to organise your packages in a logical and convenient way for developers to find Feeds allow you to define secure access for readers, contributors and owners in the same way you are now Feeds are the point of connection for users of your packages.
Microsoft Ignite 2016 5/9/2018 11:13 AM Creating a new feed Create a new feed by providing the following details. © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Feed level permissions Visual Studio 11 5/9/2018 Feed level permissions Feeds have three levels of access: Owners, Contributors, and Readers. By default, the Project Collection Build Service is a Contributor and your project team is a Reader Permission Reader Contributor Owner List and restore/install packages Push packages Unlist packages Delete packages Edit feed permissions Rename and delete feed © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
How to edit feed permissions Visual Studio 11 5/9/2018 How to edit feed permissions To view or modify permissions for a feed, open the Packages hub, select the feed you want to view, then click the edit icon or you can choose edit in the context menu. © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Demo Creating a new feed Anthony Borton Microsoft Ignite 2016 5/9/2018 11:13 AM Demo Creating a new feed Anthony Borton © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Publishing packages using a CI/CD pipeline We want to be able to streamline the packaging and publishing of our components. TFS and VSTS both provide helpful steps to make this quick and painless.
Demo Creating a CI/CD Pipeline for our packages Anthony Borton Microsoft Ignite 2016 5/9/2018 11:13 AM Demo Creating a CI/CD Pipeline for our packages Anthony Borton © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Consuming our packages Microsoft Ignite 2016 5/9/2018 11:13 AM Consuming our packages Once our feeds are created and our packages have been uploaded, we’re ready to consume them in our projects. © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Microsoft Ignite 2016 5/9/2018 11:13 AM Release views Release views enable you to communicate the quality of a package-version after that package-version has been tested and/or validated. © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Microsoft Ignite 2016 5/9/2018 11:13 AM Release views Release views filter the feed to a subset of the feed's package-versions that have been promoted into that view. By default, every feed has two release views: Prerelease and Release. © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Demo Consuming packages from our feed Anthony Borton Microsoft Ignite 2016 5/9/2018 11:13 AM Demo Consuming packages from our feed Anthony Borton © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Not just NuGet packages Microsoft Ignite 2016 5/9/2018 11:13 AM Not just NuGet packages Are you an ASP.NET developer? How about NodeJS or React? You’ll be pleased to know that Package Management supports npm feeds! The npm client is designed to talk to a single npm registry. Package Management supports npmjs.com as an upstream source allowing you to host private packages while still consuming public ones. © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Demo Package Management for npm Anthony Borton Microsoft Ignite 2016 5/9/2018 11:13 AM Demo Package Management for npm Anthony Borton © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
In conclusion Package Management is available today in VSTS and TFS 2017. It allows you to manage the full lifecycle of your packages. While NuGet and npm are supported today, keep an eye out for support coming for other package types.
Continue your Ignite learning path 5/9/2018 11:13 AM Continue your Ignite learning path Visit Channel 9 to access a wide range of Microsoft training and event recordings https://channel9.msdn.com/ Head to the TechNet Eval Centre to download trials of the latest Microsoft products http://Microsoft.com/en-us/evalcenter/ Visit Microsoft Virtual Academy for free online training visit https://www.microsoftvirtualacademy.com © 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Win a Spark After Dark drone pilot pass by completing your session evaluation ASAP #MSAUIGNITE
5/9/2018 11:13 AM Thank you Chat with me in the Speaker Lounge Find me @AnthonyBorton or anthonyb@enhancealm.com.au © 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.