Add .NET Aspire service orchestration #224
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary & Motivation
Set up .NET Aspire AppHost and service defaults. This provides an F5 experience, starting the API, Frontend, and SQL Server by launching the new AppHost .NET project. The existing shared kernel configures service defaults, and the ApiCore
.csproj
is converted to anIsAspireSharedProject
, so only one new project is added (Aspire normally requires two new projects).The AppHost starts the frontend SPA using Bun, maintaining the frontend tooling.
Starting SQL Server with Aspire's
AddContainer()
function is disabled due to this error: "A connection was successfully established with the server, but then an error occurred during the pre-login handshake." For now, SQL Server starts withdocker compose up sql-server -d
using a .NET background process. This method doesn't allow configuration of dependencies, so the SQL Server is given a 3-second delay to start.Add the Aspire .NET workload into the GitHub workflow. Reorder tasks for consistency across different workflow jobs.
Update README.md to list Aspire as a prerequisite:
dotnet workload install aspire
. Remove JetBrains ProjectRunConfigurationManager files previously used to start the API and frontend.Checklist