Orc.NuGetExplorer
| Name | Badge |
|---|---|
| Chat | |
| Downloads | |
| Stable version | |
| Unstable version |
This library provides everything you need to explore and download packages from the NuGet gallery as well as any private feed.
It can be used as part of a plugin system for your application.
Features
- WPF user interface
- Explore packages that are:
- Already installed
- Available online
- Ready to be updated
- Support package sources, which requires authentication
- Smart update (Recommends updates for your plugins)
- Verification of package source
- Ability to work in the background
NuGet Packages
library consists of two NuGet packages:
- Orc.NuGetExplorer => Core logic, which can be used to work in the background.
- Orc.NuGetExplorer.Xaml => Provides the UI for
Orc.NuGetExplorer
Screenshots
Packages available:

Available updates:

Recommended updates:

How to use
NuGetExplorer is made up of several services:
INuGetConfigurationService=> Configure NuGetExplorerINuGetFeedVerificationService=> Verify the package source feedIPackageBatchService=> Show a window with a list of package to take action onIPackageOperationService=> Execute an operation with the package (Install, Uninstall or Update)IPackageQueryService=> Can be used to search packages in the backgroundIPackagesUIService=> Show the NuGetExplorer windowIPackagesUpdatesSearcherService=> Used for searching updates with the options of release/prerelease/recommendedIRepositoryService=> Used to get access to specific repositories. Can be used in conjunction withIPackageQueryService
Watcher:
PackageManagerWatcherBase=> Abstract class, which is used to create a watcher for package management operations
Examples
Usage of IPackagesUIService for showing NuGetExplorer dialog box
public class NuGetManager
{
private readonly IPackagesUIService _packagesUiService;
public NuGetManager(IPackagesUIService packagesUiService)
{
Argument.IsNotNull(() => packagesUiService);
_packagesUiService = packagesUiService;
}
private async Task ShowNuGetDialog()
{
await _packagesUiService.ShowPackagesExplorer();
}
}
Use IPackageBatchService and IPackagesUpdatesSearcherService for checking for updates
public class SmartUpdater
{
private readonly IPackagesUpdatesSearcherService _packagesUpdatesSearcherService;
private readonly IPackageBatchService _packageBatchService;
public SmartUpdater(IPackageBatchService packageBatchService, IPackagesUpdatesSearcherService packagesUpdatesSearcherService)
{
Argument.IsNotNull(() => packageBatchService);
Argument.IsNotNull(() => packagesUpdatesSearcherService);
_packageBatchService = packageBatchService;
_packagesUpdatesSearcherService = packagesUpdatesSearcherService;
}
private async Task ShowRecommenedUpdates()
{
var packages = await _packagesUpdatesSearcherService.SearchForUpdatesAsync(false);
await _packageBatchService.ShowPackagesBatchAsync(packages, PackageOperationType.Update);
}
}
Contributions
We would like to thank the following contributors:
Want to contribute to the documentation? We have a guide for that!
Questions
Have a question about Catel or WildGums controls? Use StackOverflow with the Catel tag!