BlazorHero - Clean Architecture Template
About The Project
BlazorHero is a Clean Architecture Solution Template for Blazor Webassembly 6.0 built with MudBlazor Components.
Complete Overview - Youtube Video
So, here is an in-depth video that takes you through the BlazorHero Project! Do Like & Subscribe to my Youtube channel! It would be great if you could leave behind your valuable feedback in the comments section of the Video. This helps me reach a much wider audience with time :)
- Blazor WebAssembly 6.0 - ASP.NET Core Hosted Model
- Entity Framework Core 6.0
- UI Improvements
- Docker Support
- Better Permissions Management
- Code Cleanups
- RTL Support
- Minor Bug Fixes
- Better Project Structure
What to Expect in BlazorHero 3.0?
- Modular Architecture
- Cleaner Separation Of Code
- Dedicated Documentation Website - Here
- Tutorials to add new entities, controllers
- UI Updates
- Support for PostgreSQL / MySQL - Easy DB Switching
- Theme Manager Integration to change UI Color Palletes / Fonts on the go.
- You can suggest your requirements as well!
Down the Roadmap
- Migration to .NET 6
- Multi Tenancy
- Better Localization - JSON
Important If you are already using Blazor Hero v1.x, make sure that you drop your existing database and re-update your database using the CLI as there are a couple of new migrations added that might clash with your existing schema. Also, install the latest version of BlazorHero.
The easiest way to get started with Blazor Hero is to install the NuGet package and run
dotnet new BlazorHero.CleanArchitecture:
- Install the latest .NET 6 SDK
- Install the latest DOTNET & EF CLI Tools by using this command
dotnet tool install --global dotnet-ef
- Install the latest version of Visual Studio IDE 2019 (v16.8 and above)
- Open up Command Prompt and run
dotnet new --install BlazorHero.CleanArchitectureto install the project template
- Create a folder for your solution and cd into it (the template will use it as project name)
dotnet new BlazorHero.CleanArchitectureto create a new Solution with all the Awesomeness
🕶️of BlazorHero 🦸
What to do next? Read the entire guide on my blog.
Getting Started with Docker in Windows
- Install Docker on Windows via
- Open up Powershell on Windows and run the following
dotnet dev-certs https -ep $env:USERPROFILE\.aspnet\https\aspnetapp.pfx -p securePassword123
dotnet dev-certs https --trust
- Note - Make sure that you use the same password that has been configured in the
docker-compose.ymlfile. By default,
- 5005 & 5006 are the ports setup to run blazorHero on Docker, so make sure that these ports are free. You could also change the ports in the
- Now navigate back to the root of the BlazorHero Project on your local machine and run the following via terminal -
docker-compose -f 'docker-compose.yml' up --build
- This will start pulling MSSQL Server Image from Docker Hub if you don't already have this image. It's around 500+ Mbs of download.
- Once that is done, dotnet SDKs and runtimes are downloaded, if not present already. That's almost 200+ more Mbs of download.
- PS If you find any issues while Docker installs the nuget packages, it is most likely that your ssl certificates are not installed properly. Apart from that I also added the
Server\Dockerfileto ensure network issues don't pop-up. You can remove this option to speed up the build process.
- That's almost everything. Once the containers are available, migrations are updated in the MSSQL DB, default data is seeded.
- Browse to https://localhost:5005/ to use your version of BlazorHero !
Getting started with Blazor Hero – A Clean Architecture Template built for Blazor WebAssembly using MudBlazor Components. This project will make your Blazor Learning Process much easier than you anticipate. Blazor Hero is meant to be an Enterprise Level Boilerplate, which comes free of cost, completely open sourced.
The provided documentation / guide will get you started with BlazorHero in no time. It provides a complete walkthrough for the project with to-the-point guides and notes.
All the completed and the upcoming features are mentioned in the Features.MD File
Contributions are what make the open-source community such an amazing place to be, learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature)
- Commit your Changes (
git commit -m 'Add some AmazingFeature')
- Push to the Branch (
git push origin feature/AmazingFeature)
- Open a Pull Request
Here are the few contributions that I would highly appreciate ;)
- Need someone to add in the API Documentation for Swagger.
- Need someone to implement localization throughout every Razor Component of the solution under the WASM(Client) Project. You can take the Pages/Authentication/Login.razor as the point of reference. It is as simple as adding
@inject Microsoft.Extensions.Localization.IStringLocalizer<Login> localizerto every page, changing the texts to
@localizer["Text Here"]and finally adding resx files to the Resources Folder as per the folder structure.
- Need few contributors to add in various language translations as per the implemented Location. I got time to only add a few translations for French as of now.
- Need a UI contributor to look at the UX/UI of the entire project
- Need someone to buildup a cool Material Logo for BlazorHero (BH):D Do contact me on LinkedIn (https://www.linkedin.com/in/iammukeshm/).
- And finally, Stars from everyone! :D
Distributed under the MIT License.
- Blogs at codewithmukesh.com
- Facebook - codewithmukesh
- Twitter - Mukesh Murugan
- Twitter - codewithmukesh
- Linkedin - Mukesh Murugan
Has this Project helped you learn something New? or Helped you at work? Do Consider Supporting. Here are a few ways by which you can support.
- Leave a star!
- Recommend this awesome project to your colleagues.
- Leave your feedback / comments regarding this project in the comments section on my blog Blazor Hero Blog
- Do consider endorsing me on LinkedIn for ASP.NET Core - Connect via LinkedIn
- Or, If you want to support this project on the long run, consider buying me a coffee!