Using Inedo’s ProGet to Manage Our NuGet Packages
We take a look at how one development team is using Inedo's open source and freely available solution to make working with NuGet packages easier.
Join the DZone community and get the full member experience.Join For Free
In the world of modern software development, libraries are usually distributed using different packaging technologies depending on the platform (NuGet, npm, bower, ruby gems, etc.).
Starting from Infragistics 16.2, we've provided NuGet packages for all Infragistics’ UI controls for licensed users through our package repository at https://packages.infragistics.com. It includes NuGet and npm packages for our .NET/Xamarin and HTML/JS components. NuGet packages that are installed on the developer’s hard drive for both licensed and trial assemblies.
We have been successfully using ProGet from Inedo to manage our packages in two core scenarios:
- For internal use, allowing us to push new internal versions of our components after each build so they can be used for internal evaluation.
- To enable our customers, install and get updates of our components whenever they are available, without the need of running an installer.
The goal of this document is to explain how to set an internal feed for the Infragistics’ NuGet packages using ProGet.
The first step is to install ProGet. You can get the installer from https://inedo.com/proget/download. For the sake of this article, we’d assume ProGet is installed with the default settings on the local machine, and it will be accessible in the http://localhost:8624 URL.
We’ll use Infragistics Ultimate UI for Xamarin which can be downloaded here: https://www.infragistics.com/products/xamarin.
Creating a NuGet Feed for Infragistics Packages
After you install the product and log-in to it, you need to create a feed to host the packages. To do that you need to:
- Click the “Feeds” link or go to http://localhost:8624/feeds:
- Click the CreateNew Feed button. If you are not authenticated, it will ask you for a user/password (the default is Admin/Admin), and you’ll see a dialog from where you can select the feed type, as can be seen below, ProGet supports most packaging formats:
- SelectNuGet as the feed type, setting the feed name to “Infragistics.”
- Click “Create Feed.” You’ll be taken to the page below where you can further configure the feed, you don’t need to change the default values for now:
- Click“Add Package” to find out about the different ways to add packages to the feed:
- Add the packages at C:\Users\Public\Documents\Infragistics\NuGet, by either
- Manually uploading them from disk, one by one.
- Using the“Push via NuGet Command Line Utility” option to add them all. Note that you’ll need to use user as the ApiKey:
- nuget.exe push C:\Users\Public\Documents\Infragistics\NuGet\*.nupkg -ApiKey Admin:Admin -Source http://localhost:8624/nuget/infragistics
You should be able to see the packages in the ProGet page for the feed at http://localhost:8624/feeds/infragistics:
Using the Infragistics Xamarin Packages in Visual Studio
After creating the feed, we need to tell Visual Studio about it by creating a package source, following the steps below:
- Run Visual Studio.
- Navigate to Tools | Options |NuGet Package Manager.
- Add an entry in the “Available package sources,” using “InfragisticsProGet Source” as the name and http://localhost:8624/nuget/infragistics as the source:
The next step is to create a Xamarin project and references to Infragistics’ controls.
- Create an Infragistics AppMap project, as it simplifies the process of creating a well architected Xamarin App:
- Select the platform you want to use. Android is selected by default as it’s usually simpler to run Android apps in Windows.
- Create a simple application with just one content page using Infragistics’ AppMap:
- Right-click on the ‘References’ project item and select “Manage NuGet Packages.”
- In the“Package source” drop-down select “Infragistics ProGet Source,” click the “Browse” tab:
- Install theCore.DataGrid package
Xamarin does not currently provide a Toolbox for components installed through NuGet. Infragistics filled that gap by providing a Xamarin.Forms Toolbox that can look at the NuGet packages installed in the project, and enable developers to drag-and-drop controls into the XAML editor. To use the toolbox in Visual Studio you need to:
- Click View | Other Windows | Infragistics Toolbox, to display the toolbox. You’ll see only the Infragistics controls for which you added packages and the standardForms controls:
- From the Toolbox, drag “XamDataGrid” to the XAML editing surface:
Using NuGet packages has become a standard in .NET development, and newer platforms like Xamarin are built on top of it. Infragistics Ultimate for Xamarin leverages NuGet and adds significant value for Xamarin developers. Package Managers have become a critical piece of development infrastructure and Inedo’s ProGet provides a seamless solution to that problem.
Published at DZone with permission of Sarah Roman, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.