Sam.CleanArchitecture.Template
8.5.0
See the version list below for details.
dotnet new install Sam.CleanArchitecture.Template::8.5.0
ASP Dotnet Core Clean Architecture
The purpose of this template is to provide a robust and streamlined methodology for enterprise application development. By capitalizing on the strengths of Clean Architecture and ASP.NET Core, it ensures a maintainable, scalable, and efficient development process. This approach not only simplifies the complexity of enterprise systems but also enhances their performance and longevity.
Check out the Project Page to learn more about this Open Source Project.
Getting Started
The following prerequisites are required to build and run the solution:
- .NET 8.0 SDK (latest version)
The easiest way to get started is to install the .NET template:
dotnet new install Sam.CleanArchitecture.Template
You should see the template in the list of templates from dotnet new list after this installs successfully. Look for "ASP.NET Clean Architecture Solution" with Short Name of "ca-api".
Navigate to the parent directory in which you'd like the solution's folder to be created.
Run this command to create the CleanArchitecture project
"-n MyProjectName" can be our desired name for the project
dotnet new ca-api -n MyProjectName
The MyProjectName directory and solution file will be created, and inside that will be all of your new solution contents, properly namespaced and ready to run/test!
To increase the speed of coding, you can use the commands added in this package
- Create new UseCase
- Create New Entity
- Create New Resource
- Easy Add Migration Tools
- Configure Database
Default Roles & Credentials
As soon you build and run your application, default users and roles get added to the database.
Default Roles are as follows.
- Admin
Here are the credentials for the default users.
- UserName - Admin / Password - Sam@12345
You can use these default credentials to generate valid JWTokens at the ../api/v1/Account/Authenticate endpoint.
Purpose of this Project
Does it really make sense to Setup your ASP.NET Core Solution everytime you start a new WebApi Project ? Aren't we wasting quite a lot of time in doing this over and over gain?
This is the exact Problem that I intend to solve with this Full-Fledged ASP.NET Core 8 WebApi Solution Template, that also follows various principles of Clean Architecture.
The primary goal is to create a Full-Fledged implementation, that is well documented along with the steps taken to build this Solution from Scratch. This Solution Template will also be available within Visual Studio 2022 (by installing the required Nuget Package / Extension).
Demonstrate Clean Monolith Architecture in ASP.NET Core 8
- This is not a Proof of Concept
- Implementation that is ready for Production
- Integrate the most essential libraries and packages
Give a Star ⭐️
If you found this Implementation helpful or used it in your Projects, do give it a star. Thanks!
Technologies
- ASP.NET Core 8 WebApi
- REST Standards
Features
- Clean Architecture
- CQRS with MediatR Library
- Entity Framework Core - Code First
- Repository Pattern - Generic
- Serilog
- Swagger UI
- Response Wrappers
- Healthchecks
- Pagination
- Microsoft Identity with JWT Authentication
- Role based Authorization
- Identity Seeding
- Database Seeding
- Custom Exception Handling Middlewares
- API Versioning
- Localization (fa / en)
- Fluent Validation
- Complete User Management Module ( Register - Authenticate - Change UserName - Change Password )
- User Auditing
- TestProjects
Prerequisites
- .NET Core 8 SDK and above
- Basic Understanding of Architectures and Clean Code Principles
Share it!
I have personally not come across a clean implementation on a WebAPI, which is the reason that I started building this up. There are quite a lot of improvements and fixes along the way from the day I started out. Thanks to the community for the support and suggestions. Please share this Repository within your developer community, if you think that this would a difference! Thanks.
About the Author
Saman Azadi
- Twitter - Saman Azadi
- Linkedin - Saman Azadi
- Github - Saman Azadi
-
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.
Version | Downloads | Last updated |
---|---|---|
9.0.0 | 80 | 11/15/2024 |
8.5.3 | 103 | 10/4/2024 |
8.5.2 | 102 | 9/21/2024 |
8.5.1 | 98 | 9/8/2024 |
8.5.0 | 174 | 8/12/2024 |
8.4.2 | 99 | 7/31/2024 |
8.4.1 | 70 | 7/30/2024 |
8.4.0 | 72 | 7/28/2024 |
8.3.0 | 222 | 6/19/2024 |
8.2.1 | 134 | 6/8/2024 |
8.2.0 | 115 | 6/6/2024 |
8.1.4 | 146 | 5/29/2024 |
8.1.3 | 294 | 5/21/2024 |
8.0.3 | 168 | 5/19/2024 |
8.0.2 | 229 | 5/13/2024 |
8.0.1 | 300 | 5/5/2024 |