ProGet Documentation

Universal Feeds in ProGet

Super simple package management that's actually meant for your applications!

Previously, this was done by shoehorning your builds into packages designed for .NET libraries or Maven projects, and using the often-awkward clients . Now, ProGet's Universal Feeds and Packages give you all the same value and control of package managers for your application. You’re able to manage your applications as simply as you develop them.

Universal Packages already support most of the metadata that most organizations need for application packaging, but they allow you to add as much additional metadata as needed. And because they're hosted in a ProGet feed, you can use connectors and retention policies as you would with any other feed.

Universal Feeds as a Platform

In addition to serving as a repository for your application, Universal Feeds and Packages can be easily extended to serve for more specific packaging needs.

Example: Auto-Installing Packages

Although Chocolatey packages are already designed as machine packages, its specific behavior may not be desired by all organizations. Instead of forking and modifying Chocolatey's source code, it may be a lot easier to simply build a platform on top of Universal Packages.

The package format allows any additional metadata or meta-files (such as scripts) in a package, meaning nothing special on the ProGet Universal Feed would need to change. The packages could be manually created or built with a script using another tool.

The installer client could be built with any language, and would use the Universal Feed API to download packages (and, optionally, their dependencies), unzip them, and run a built-in installation script.

Example: Extensions & Plug-ins

As an application release automation tool, BuildMaster has a lot of integrations with Continuous Integration servers, Issue Trackers, and more. These are actually delivered as a ProGet Universal Feed:

Built-in Metadata Extended Metadata
  • Name
  • Version
  • Title
  • Icon Url
  • Description
  • Download Count
  • Dependencies
  • Compatible SDK Version
  • Extension Source Code URL

Because Universal Feeds allow extended metadata, these two missing metadata elements were trivially simple to add as properties. Additionally, BuildMaster customers are able to set up a Universal Feed in their own ProGet server (perhaps with a connector to Inedo's feed), and then have BuildMaster point to that instead.

Example: Deploying ASP.NET and Windows Service Applications

To learn more about deploying a Windows Service application package from a ProGet Universal Feed, to a server that will be set up and provisioned within Otter, check out the tutorial. A simple application setup like this is often the first step towards incremental adoption of a robust, Infrastructure as Code practice.

More on this topic: