Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/szubajak/game

Advanced Template for modern .Net & React projects. Solid fundamentals for new system or sub-system.
https://github.com/szubajak/game

autofac automapper cqrs docker dotnet-core entity-framework-core fluentvalidation languageext materialui mediatr modern netcore openapi railway-oriented-programming react rxjs serilog styledcomponents template typescript

Last synced: about 1 month ago
JSON representation

Advanced Template for modern .Net & React projects. Solid fundamentals for new system or sub-system.

Awesome Lists containing this project

README

        

# Advanced Template for modern .NET & React system #

Full working solution with Infrastructure as Code to build and run it on Azure

### [production] ###
* Api
{ https://szubarga-game-api.azurewebsites.net/swagger/index.html }

* Game UI
{ https://szubarga-game-web.azurewebsites.net/ }

### [back end] ###
- .Net Core 3.1
- Entity Framework Core
- MediatR
- OpenApi
- Autofac
- Serilog
- AutoMapper
- FluentValidation
- xUnit
- NSubstitute
- FluentAssertions

### [front end] ###
- React
- Parcel
- TypeScript
- Styled Components
- MaterialUI
- CSS Grid & Flexbox
- RxJS
- Axios

### [general] ###
* Infrastructure as Code (IaC):
* Docker - every app has Dockerfile with build & run configuration
* Azure Resource Manager template - resource group definition with all resources needed to host it in Azure using App Service
* Service Fabric project with environment definition
* Clean Architecture - puts the business logic and application model at the center of the application
* Clean Code - powered by Stylecop, FxCopAnalyzers, ESLint and Prettier
* Monolithic repository - like Google:)\
{ https://research.google/pubs/pub45424/ }
* CQRS - in your application can maximize its performance, scalability, and security\
{ https://docs.microsoft.com/en-us/azure/architecture/patterns/cqrs }
* Railway Oriented Programming - functional programming in C# powered by LanguageExt\
{ https://github.com/louthy/language-ext }\
{ https://zohaib.me/railway-programming-pattern-in-elixir/ }

### [in development] ###
- Better UX during GAME;)
- Docker Compose
- Jens & Enzyme
- Integration with Azure Functions and external service
- Complete CRUD example
- Additional apps - Admin Panel API and GUI
- Documentation - How to?

Why Clean Architecture?

https://docs.microsoft.com/en-us/dotnet/architecture/modern-web-apps-azure/common-web-application-architectures#clean-architecture

https://www.youtube.com/watch?v=2dKZ-dWaCiU

Why functional programming??

Programming languages are becoming more functional every year.
Features such as generic programming, type inference, list comprehensions, functions as values, and anonymous types, which have traditionally existed as staples of functional programming, have quickly become mainstream features of Java, C#, Delphi and even Fortran.
We can expect next-generation programming languages to continue this trend in the future, providing a hybrid of both functional and imperative approaches that meet the evolving needs of modern programming.

Benefits of functional programming:
- pure functions are easier to reason about
- testing is easier
- debugging is easier
- programs are more bulletproof
- programs are written at a higher level, and are therefore easier to comprehend
- function signatures are more meaningful
- parallel/concurrent programming is easier

“Functional programming is often regarded as the best-kept secret of scientific modelers, mathematicians, artificial intelligence researchers, financial institutions, graphic designers, CPU designers, compiler programmers, and telecommunications engineers.”

The Wikipedia F# page

Buy Me a Coffee at ko-fi.com