Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
10 changes: 5 additions & 5 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ updates:
- area-engineering-systems

- package-ecosystem: npm
directory: "samples/aspire-with-javascript/AspireJavaScript.Angular"
directory: "samples/dotnet/aspire-with-javascript/AspireJavaScript.Angular"
schedule:
interval: weekly
open-pull-requests-limit: 1
Expand All @@ -73,7 +73,7 @@ updates:
- area-engineering-systems

- package-ecosystem: npm
directory: "samples/aspire-with-javascript/AspireJavaScript.React"
directory: "samples/dotnet/aspire-with-javascript/AspireJavaScript.React"
schedule:
interval: weekly
open-pull-requests-limit: 1
Expand All @@ -98,7 +98,7 @@ updates:
- area-engineering-systems

- package-ecosystem: npm
directory: "samples/aspire-with-javascript/AspireJavaScript.Vue"
directory: "samples/dotnet/aspire-with-javascript/AspireJavaScript.Vue"
schedule:
interval: weekly
open-pull-requests-limit: 1
Expand All @@ -123,7 +123,7 @@ updates:
- area-engineering-systems

- package-ecosystem: npm
directory: "samples/aspire-with-javascript/AspireJavaScript.Vite"
directory: "samples/dotnet/aspire-with-javascript/AspireJavaScript.Vite"
schedule:
interval: weekly
open-pull-requests-limit: 1
Expand All @@ -142,7 +142,7 @@ updates:
- area-engineering-systems

- package-ecosystem: npm
directory: "samples/aspire-with-node/NodeFrontend"
directory: "samples/dotnet/aspire-with-node/NodeFrontend"
schedule:
interval: weekly
open-pull-requests-limit: 1
Expand Down
141 changes: 94 additions & 47 deletions .github/for.dependabot.only.sln

Large diffs are not rendered by default.

36 changes: 18 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,26 +18,26 @@ Samples for [Aspire](https://aspire.dev).

| Sample | Workload languages | AppHost | Deploy | Description |
| --- | --- | --- | --- | --- |
| [Integrating Frontend Apps](./samples/aspire-with-javascript) | JavaScript, TypeScript | C# AppHost | Run only | React, Vue, and Angular frontends integrated with Aspire. |
| [Integrating Frontend Apps](./samples/dotnet/aspire-with-javascript) | JavaScript, TypeScript | C# AppHost | Run only | React, Vue, and Angular frontends integrated with Aspire. |
| [Node + Redis + Vite](./samples/node-express-redis) | JavaScript, TypeScript | TypeScript AppHost | Docker Compose | Express API + React/Vite frontend + Redis behind YARP. |
| [Vite + YARP Static Files](./samples/vite-yarp-static) | JavaScript, TypeScript | TypeScript AppHost | Docker Compose | Vite frontend served through YARP in run and publish modes. |

### Polyglot full-stack

| Sample | Workload languages | AppHost | Deploy | Description |
| --- | --- | --- | --- | --- |
| [Integrating Python Apps](./samples/aspire-with-python) | Python, JavaScript | C# AppHost | Run only | FastAPI backend + React frontend integrated with Aspire. |
| [Vite + C# + PostgreSQL](./samples/vite-csharp-postgres) | C#, JavaScript, TypeScript | TypeScript AppHost | Docker Compose | React frontend + C# API + PostgreSQL in a single Aspire app. |
| [Integrating Python Apps](./samples/dotnet/aspire-with-python) | Python, JavaScript | C# AppHost | Run only | FastAPI backend + React frontend integrated with Aspire. |
| [Vite + C# + PostgreSQL](./samples/dotnet/vite-csharp-postgres) | C#, JavaScript, TypeScript | TypeScript AppHost | Docker Compose | React frontend + C# API + PostgreSQL in a single Aspire app. |
| [Vite + React + FastAPI](./samples/vite-react-fastapi) | Python, JavaScript, TypeScript | TypeScript AppHost | Docker Compose | React frontend + FastAPI backend behind YARP. |
| [Polyglot Task Queue](./samples/polyglot-task-queue) | JavaScript, Python, C# | TypeScript AppHost | Docker Compose | React + Node API + Python/C# workers coordinated through RabbitMQ. |
| [Polyglot Task Queue](./samples/dotnet/polyglot-task-queue) | JavaScript, Python, C# | TypeScript AppHost | Docker Compose | React + Node API + Python/C# workers coordinated through RabbitMQ. |
| [RAG Document Q&A](./samples/rag-document-qa-svelte) | Python, JavaScript | TypeScript AppHost | Run only | Svelte frontend + FastAPI + Qdrant + OpenAI. |

### Backend integrations by language

| Sample | Workload languages | AppHost | Deploy | Description |
| --- | --- | --- | --- | --- |
| [Integrating a Node.js App](./samples/aspire-with-node) | JavaScript | C# AppHost | Run only | Integrates a Node.js backend with Aspire. |
| [Integrating a Go App](./samples/container-build) | Go | C# AppHost | Docker Compose | Builds and runs a Go Gin app from a Dockerfile with Aspire. |
| [Integrating a Node.js App](./samples/dotnet/aspire-with-node) | JavaScript | C# AppHost | Run only | Integrates a Node.js backend with Aspire. |
| [Integrating a Go App](./samples/dotnet/container-build) | Go | C# AppHost | Docker Compose | Builds and runs a Go Gin app from a Dockerfile with Aspire. |
| [Go API](./samples/golang-api) | Go | TypeScript AppHost | Docker Compose | Go + chi API with Aspire-managed run and publish flows. |
| [Python FastAPI + PostgreSQL](./samples/python-fastapi-postgres) | Python | TypeScript AppHost | Docker Compose | FastAPI CRUD API wired to PostgreSQL and pgAdmin. |
| [Python OpenAI Agent](./samples/python-openai-agent) | Python | TypeScript AppHost | Docker Compose | FastAPI AI agent sample with OpenAI integration. |
Expand All @@ -47,23 +47,23 @@ Samples for [Aspire](https://aspire.dev).

| Sample | Workload languages | AppHost | Deploy | Description |
| --- | --- | --- | --- | --- |
| [Azure Functions](./samples/aspire-with-azure-functions) | C# | C# AppHost | Azure | Integrates Azure Functions, ASP.NET Core, and Blazor with Aspire. |
| [Image Gallery](./samples/image-gallery) | C#, JavaScript, TypeScript | C# AppHost | Azure | Upload and process images with Azure Blob, Queues, SQL, and Container Apps Jobs. |
| [Custom Metrics Visualization](./samples/Metrics) | C# | C# AppHost | Run only | Collects and visualizes custom metrics with Prometheus and Grafana. |
| [Standalone Aspire dashboard](./samples/standalone-dashboard) | C# | C# AppHost | Run only | Runs the Aspire dashboard container against any OpenTelemetry source. |
| [Azure Functions](./samples/dotnet/aspire-with-azure-functions) | C# | C# AppHost | Azure | Integrates Azure Functions, ASP.NET Core, and Blazor with Aspire. |
| [Image Gallery](./samples/dotnet/image-gallery) | C#, JavaScript, TypeScript | C# AppHost | Azure | Upload and process images with Azure Blob, Queues, SQL, and Container Apps Jobs. |
| [Custom Metrics Visualization](./samples/dotnet/Metrics) | C# | C# AppHost | Run only | Collects and visualizes custom metrics with Prometheus and Grafana. |
| [Standalone Aspire dashboard](./samples/dotnet/standalone-dashboard) | C# | C# AppHost | Run only | Runs the Aspire dashboard container against any OpenTelemetry source. |

### .NET + frontend and platform

| Sample | Workload languages | AppHost | Deploy | Description |
| --- | --- | --- | --- | --- |
| [Aspire Shop](./samples/aspire-shop) | C# | C# AppHost | Run only | Distributed e-commerce sample app demonstrating Aspire integration. |
| [HealthChecksUI](./samples/health-checks-ui) | C# | C# AppHost | Docker Compose | Demonstrates isolated health endpoints with HealthChecksUI. |
| [Integrating Client Apps](./samples/client-apps-integration) | C# | C# AppHost | Run only | Integrates Windows Forms and WPF apps with Aspire. |
| [Integrating Orleans](./samples/orleans-voting) | C# | C# AppHost | Run only | Distributed actor model sample built with Orleans. |
| [Working with Database Containers](./samples/database-containers) | C#, SQL | C# AppHost | Run only | Initializes and uses PostgreSQL, MongoDB, and SQL Server containers. |
| [Running EF Core Migrations](./samples/database-migrations) | C# | C# AppHost | Run only | Runs Entity Framework Core migrations inside Aspire workflows. |
| [Persisting Data with Volume Mounts](./samples/volume-mount) | C# | C# AppHost | Run only | Demonstrates data persistence with containers, Azure Storage, and SQL Server. |
| [Custom Aspire hosting resources](./samples/custom-resources) | C# | C# AppHost | Run only | Demonstrates authoring custom hosting resources with Aspire. |
| [Aspire Shop](./samples/dotnet/aspire-shop) | C# | C# AppHost | Run only | Distributed e-commerce sample app demonstrating Aspire integration. |
| [HealthChecksUI](./samples/dotnet/health-checks-ui) | C# | C# AppHost | Docker Compose | Demonstrates isolated health endpoints with HealthChecksUI. |
| [Integrating Client Apps](./samples/dotnet/client-apps-integration) | C# | C# AppHost | Run only | Integrates Windows Forms and WPF apps with Aspire. |
| [Integrating Orleans](./samples/dotnet/orleans-voting) | C# | C# AppHost | Run only | Distributed actor model sample built with Orleans. |
| [Working with Database Containers](./samples/dotnet/database-containers) | C#, SQL | C# AppHost | Run only | Initializes and uses PostgreSQL, MongoDB, and SQL Server containers. |
| [Running EF Core Migrations](./samples/dotnet/database-migrations) | C# | C# AppHost | Run only | Runs Entity Framework Core migrations inside Aspire workflows. |
| [Persisting Data with Volume Mounts](./samples/dotnet/volume-mount) | C# | C# AppHost | Run only | Demonstrates data persistence with containers, Azure Storage, and SQL Server. |
| [Custom Aspire hosting resources](./samples/dotnet/custom-resources) | C# | C# AppHost | Run only | Demonstrates authoring custom hosting resources with Aspire. |

## eShop

Expand Down
File renamed without changes.
25 changes: 25 additions & 0 deletions samples/dotnet/Metrics/Directory.Packages.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<Project>
<PropertyGroup>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
</PropertyGroup>
<ItemGroup>
<PackageVersion Include="Aspire.Hosting.AppHost" Version="13.4.3" />
<PackageVersion Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="10.0.8" />
<PackageVersion Include="Microsoft.AspNetCore.Components.WebAssembly" Version="10.0.8" />
<PackageVersion Include="Microsoft.AspNetCore.Components.WebAssembly.Authentication" Version="10.0.8" />
<PackageVersion Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="10.0.8" />
<PackageVersion Include="Microsoft.AspNetCore.Components.WebAssembly.Server" Version="10.0.8" />
<PackageVersion Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="10.0.8" />
<PackageVersion Include="Microsoft.AspNetCore.OpenApi" Version="10.0.8" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.InMemory" Version="10.0.8" />
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="10.0.8" />
<PackageVersion Include="Microsoft.Extensions.Http.Resilience" Version="10.6.0" />
<PackageVersion Include="Microsoft.Extensions.ServiceDiscovery" Version="10.6.0" />
<PackageVersion Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.15.3" />
<PackageVersion Include="OpenTelemetry.Extensions.Hosting" Version="1.15.3" />
<PackageVersion Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.15.2" />
<PackageVersion Include="OpenTelemetry.Instrumentation.Http" Version="1.15.1" />
<PackageVersion Include="OpenTelemetry.Instrumentation.Runtime" Version="1.15.1" />
<PackageVersion Include="Swashbuckle.AspNetCore" Version="10.2.1" />
</ItemGroup>
</Project>
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Aspire.Hosting.AppHost" Version="13.4.3" />
<PackageReference Include="Microsoft.Extensions.Hosting" Version="10.0.8" />
<PackageReference Include="Aspire.Hosting.AppHost" />
<PackageReference Include="Microsoft.Extensions.Hosting" />
<ProjectReference Include="..\MetricsApp\MetricsApp.csproj" />
</ItemGroup>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="10.0.8" />
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Authentication" Version="10.0.8" />
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="10.0.8" PrivateAssets="all" />
<PackageReference Include="Microsoft.Extensions.Http.Resilience" Version="10.6.0" />
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" />
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Authentication" />
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" PrivateAssets="all" />
<PackageReference Include="Microsoft.Extensions.Http.Resilience" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Server" Version="10.0.8" />
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="10.0.8" />
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="10.0.8" />
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Server" />
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" />
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" />

<PackageReference Include="Swashbuckle.AspNetCore" Version="10.2.1" />
<PackageReference Include="Swashbuckle.AspNetCore" />
</ItemGroup>

<ItemGroup>
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />

<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="10.0.8" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="10.0.8" />
<PackageReference Include="Microsoft.Extensions.Http.Resilience" Version="10.6.0" />
<PackageReference Include="Microsoft.Extensions.ServiceDiscovery" Version="10.6.0" />
<PackageReference Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.15.3" />
<PackageReference Include="OpenTelemetry.Extensions.Hosting" Version="1.15.3" />
<PackageReference Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.15.2" />
<PackageReference Include="OpenTelemetry.Instrumentation.Http" Version="1.15.1" />
<PackageReference Include="OpenTelemetry.Instrumentation.Runtime" Version="1.15.1" />
<PackageReference Include="Microsoft.AspNetCore.OpenApi" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" />
<PackageReference Include="Microsoft.Extensions.Http.Resilience" />
<PackageReference Include="Microsoft.Extensions.ServiceDiscovery" />
<PackageReference Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" />
<PackageReference Include="OpenTelemetry.Extensions.Hosting" />
<PackageReference Include="OpenTelemetry.Instrumentation.AspNetCore" />
<PackageReference Include="OpenTelemetry.Instrumentation.Http" />
<PackageReference Include="OpenTelemetry.Instrumentation.Runtime" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Aspire.Hosting.AppHost" Version="13.4.3" />
<PackageReference Include="Aspire.Hosting.PostgreSQL" Version="13.4.3" />
<PackageReference Include="Aspire.Hosting.Redis" Version="13.4.3" />
<PackageReference Include="Microsoft.Extensions.Hosting" Version="10.0.8" />
<PackageReference Include="Aspire.Hosting.AppHost" />
<PackageReference Include="Aspire.Hosting.PostgreSQL" />
<PackageReference Include="Aspire.Hosting.Redis" />
<PackageReference Include="Microsoft.Extensions.Hosting" />
<ProjectReference Include="..\AspireShop.BasketService\AspireShop.BasketService.csproj" />
<ProjectReference Include="..\AspireShop.CatalogDbManager\AspireShop.CatalogDbManager.csproj" />
<ProjectReference Include="..\AspireShop.CatalogService\AspireShop.CatalogService.csproj" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Grpc.AspNetCore" Version="2.80.0" />
<PackageReference Include="Grpc.AspNetCore.HealthChecks" Version="2.80.0" />
<PackageReference Include="Aspire.StackExchange.Redis" Version="13.4.3" />
<PackageReference Include="Grpc.AspNetCore" />
<PackageReference Include="Grpc.AspNetCore.HealthChecks" />
<PackageReference Include="Aspire.StackExchange.Redis" />
</ItemGroup>

<ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Aspire.Npgsql.EntityFrameworkCore.PostgreSQL" Version="13.4.3" />
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="10.0.2" />
<PackageReference Include="Aspire.Npgsql.EntityFrameworkCore.PostgreSQL" />
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Aspire.Npgsql.EntityFrameworkCore.PostgreSQL" Version="13.4.3" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="10.0.8">
<PackageReference Include="Aspire.Npgsql.EntityFrameworkCore.PostgreSQL" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.Build.Tasks.Core" Version="18.6.3" />
<PackageReference Include="Microsoft.Build.Tasks.Core" />
</ItemGroup>

<ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="10.0.8" />
<PackageReference Include="Scalar.AspNetCore" Version="2.14.14" />
<PackageReference Include="Microsoft.AspNetCore.OpenApi" />
<PackageReference Include="Scalar.AspNetCore" />
</ItemGroup>

<ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.Extensions.ServiceDiscovery.Yarp" Version="10.6.0" />
<PackageReference Include="Yarp.ReverseProxy" Version="2.3.0" />
<PackageReference Include="Grpc.Net.ClientFactory" Version="2.80.0" />
<PackageReference Include="Grpc.Tools" Version="2.81.0">
<PackageReference Include="Microsoft.Extensions.ServiceDiscovery.Yarp" />
<PackageReference Include="Yarp.ReverseProxy" />
<PackageReference Include="Grpc.Net.ClientFactory" />
<PackageReference Include="Grpc.Tools">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<footer class="site-footer">
<footer class="site-footer">
<div class="site-footer-inner">
<span class="footer-mark" aria-hidden="true">@Icons.Storefront</span>
<a href="https://github.com/dotnet/aspire-samples/blob/main/LICENSE"
Expand All @@ -8,7 +8,7 @@
<span class="footer-sep" aria-hidden="true"></span>
<span class="footer-meta">@Message</span>
<span class="footer-sep" aria-hidden="true"></span>
<a href="https://github.com/dotnet/aspire-samples/tree/main/samples/aspire-shop"
<a href="https://github.com/dotnet/aspire-samples/tree/main/samples/dotnet/aspire-shop"
rel="noopener noreferrer" target="_blank" class="footer-link">
<span class="footer-icon" aria-hidden="true">@Icons.GitHub</span>
Source on GitHub
Expand Down
Loading