/dotnet-webapi-boilerplate

Clean Architecture Template for .NET 6.0 WebApi built with Multitenancy Support.

Primary LanguageC#MIT LicenseMIT

GitHub Discord Twitter Nuget version Nuget downloads

fullstackhero

.NET WebAPI Boilerplate Template built with .NET 6.0. Incorporates the most essential Packages your projects will ever need. Follows Clean Architecture Principles.

About

dotnet-webapi-boilerplate is an integral part of the fullstackhero project.

fullstackhero is a venture to develop industry-leading boilerplate templates for the dotnet stack as the backend (web API) along with modern client frameworks like Angular, MVC, and Blazor.

This repository contains the WebApi Project of fullstackhero.

Release Planning

0.0.5 RC is available now!

  • Fixed Password Reset / Forgot
  • Fixed Omnisharp Warnings / Code Cleanup
  • Fixed Repository Method
  • Log Hangfire to Serilog - Thanks frankyjquintero
  • Extras Hangfire extensions - Thanks frankyjquintero
  • Hangfire implementation examples - Thanks frankyjquintero
  • Separate JSON files for each Settings - Thanks unchase
  • Added Events and Handlers via MediatR - Thanks frankyjquintero
  • Moved to Tenancy Middleware - Thanks frankyjquintero & fretje
  • Solution Cleanup - rulesets & analyzer - Thanks fretje
  • Added More Functions for RepositoryAsync - Thanks ghaithprosoft
  • Entity Database Seeding Simplified
  • File-Scoped namespaces and implicit usings
  • Better Folder Structure / Modular

0.0.6-rc / (maybe 1.0) - Next Release

  • AD Authentication Support
  • Oracle DB Provider for EFCore support
  • Refactored Repository Methods with better specifications
  • Code Refactors

View Complete Changelogs.

These are the first pre-release versions of the fullstackhero .NET WebAPI Boilerplate package. Newer versions will be available on a weekly basis with newer updates and patches. Read the getting-started guide for more.

The Release Version v1 is expected to be out by December 20th or earlier. Preview versions of this project are available for Initial Developer Testing. 0.0.5 RC is the most stable version of this API currently.

Quick Start Guide

Open up your Command Prompt / Powershell and run the following command to install the solution template.

dotnet new --install FullStackHero.WebAPI.Boilerplate

This would install the fullstackhero .NET WebAPI Boilerplate template globally on your machine. With that done, let's see how you can start generating complete .NET WebAPI Solutions seamlessly.

Simply navigate to a new directory (wherever you want to place your new solution), and open up Command Prompt at the opened directory.

Run the following command. Note that, in this demonstration, I am naming my new solution as FSH.Starter.

dotnet new fsh-api -o FSH.Starter

For further steps and details, Read the Getting Started Guide

Important Links & Documentations

Overview - Read

Getting Started - Read

Development Environment - Learn about setting up the DEV environment

Track Progress - Release 1.0 Milestones

Participate in Discussions - QNA & General Discussions

Join our Discord - fullstackhero @ Discord

Features

  • Built on .NET 6.0
  • Follows Clean Architecture Principles
  • Completely Documented at fullstackhero.net
  • Multi Tenancy Support
    • Create Tenants with Multi Database / Shared Database Support
    • Activate / Deactivate Tenants on Demand
    • Upgrade Subscription of Tenants - Add More Validity Months to each tenant!
  • Supports MySQL, MSSQL, Oracle & PostgreSQL!
  • Uses Entity Framework Core as DB Abstraction
  • Flexible Repository Pattern
  • Dapper Integration for Optimal Performance
  • Serilog Integration
  • Swagger Support
  • Mapster Integration for Quicker Mapping
  • API Versioning
  • Response Caching - Distributed Caching
  • Fluent Validations
  • Audit Logging
  • Advanced User & Role Based Permission Management
  • Code Analysis & StyleCop Integration with Rulesets
  • JSON Based Localization with Caching
  • Hangfire Support
  • File Storage Service
  • Test Projects
  • & Much More

Community

Contributors

Submit your PR and join the elite list!

License

This project is licensed with the MIT license.

Support ⭐

Has this Project helped you learn something New? or Helped you at work? Here are a few ways by which you can support.

  • Leave a star! ⭐
  • Recommend this awesome project to your colleagues. 🥇
  • Do consider endorsing me on LinkedIn for ASP.NET Core - Connect via LinkedIn 🦸
  • Or, If you want to support this project in the long run, consider buying me a coffee! ☕

black-button