CleanAspire is a cutting-edge open-source project combining the latest .NET 9 Minimal API with Blazor WebAssembly, all organized with the principles of Clean Architecture. This template is built to accelerate the development of scalable and maintainable Progressive Web Applications (PWA) while keeping the codebase neat, modular, and future-proof.
- .NET 9 Minimal API for lightweight, high-performance backend services.
- Blazor WebAssembly for a modern, responsive client-side PWA.
- Clean Architecture principles to promote separation of concerns, maintainability, and scalability.
- Minimal Boilerplate for developers to jump-start their projects without repetitive setup.
- RESTful APIs that are efficient and easy to use.
- Strong Typing throughout the client and server to leverage the full power of C#.
- Ready-to-Deploy template for Azure, AWS, Docker, and other cloud platforms.
- Speed Up Development: Start coding your features instead of setting up boilerplate code.
- Modern and Performant: Benefit from .NET 9's new features and the rich interactivity of Blazor WebAssembly as a PWA.
- Modular and Testable: Clean Architecture makes maintaining and testing your project a breeze.
- Community-driven: CleanAspire is open-source, encouraging contributions and collaboration from developers worldwide.
version: '3.8'
services:
apiservice:
image: blazordevlab/cleanaspire-api:0.0.31
environment:
- ASPNETCORE_ENVIRONMENT=Development
- AllowedHosts=*
- ASPNETCORE_URLS=http://+:80;https://+:443
- ASPNETCORE_HTTP_PORTS=80
- ASPNETCORE_HTTPS_PORTS=443
- DatabaseSettings__DBProvider=sqlite
- DatabaseSettings__ConnectionString=Data Source=CleanAspireDb.db
- AllowedCorsOrigins=https://cleanaspire.blazorserver.com,https://localhost:7123
- SendGrid__ApiKey=<your API key>
- SendGrid__DefaultFromEmail=<your email>
ports:
- "8019:80"
- "8018:443"
webfrontend:
image: blazordevlab/cleanaspire-clientapp:0.0.31
ports:
- "8016:80"
- "8017:443"
-
Clone the Repo:
git clone https://github.com/neozhu/cleanaspire.git
-
Navigate to the Project Folder:
cd CleanAspire
-
Run the Application:
dotnet run
-
Access the Application: Open your browser and go to
https://localhost:5001
to see the Blazor WebAssembly PWA in action.
CleanAspire is structured following the Clean Architecture approach, dividing the solution into distinct layers:
CleanAspire/
│
├── src/
│ ├── CleanAspire.Api/ # API Layer - .NET Minimal API
│ ├── CleanAspire.Application/ # Application Layer - Business Logic
│ ├── CleanAspire.WebAssembly/ # UI Layer - Blazor WebAssembly (PWA)
│ ├── CleanAspire.Infrastructure/ # Infrastructure Layer - Data Access, External Services
│ ├── CleanAspire.Domain/ # Domain Layer - Core Entities, including EF entities
│ ├── CleanAspire.AppHost/ # Hosting Layer - Application hosting and configuration
│ └── CleanAspire.ServiceDefaults/ # Service Defaults - Predefined configurations for services
│
├── tests/
│ ├── CleanAspire.Application.Tests/ # Unit Tests for Application Layer
│ ├── CleanAspire.Api.Tests/ # Integration Tests for API Layer
│ └── CleanAspire.WebAssembly.Tests/ # UI Tests for Blazor WebAssembly
│
├── README.md # Project README
├── LICENSE # License Information
└── CleanAspire.sln # Solution File for Visual Studio / VS Code
Contributions are welcome! If you want to add features, report bugs, or just suggest improvements, please feel free to submit issues or pull requests.
This project is licensed under the MIT License.
- Star the Repository: If you like CleanAspire, please give it a star! 🌟
- Follow the Project: Stay updated with the latest developments by watching the repository.
- Join Discussions: Share your thoughts and ideas to make CleanAspire even better.
Feel free to reach out if you have questions or feedback. Let's build something amazing together with CleanAspire!