MongoWebApiStarter 6.7.1
See the version list below for details.
dotnet new install MongoWebApiStarter::6.7.1
MongoWebApiStarter
A full-featured starter template for dotnet new
to quickly scaffold a .Net 5 Web-Api project using pure vertical slice architecture with MongoDB as the data store.
Install & Scaffold
dotnet new -i MongoWebApiStarter
dotnet new mongowebapi -n MyAwesomeApp
Features
Platform
- base framework: .net 5
- api/web-service framework: servicestack
- language: c#
- database: mongodb
Vertical Slice Architecture
- each use case/action/feature is isolated in it's own namespace (vertical slice).
- there is no cross contamination between feature slices.
- domain entities are contained in a seperate namespace as they are cross contaminating by nature.
- does not use the mediator pattern like most other templates.
Misc. Features
- strongly typed app settings which binds to
appsettings.json
- JWT token authentication with embedded claims & permissions
- permission & claim based authorization with attribute decorators
- custom middleware for putting site offline (maintenance mode)
Api Features
- input validation with fluentvalidation rules
- account creation, email validation, login
- salted hash password storage and verification with bcrypt
- email queue with background service for sending emails with smtp
- image uploading & retrieval
Data Access
- data access done using mongodb.entities library
- most data access logic is self contained in each vertical slice.
- shared data access logic is located in the Logic.* namespace.
Integration Tests
- uses mstest framework
- uses fluentassertions
Bonuses
Visual Studio New Item Template
a visual studio extension is availabe in the .vs-new-item-template
folder that will enable you to quickly add a new vertical slice feature file set.
after you install the vsix
, you will have a new item called "Vertical Slice Feature" in the "add > new item" dialog of visual studio.
Linux Server Configuration
instructions & config files for setting up a linux server for deployment are available in the .linux-server-setup
folder
-
net5.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
7.12.2 | 3,020 | 12/10/2023 |
7.12.1 | 286 | 12/5/2023 |
7.12.0 | 336 | 11/29/2023 |
7.11.0 | 429 | 9/3/2023 |
7.10.3 | 238 | 8/29/2023 |
7.10.2 | 254 | 8/29/2023 |
7.10.1 | 234 | 8/28/2023 |
7.10.0 | 224 | 8/27/2023 |
7.9.0 | 286 | 8/7/2023 |
7.8.1 | 641 | 2/3/2023 |
7.8.0 | 322 | 2/2/2023 |
7.7.0 | 691 | 9/23/2022 |
7.6.3 | 532 | 7/25/2022 |
7.6.2 | 587 | 2/8/2022 |
7.6.1 | 504 | 1/23/2022 |
7.6.0 | 402 | 12/25/2021 |
7.5.1 | 356 | 12/21/2021 |
7.5.0 | 336 | 12/21/2021 |
7.4.0 | 426 | 12/16/2021 |
7.3.1 | 409 | 11/10/2021 |
7.3.0 | 418 | 10/23/2021 |
7.2.0 | 455 | 10/15/2021 |
7.1.1 | 391 | 10/12/2021 |
7.1.0 | 406 | 10/6/2021 |
7.0.0 | 354 | 10/5/2021 |
6.7.1 | 465 | 9/14/2021 |
6.7.0 | 376 | 9/14/2021 |
6.6.0 | 419 | 9/5/2021 |
6.5.0 | 805 | 8/18/2021 |
6.4.2 | 1,100 | 7/20/2021 |
6.4.1 | 1,258 | 4/22/2021 |
6.4.0 | 435 | 3/30/2021 |
6.3.0 | 559 | 1/9/2021 |
6.2.0 | 489 | 12/1/2020 |
6.1.0 | 600 | 11/19/2020 |
6.0.0 | 555 | 11/11/2020 |
5.5.1 | 506 | 11/6/2020 |
5.5.0 | 629 | 10/18/2020 |
5.4.0 | 551 | 10/7/2020 |
5.3.0 | 539 | 9/4/2020 |
5.2.0 | 563 | 9/3/2020 |
5.1.0 | 556 | 9/2/2020 |
5.0.0 | 587 | 8/30/2020 |
4.3.0 | 560 | 8/12/2020 |
4.2.1 | 567 | 8/9/2020 |
4.2.0 | 521 | 8/7/2020 |
4.1.0 | 560 | 7/20/2020 |
4.0.0 | 583 | 7/17/2020 |
3.4.0 | 580 | 7/12/2020 |
3.3.0 | 520 | 6/29/2020 |
3.2.0 | 577 | 6/27/2020 |
3.1.1 | 611 | 6/25/2020 |
3.1.0 | 607 | 6/24/2020 |
3.0.3 | 589 | 6/24/2020 |
3.0.2 | 560 | 6/23/2020 |
3.0.1 | 573 | 6/23/2020 |
3.0.0 | 571 | 6/23/2020 |
2.13.0 | 627 | 6/7/2020 |
2.12.0 | 548 | 6/5/2020 |
2.11.0 | 603 | 5/11/2020 |
2.10.0 | 556 | 4/15/2020 |
2.9.0 | 612 | 4/2/2020 |
2.8.1 | 661 | 3/23/2020 |
2.8.0 | 615 | 2/17/2020 |
2.7.1 | 563 | 2/4/2020 |
2.7.0 | 566 | 2/2/2020 |
2.6.1 | 663 | 1/24/2020 |
2.6.0 | 540 | 1/24/2020 |
2.5.1 | 724 | 12/28/2019 |
2.5.0 | 607 | 12/27/2019 |
2.4.1 | 601 | 12/10/2019 |
2.4.0 | 624 | 12/10/2019 |
2.3.1 | 616 | 12/5/2019 |
2.3.0 | 656 | 12/4/2019 |
2.2.0 | 616 | 11/17/2019 |
2.1.0 | 599 | 11/17/2019 |
2.0.2 | 593 | 11/7/2019 |
2.0.1 | 559 | 11/2/2019 |
2.0.0 | 646 | 10/29/2019 |
1.8.0 | 593 | 10/16/2019 |
1.7.0 | 593 | 10/15/2019 |
1.6.0 | 598 | 10/15/2019 |
1.5.0 | 605 | 10/14/2019 |
1.4.0 | 607 | 10/12/2019 |
1.3.0 | 631 | 10/11/2019 |
1.2.1 | 582 | 10/11/2019 |
1.2.0 | 572 | 10/11/2019 |
1.1.0 | 635 | 10/10/2019 |
1.0.0 | 621 | 10/10/2019 |
- update vs extension
- upgrade packages