{"repo":"marcoswferreira/clean-architecture-boilerplate","free":true,"listed":false,"github":"https://github.com/marcoswferreira/clean-architecture-boilerplate","clone":"git clone https://github.com/marcoswferreira/clean-architecture-boilerplate.git","description":"A production-ready Clean Architecture template for .NET 10 Web APIs. Built on DDD, CQRS, Event Sourcing, Hexagonal Architecture, and SOLID principles.","language":"C#","stars":10,"topics":["clean-architecture","dotnet-core","dependency-injection","template-project","architecture","docker-compose","middlewares","pagination","repository-pattern","swagger"],"license":"MIT","category":"deployment-docker-iac","readme_excerpt":".NET Boilerplate Web API A production-ready Clean Architecture template for .NET 10 Web APIs. Built on DDD , CQRS , Event Sourcing , Hexagonal Architecture , and SOLID principles. --- Table of Contents - Architecture Overview - Project Structure - Domain Layer - Application Layer - Infrastructure Layer - Presentation Layer - Getting Started - Testing - Deployment - Contributing --- Architecture Overview Dependencies always point inward — Infrastructure and Presentation depend on the inner layers, never the reverse. --- Project Structure --- Domain Layer The innermost layer — has zero dependencies on any other project or NuGet package (except EF Core for IQueryable pagination helpers). BaseEntity Every domain entity inherits from BaseEntity . It provides: - Id — Guid , initialized on construction; never changes. - Domain Events — entities raise events via AddDomainEvent() . Events are dispatched after persistence to guarantee consistency. - Identity Equality — two entities are equal if they share the same Id , regardless of other properties. IAggregateRoot Marker interface. Apply it to entities that are the boundary of a consistency group (e.g., Order owns OrderLine s). External code must always interact through the aggregate root, never with its internal entities directly. IDomainEvent Marker interface for domain events. Events must be: - Immutable — use C# record types. - Named in past tense — CustomerCreated , OrderPlaced , PaymentFailed . Events carry only the data needed ","default_branch":null,"files":null,"tree":[],"storefront":"/r/marcoswferreira","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/marcoswferreira/clean-architecture-boilerplate/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}