An ASP.NET 7 backend solution demonstrating best practices
Added default ASP.NET Core Web Api project.
Added Directory.Build.props with some defaults.
Refactored default ASP.NET Core Web Api project to resemble a real life system.
Added logging using Serilog.
Added tests.
Added another weather supplier (OpenWeather), selectable by parameter.
Refactored to interface based programming model and dependency injection without using a DI container.
Able to test WeatherForecastService in isolation.
Added OpenWeatherAdapter because the OpenWeatherApi library does not follow interface based programming model.
This way we can inject all dependencies into OpenWeatherSupplier.
We can test OpenWeatherSupplier in isolation.
Added Autofac as DI container.
Implemented strategy pattern for selecting weather supplier.
Added multi-level caching to showcase decorator pattern using dependency injection.
Instead of a modular monolith, the system is now decomposed into microservices, comunicating through Dapr.
For shared cache, instead of Redis implementation, use Dapr statestore.
Using Dapr secrets store instead of .Net usersecrets.