Feed Reader is a sample project. The main goal of this application is to apply the Clean Architecture by Robert C. Martin aka Uncle Bob principles to create a well structured system. As Uncle Bob states the heart of the application - business logic is completely decoupled from the rest of modules. It is testable, independent of UIs, independent of databases and independent of any external agencies. Everything else other than the business logic (Core) is detail, a plugin and can be replaced without effecting the Core.
Different UI modules use the same Core through messaging (MediatR). All conveivable UI types have been implemented, namely WEB, Mobile, Desktop and Console.
All service and database accesses to the Core are provided via interfaces. Each interface has been implemented as a plugin in Infrastructure layer and can be replaced in the future without effecting the rest of the system. Infrastructure modules are using Infrastructure server as backend.
Application employs the following concepts and frameworks:
- Clean Architecture
- .NET Core
- Blazor
- Xamarin
- WebAPI
- MediatR
- Identity Server
- Reactive Extensions
- OAUTH2/OIDC and social media authentication
This is the core of the application. It contains:
- Entities
- Use Cases
- Interfaces
Implementation of the interface groups:
- Feed
- Data Repositrory
- Token Repository
- User
This layer presents user interfaces:
- WEB UI
- Mobile UI
- Desktop UI
- Console UI
This project is licensed with the MIT license.