- gRPC UI support for .NET Aspire.
- Minio support for .NET Aspire.
Install grpcui on your local machine.
- Windows
- Download from grpcui/releases
- Add PATH to
grpcui.exe
- Mac
brew install grpcui
Please check if grpcui is available by using the following command.
$ grpcui -version
And add package to your Aspire AppHost project.
$ dotnet add package AspireExtensions.GrpcUI
AspireExtensions.GrpcUI provide WithGrpcUI() method.
Use WithGrpcUI() in your Aspire AppHost project.
using Aspire.Hosting;
var builder = DistributedApplication.CreateBuilder(args);
builder.AddProject<Projects.MyGrpcService>("grpcservice")
.WithGrpcUI(port: 54321); // <- Add this!
builder.Build().Run();gRPC Reflection must be enabled to use the gRPC UI.
First, add Grpc.AspNetCore.Server.Reflection to your gRPC service project.
$ dotnet add package Grpc.AspNetCore.Server.Reflection
Then use AddGrpcReflection() and MapGrpcReflectionService().
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddGrpc();
if (builder.Environment.IsDevelopment())
{
builder.Services.AddGrpcReflection(); // <- Add this!
}
var app = builder.Build();
// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
app.MapGrpcReflectionService(); // <- Add this!
}
app.MapGrpcService<GreeterService>();
app.Run();Next, use WithGrpcUI() in your Aspire AppHost project.
using Aspire.Hosting;
var builder = DistributedApplication.CreateBuilder(args);
builder.AddProject<Projects.MyGrpcService>("grpcservice")
.WithGrpcUI(port: 54321); // <- Add this!
builder.Build().Run();Launch Aspire! You will see that grpcui is running.
By clicking endpoint on the Aspire dashboard, you can easily access the gRPC UI!
$ dotnet add package AspireExtensions.Hosting.Minio
AspireExtensions.Hosting.Minio provide AddMinio() and AddBucket method.
var builder = DistributedApplication.CreateBuilder(args);
var minio = builder.AddMinio(
name: "minio",
userName: builder.AddParameter("MinioUser"),
password: builder.AddParameter("MinioPassword")
)
.WithImageTag("RELEASE.2025-07-23T15-54-02Z")
.WithDataVolume("my.minio.volume");
var bucketCreation = minio.AddBucket(["my-bucket-1", "my-bucket-2"])
.WithImageTag("RELEASE.2025-07-21T05-28-08Z");
var webapi = builder.AddProject<Projects.MyWebApi>("webapi")
.WithReference(minio)
.WaitFor(minio)
.WaitForCompletion(bucketCreation);$ dotnet add package AspireExtensions.Minio.Client
AspireExtensions.Minio.Client provide AddMinioClient().
var builder = WebApplication.CreateBuilder(args);
builder.AddMinioClient("minio");
