Purview.Aspire.ResourceKit
1.0.0-prerelease.8
See the version list below for details.
dotnet add package Purview.Aspire.ResourceKit --version 1.0.0-prerelease.8
NuGet\Install-Package Purview.Aspire.ResourceKit -Version 1.0.0-prerelease.8
<PackageReference Include="Purview.Aspire.ResourceKit" Version="1.0.0-prerelease.8" />
<PackageVersion Include="Purview.Aspire.ResourceKit" Version="1.0.0-prerelease.8" />
<PackageReference Include="Purview.Aspire.ResourceKit" />
paket add Purview.Aspire.ResourceKit --version 1.0.0-prerelease.8
#r "nuget: Purview.Aspire.ResourceKit, 1.0.0-prerelease.8"
#:package Purview.Aspire.ResourceKit@1.0.0-prerelease.8
#addin nuget:?package=Purview.Aspire.ResourceKit&version=1.0.0-prerelease.8&prerelease
#tool nuget:?package=Purview.Aspire.ResourceKit&version=1.0.0-prerelease.8&prerelease
Purview.Aspire.ResourceKit
Purview.Aspire.ResourceKit is a source-generator-powered framework for structuring .NET Aspire AppHost resource composition as strongly typed, test-friendly classes.
If your AppHost is getting bigger, this helps you keep resource setup maintainable and discoverable by moving composition into focused resource classes and generating the plumbing for you.
Lifecycle quick links
- Build vs Configure guidance:
docs/getting-started.md#5-understand-build-vs-configure-before-adding-dependencies - Runtime enablement (
IsEnabled+IsResourceEnabled(...)):docs/configuration.md#isenabled-vs-isresourceenabled
Why teams use it
- Cleaner AppHost code with resource logic split into dedicated classes.
- Strong typing + IntelliSense instead of stringly-typed setup.
- Generated wiring for host/resource options and registration.
- Predictable lifecycle (
BuildthenConfigure) for inter-resource dependencies. - Testability with options overrides and isolated resource composition.
Quick example
using Aspire.Hosting;
using Aspire.Hosting.ApplicationModel;
using Purview.Aspire.ResourceKit;
[HostKit]
partial class ShopHostKit;
[ResourceDefinition<ProjectResource>("api")]
partial class ApiResourceKit
{
protected override IResourceBuilder<ProjectResource> BuildResource(IDistributedApplicationBuilder builder)
=> builder.AddProject<Projects.Example_Service>(Name);
}
var builder = DistributedApplication.CreateBuilder(args);
builder.AddAspireResourceKit();
The extension method name is generated from your host metadata; in this repository sample it is
AddAspireResourceKit().
Lifecycle mental model (early cheat sheet)
ResourceKit has two layers of lifecycle methods:
Build/BuildResource(...): construct this resource (AddProject,AddRedis, etc.).Configure/ConfigureResource(): attach resources to each other (references, bindings, cross-resource wiring).
Enablement is evaluated before resource construction:
IsEnabledis the persisted toggle (typically from generated options).IsResourceEnabled(builder)is the runtime hook used byBuildto decide whether this resource should run now.- If it evaluates to
false, bothBuildResource(...)andConfigureResource()are skipped for that resource.
Use IsResourceEnabled(builder) when enablement depends on runtime state (environment, config, publish mode, etc.), not just static options.
What gets generated
From your [HostKit] and [ResourceDefinition] declarations, ResourceKit generates:
- a host resource base class,
- resource properties on the host,
- host + per-resource options (when enabled),
- an AppHost extension method to build/configure/register your host kit.
Learn more
- NuGet package deep dive (API and generator behavior):
src/src/ResourceKit/README.md - Getting started guide:
docs/getting-started.md - Configuration and options patterns:
docs/configuration.md - Diagnostics and troubleshooting:
docs/diagnostics.md - Workspace notes for contributors:
src/README.md
Repository layout
src/src/ResourceKit— runtime package source.src/src/SourceGeneration— Roslyn source generator.src/src/Example.*— sample Aspire applications.src/tests/*— unit and integration tests.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Aspire.Hosting (>= 13.4.6)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Telemetry.Abstractions (>= 10.8.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0-prerelease.20 | 38 | 8/27/2026 |
| 1.0.0-prerelease.19 | 100 | 8/16/2026 |
| 1.0.0-prerelease.18 | 61 | 8/14/2026 |
| 1.0.0-prerelease.17 | 58 | 8/13/2026 |
| 1.0.0-prerelease.16 | 56 | 8/12/2026 |
| 1.0.0-prerelease.15 | 61 | 8/10/2026 |
| 1.0.0-prerelease.14 | 56 | 8/5/2026 |
| 1.0.0-prerelease.13 | 54 | 8/5/2026 |
| 1.0.0-prerelease.12 | 60 | 8/4/2026 |
| 1.0.0-prerelease.11 | 66 | 8/2/2026 |
| 1.0.0-prerelease.10 | 62 | 8/2/2026 |
| 1.0.0-prerelease.9 | 68 | 7/31/2026 |
| 1.0.0-prerelease.8 | 63 | 7/29/2026 |
| 1.0.0-prerelease.7 | 58 | 7/28/2026 |
| 1.0.0-prerelease.6 | 67 | 7/27/2026 |
| 1.0.0-prerelease.5 | 64 | 7/26/2026 |
| 1.0.0-prerelease.4 | 61 | 7/26/2026 |
| 1.0.0-prerelease.3 | 63 | 7/26/2026 |
| 1.0.0-prerelease.2 | 57 | 7/24/2026 |
| 1.0.0-prerelease.1 | 58 | 7/24/2026 |