Centralization

A major benefit of such systems is that they can provide centralized access to various kinds of resources for different workloads. A good gallery will not only let you host a NuGet feed for PowerShell modules, but perhaps also a Docker registry for your company's container images.

The systems that can be used vary widely. For PowerShell modules that can be released publicly, the PowerShell Gallery is the de-facto standard. While there is an open source version of the code on GitHub, it is very likely that it will not be released in the near future.

The following tools are better suited to hosting a NuGet feed that can be used from within PowerShell. Each tool has its own advantages and disadvantages. While an open source tool that is free might be well-suited to very small scenarios that don't require much control, a big enterprise might elect to use an enterprise-grade solution or a CI/CD tool with an integrated package feed:

Product

URL

Description

NuGet Gallery https://github.com/NuGet/NuGetGallery .NET Foundation's open source NuGet feed
Inedo ProGet https://inedo.com/proget Enterprise solution with many feed types
Visual Studio Team Services https://visualstudio.com CI/CD with package feed
JFrog Artifactory https://jfrog.com/artifactory/ Enterprise solution with many feed types
Inedo NuGet server (community edition) http://nugetserver.net Inexpensive NuGet-only feed that can also be hosted on-premises at no additional cost
NuGet server (open source) https://github.com/svenkle/nuget-server Open source wrapper around the NuGet Gallery, self-contained hosting with IIS Express
Sonatype Nexus https://www.sonatype.com/nexus-repository-sonatype Enterprise solution with many feed types
JetBrains TeamCity https://www.jetbrains.com/teamcity CI/CD with package feed

 

We can only recommend that you give all tools a try. Developers already working with JetBrains ReSharper might feel at home with TeamCity and .NET developers working with Visual Studio Team Services might appreciate the integrated package feed. In the end, the solution needs to be easy to use, scalable, and stable in order to gain traction and the trust of operations staff and developers alike.

In the following sections, we will be building our own system from scratch using the .NET Foundation's NuGet Gallery. But first of all, let's have a look at PackageManagement, one of the necessary components when interacting with package repositories.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset