Boilerate.CleanArchitecture.Template
1.0.1
dotnet new install Boilerate.CleanArchitecture.Template@1.0.1
Boilerate - Clean Architecture Web API Template
Boilerate is a production-ready Web API template built with .NET 8/9 using Clean Architecture principles. It provides a solid foundation with essential enterprise features pre-configured.
🚀 Quick Start (Bắt đầu nhanh)
1. Install Template (Cài đặt)
dotnet new install Boilerate.CleanArchitecture.Template
2. Create New Project (Tạo dự án mới)
dotnet new boilerate -n MyAwesomeApp
3. Update Connection String
File: src/Host/Configurations/database.json
{
"DatabaseSettings": {
"DBProvider": "mssql",
"ConnectionString": "Server=localhost;Database=MyAwesomeAppDb;Trusted_Connection=True;TrustServerCertificate=True;MultipleActiveResultSets=true"
}
}
✨ Key Features (Tính năng nổi bật)
- 🏗️ Clean Architecture: Flattened 5-layer structure (Shared, Domain, Application, Infrastructure, Host).
- ⚡ CQRS with MediatR: Decoupled commands and queries.
- 🔐 Identity & JWT: Full Identity system with JWT Authentication & Refresh Tokens.
- 🛡️ Permission-based Authorization: Dynamic policy-based access control.
- 📜 Audit Trail & Soft Delete: Automatically track changes and protect data.
- 📊 Premium Export Services: High-performance Excel and PDF (QuestPDF) exporting.
- 📂 File Storage: Optimized Multipart form-data handling.
- ✅ Automatic Seed Data: Auto-initialization on first run.
- Structured Logging: Pre-configured Serilog with Console/File sinks.
- ✅ Automatic Validation: FluentValidation integrated with MediatR pipeline.
🏗️ Project Architecture (Kiến trúc)
The project uses a Flattened Directory Structure for better navigation:
- Shared: Common contracts and constants.
- Domain: Entities, Value Objects, and Domain Events.
- Application: Use cases, Interfaces, and DTOs.
- Infrastructure: DBContext, Persistence, and External Services.
- Host: API Controllers and Program configuration.
🏗️ Deep Dive
📂 Important Files
Configuration Files (src/Host/Configurations/)
database.json- Database connectionsecurity.json- JWT settingscache.json- Redis configurationmail.json- SMTP settingshangfire.json- Background jobs
Entry Points
src/Host/Program.cs- Application startupsrc/Infrastructure/Startup.cs- Infrastructure registrationsrc/Application/Startup.cs- Application registration
🌱 Seed Data
Automatically runs on first application start:
- ✅ Actions: Create, Update, Delete, View, Search, Export, Import, Clean.
- ✅ Functions: User, Role, Product, Category, Dashboard, Hangfire.
- ✅ Roles: Admin, Basic.
- ✅ Permissions: Auto-generated from Actions × Functions.
🔑 Default Credentials
- Admin User:
admin@gmail.com/Abcd@1234 - Hangfire Dashboard:
https://localhost:7001/hangfire(User:admin/ Pwd:SecurePwd1!)
🔧 Common Commands
Build & Run
dotnet restore
dotnet build
dotnet run --project src/Host/Host.csproj
Database Migrations (Run from Root)
# Add a new migration
dotnet ef migrations add InitialCreate --project src/Migrators.MSSQL/Migrators.MSSQL.csproj --startup-project src/Host/Host.csproj --context ApplicationDbContext --output-dir Migrations
# Apply migrations to database
dotnet ef database update --project src/Migrators.MSSQL/Migrators.MSSQL.csproj --startup-project src/Host/Host.csproj --context ApplicationDbContext
Testing
dotnet test
🌐 External Resources
Official Documentation
Core Libraries
- MediatR | FluentValidation | Mapster | Hangfire | Serilog
📜 License
Distributed under the MIT License.
-
net8.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.