There is a my custom template for .Net Core WebAPI solution. I want to create something that I could use for quick start.
Well... I want to thank all of this people. I started this project just like an example of Web API, but step-by-step I improve and extend architecture after new info.
- nevoroman with video from DotNext2019
- marshinov with DotNext2018
- AnatolyKulakov with Structure ogging and metrics (Yep, I chose prometheus instead of AppMetrics. Doesn't matter)
- jasontaylordev with great video about clean architecture and testing
If you believe that this project has infringed any copyrights in any way or just don't want to be mention, please contact me with email kingmidas1992@gmail.com.
- .WebAPI services - Incoming point
- .Net Core WebAPI - Basic framework
- Swagger - It's a very simple in use and informative instrument for documentation your API
- Business services - Separate class library with example of some "business" logic. In this case I implement next techniques:
- MediatR - for CQRS
- Specification - for Q in CQRS
- FluentValidation - basically.. for validation.
- DataAccess
- NotificationWorker - example of .Net Core Worker template in action. There is only recieving message from bus and log it.
- RabbitMQ as bus for connect API and Worker
- Seq - support structure logging with Serilog
- Prometheus and Grafana for analytics
- And some tests of course
- Just clone repository ...
git clone https://github.com/Kingmidas74/Megarender.git
-
check settings in docker-compose.yml
-
... and run docker-compose from solution folder.
docker-compose up -d
That's all!
Services will be available on the next adresses by default.
Service | URI |
---|---|
Angular client | http://localhost:8000 |
Swagger doc | http://localhost:8000/api/ |
RabbitMQ | http://localhost:15672 |
Seq | http://localhost:5340 |
prometheus | http://localhost:9090 |
grafana | http://localhost:3000 |
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.