A reference .NET application implementing an eCommerce web site using a clean architecture.
-
🌐 Minimal Endpoints - because it's fast & simple. ⚡
-
🔑 Global Exception Handling - it's important to handle exceptions in a consistent way & protect sensitive information
-
📝 OpenAPI/Swagger - easily document your API
-
🗄️ Entity Framework Core - for data access
- Comes with Migrations & Data Seeding
-
🧩 Repository Pattern - abstract EF Core away from your business logic
-
🔀 CQRS - for separation of concerns
-
📦 MediatR - for decoupling your application
-
📦 FluentValidation - for validating requests
-
🆔 Strongly Typed IDs - to combat primitive obsession
- Entity Framework can automatically convert the int, Guid, nvarchar(..) to strongly typed ID.
-
🧪 Testing
- Simpler Unit Tests for Application
- Better Integration Tests
- Integration Tests at Unit Test speed
- Test Commands and Queries against a Real database
-
Architecture Tests
- The tests are automated so discovering the defects is fast
Use these instructions to get the project up and running.
You will need the following tools:
Follow these steps to get your development environment set up:
- Clone the repository
- At the root directory, restore required packages by running:
dotnet restore
- Next, build the solution by running:
dotnet build
- Launch the back end within the
\Src\WebApi
directory by running:
dotnet run
- Launch https://localhost:5001/api in your browser to view the API
- .NET 8
- ASP.NET Core 8
- ASP.NET MVC
- Entity Framework Core 8
- MediatR
- FluentValidation
- Serilog
- OpenApi
- Swashbuckle