An Implementation of Clean Architecture with .NET 5 With this Open-Source Codebase, you will get access to the world of Loosely-Coupled and Inverted-Dependency Architecture in .NET 5
Read the Changelog file to see the new changes.
Clone this repository to get the latest unreleased version.
v1.0-preview - IS NOT YET OUT
Follow these steps to get started
- Clone this Repository and Extract it to a Folder.
- Change appsettings.mock.json to appsettings.json in WebUI directory
- After following step 2, change all
ChangeMe
to your own value
- Create an ethereal mail account
- Use your credentials to fill up the EmailSettings section in appsettings.json
- Install redis on your local machine
- Run
npm install
in the src/WebUI/ClientApp directory - Run the following commands on Terminal in the WebUI project's directory.
- dotnet restore
- dotnet ef database update --context DataContext
- dotnet run (OR) Run the Solution using Visual Studio 2019 or JetBrain Rider
Check out my blog or say Hi on Twitter!
Does it really make sense to get to a restaurant and you told that they are fully booked? Aren't we wasting quite a lot of time in doing this over and over again?
This is the exact Problem that I intend to solve with this Full-Fledged .NET 5 project. It follows various principles of Clean Architecture.
The primary goal is to create a restaurant booking project, that is well documented along with the steps taken to build this Solution from Scratch.
- Demonstrate clean architecture in .NET 5
- This is not a proof of concept
- Implementation that is ready for production
- Integrate the most essential libraries and packages
If you find this project helpful, do give it a star. Thanks!
If you are feeling really generous, send me ETH: 0x9F4942911f2406E5897669Db99184d47B3078E99
- .NET 5
- REST Standards
- .NET 5 Libraries
- Clean Architecture
- CQRS with MediatR Library
- Entity Framework Core - Code First
- Repository Pattern - Generic
- MediatR Pipeline Logging & Validation
- Serilog
- Swagger UI
- Response Wrappers
- Healthchecks
- Pagination
- In-Memory Caching
- Redis Caching
- RDBMS
- JWT Authentication
- Role based Authorization
- Custom Exception Handler
- Fluent Validation
- Automapper
- SMTP / Mailkit / Email Service
- Complete User Management Module (Register / Generate Token / Forgot Password / Confirmation Mail)
- User Auditing
- JetBrains Rider 2020.3.1 & above | Visual Studio 2019 Community and above
- .NET Core 5.0 SDK and above
- Basic Understanding of Clean Architecture
- I Recommend that you read Onion Architecture In ASP.NET Core With CQRS β Detailed article to understand this project much better. This project is just an Advanced Version of the mentioned article.
Every changes / additions / deletions will be recorded in the Changelog file.
Having any issues or troubles getting started? Get in touch with me or Raise a Bug or Feature Request. Always happy to help.
If this project helped you learn something new? or helped you at work? Do Consider Supporting.
ETH: 0x9F4942911f2406E5897669Db99184d47B3078E99
There are many 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 this would make a difference! Thanks.
- Blogs at mycodegist.com
- Twitter - Emmy Steven
- Linkedin - Emmy Steven
emmysteven/restaurant Project is licensed with the MIT License.