This template is available in the Visual Studio Marketplace. Also make sure to check out the sample RealWorld app.
After installing the VSIX you will see the template available under Visual C#:
To get familiar with the Maybe and Either monads you can take a look at the introductory Option article, real life examples of Either in C# and the template introductory article.
├───src
│ ├───configuration
│ └───server
│ ├───MyProject.Api
│ ├───MyProject.Business
│ ├───MyProject.Core
│ ├───MyProject.Data
│ └───MyProject.Data.EntityFramework
└───tests
└───MyProject.Business.Tests
- [x] Swagger UI + Fully Documented Controllers <br>
![swagger-ui](./images/swagger-ui.JPG)
- [x] Global Model Errors Handler <br>
![model-errors](./images/model-errors.JPG)
- [x] Global Environment-Dependent Exception Handler <br>
Development <br>
![exception-development](./images/exception-development.JPG)<br>
Production <br>
![enter image description here](./images/exception-prod.JPG)
- [x] Neatly organized solution structure <br>
![solution-structure](./images/solution-structure.JPG)
- [x] Thin Controllers <br>
![thin-controllers](./images/thin-controllers.JPG) <br>
- [x] Robust service layer using the [Either](http://optional-github.com) monad. <br>
![either-monad](./images/either-monad.JPG)<br>
- [x] Safe query string parameter model binding using the [Option](http://optional-github.com) monad.<br>
![optional-binding](./images/optional-binding.JPG)<br>
### Test Suite
- [x] xUnit
- [x] Autofixture
- [x] Moq
- [x] Shouldly
- [x] Arrange Act Assert Pattern
![test-suite](./images/test-suite.JPG)