Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

98 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📚 BookStore

.NET 10 C# 14 Orchestration Architecture License

BookStore is a .NET 10 application built to showcase modern development practices, utilizing a Modular Monolith with Vertical Slice Architecture, Minimal APIs, and .NET Aspire for cloud-native orchestration. It is designed with a strong focus on boundary isolation, testability, and clean code to deliver a clean, robust, and well-tested codebase. This project is continuously evolving, with new modules and features being actively built.

🌟 Tech Stack

  • Backend: .NET 10, ASP.NET Core Minimal APIs, Entity Framework Core 10
  • Frontend: Blazor WebAssembly
  • Orchestration: .NET Aspire, OpenTelemetry, Azure Blob Storage (Azurite)
  • Database: MS SQL Server
  • Testing: xUnit v3, FluentAssertions, NSubstitute, Testcontainers

🏗️ Architecture

The system uses a Modular Monolith approach, with Vertical Slice Architecture applied internally within modules.

graph TD
    UI[BookStore.UI - Blazor WASM] -->|HTTP / Minimal APIs| Api[BookStore.ApiHost]
    
    subgraph Aspire Orchestration
        Host[BookStore.AppHost] -.->|Orchestrates| Api
        Host -.->|Orchestrates| Db[(MS SQL Server)]
        Host -.->|Orchestrates| Storage[(Azure Blob Storage)]
    end

    subgraph Modular Boundaries
        Api -->|Endpoints| Catalog[Catalog Module]
        Catalog -->|Boundary Capsule| CatalogContracts[Catalog.Contracts]
        
        subgraph Catalog Module Internal Slices
            GetDetails[GetBookDetails Feature]
            Search[SearchBooks Feature]
            Filters[GetSearchFilters Feature]
        end
    end
Loading

Key Principles

  • Isolated Boundaries: Modules communicate strictly through Contracts. Implementation details remain internal within module assemblies to prevent tight coupling.
  • Vertical Slices: Features (e.g., endpoints, handlers, validators) are grouped together by capability rather than horizontal layers.
  • Quality Assurance: Covered by isolated unit tests and full integration tests using containerized databases to verify real-world behavior.

📂 Project Structure

├── .aspire/                 # Aspire orchestration assets
├── src/
│   ├── Hosts/               # API, Blazor UI, Aspire AppHost
│   ├── Modules/             # Core modules (e.g., Catalog)
│   └── Shared/              # Shared configurations and utilities
└── tests/                   # Unit and integration tests

🚀 Getting Started

To run the multi-service application locally:

  1. Ensure .NET 10 SDK and Docker Desktop are installed.
  2. Clone the repository.
  3. Run the AppHost:
    dotnet run --project src/Hosts/BookStore.AppHost
  4. Open the .NET Aspire Dashboard URL provided in the console to monitor the services, logs, and traces.

🤝 Let's Connect

Feel free to reach out to discuss modern .NET architecture, software engineering, or potential opportunities.

  • 💼 LinkedIn: Peter Kovecses
  • Give it a Star: If you like what you see, please star this repository—it helps!

About

Modular Monolith e-commerce bookstore built with .NET Aspire. Implements Vertical Slice Architecture, Minimal APIs, and a Blazor WebAssembly frontend.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages