-
Notifications
You must be signed in to change notification settings - Fork 468
Implement .NET Aspire orchestration in Chapter 3 with RabbitMQ and PostgreSQL #227
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Co-authored-by: kamilbaczek <74410956+kamilbaczek@users.noreply.github.com>
…ate README Co-authored-by: kamilbaczek <74410956+kamilbaczek@users.noreply.github.com>
Co-authored-by: kamilbaczek <74410956+kamilbaczek@users.noreply.github.com>
|
I want to documentation and code be consistent with chapter 2 but we have more services here like rabbitmq remove unssery documentation and changes and align eto branch 'copilot/apply-aspire-in-chapter-2' @copilot |
…viceDefaults Co-authored-by: kamilbaczek <74410956+kamilbaczek@users.noreply.github.com>
I've simplified the implementation to align with Chapter 2's approach: Removed:
Simplified:
Chapter 3 specific (RabbitMQ):
The implementation is now consistent with Chapter 2 while adding RabbitMQ support for Chapter 3's microservices architecture. Commit: 2667c7d |
|
@copilot net9.0 |
|
@copilot Chapter-3-microservice-extraction/Fitnet.AppHost/.gitignore remove this it is not used |
Co-authored-by: kamilbaczek <74410956+kamilbaczek@users.noreply.github.com>
Removed duplicate properties from AppHost.csproj and added central Directory.Build.props and Directory.Packages.props files at Chapter 3 root level. The AppHost now inherits TargetFramework, ImplicitUsings, and Nullable from Directory.Build.props, and package versions from Directory.Packages.props - matching Chapter 2's pattern. Commit: d7873b5 |
Co-authored-by: kamilbaczek <74410956+kamilbaczek@users.noreply.github.com>
|
@copilot fix build problems |
…lict Co-authored-by: kamilbaczek <74410956+kamilbaczek@users.noreply.github.com>
Fixed the build issue by upgrading Aspire packages from 9.0.0 to 13.0.0. This resolves the NU1107 version conflict where MassTransit.RabbitMQ 8.3.2 requires RabbitMQ.Client >= 7.0.0, which was incompatible with Aspire.Hosting.RabbitMQ 9.0.0 (requiring < 7.0.0). Aspire 13.0.0 is compatible with RabbitMQ.Client 7.0.0. Commit: 33b2159 |
📋 Description
Adds .NET Aspire orchestration for Chapter 3's microservices architecture, following the simplified pattern established in Chapter 2. Provides service orchestration for PostgreSQL and RabbitMQ while maintaining full backward compatibility with existing docker-compose setup.
New Project
Central Package Management
Added Directory.Build.props and Directory.Packages.props at the Chapter 3 root level to centralize property and package version management, matching Chapter 2's approach:
AppHost Configuration
The implementation follows Chapter 2's minimal approach with RabbitMQ added for Chapter 3's messaging requirements:
Usage
cd Fitnet.AppHost dotnet runThe Aspire Dashboard will open automatically, showing all services, resources, and logs.
📦 PR Includes
🚫 PR Does Not Include
💡 Additional Notes
Simplified Implementation: Aligned with Chapter 2's approach by removing ServiceDefaults project and extensive documentation. The implementation now follows the same minimal pattern used in Chapter 2, including central package management via Directory props files.
Chapter 3 Specifics: Added RabbitMQ orchestration via
AddRabbitMQ().WithManagementPlugin()to support the microservices messaging architecture.Files Modified: 2 (EventBusModule.cs files for standard configuration)
Files Created: 4 (AppHost project files + Directory.Build.props + Directory.Packages.props)
Stats: +90/-559 lines (net reduction due to simplification)
Central Package Management: AppHost.csproj now inherits TargetFramework, ImplicitUsings, and Nullable from Directory.Build.props, and package versions from Directory.Packages.props - eliminating duplicate definitions and matching Chapter 2's pattern. Removed unnecessary project-specific .gitignore file from AppHost directory.
Version Conflict Fix: Upgraded Aspire packages from 9.0.0 to 13.0.0 to resolve NU1107 build error. The conflict was between MassTransit.RabbitMQ 8.3.2 (requiring RabbitMQ.Client >= 7.0.0) and Aspire.Hosting.RabbitMQ 9.0.0 (requiring RabbitMQ.Client < 7.0.0). Aspire 13.0.0 is compatible with RabbitMQ.Client 7.0.0, resolving the dependency conflict.
Fully backward compatible: docker-compose.yml workflow unchanged, services run with or without Aspire. No changes to Program.cs, business logic, or existing tests.
Original prompt
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.