Skip to content

Blazor, .NET Core, Clean Architecture, DDD, CQRS, SOLID, DI

License

Notifications You must be signed in to change notification settings

vinayaroratech/BlazorCleanArchitecture

Repository files navigation



Contributors Forks Stargazers Issues MIT License LinkedIn


Blazor - Clean Architecture Template

Open Sourced Solution Template For Blazor Web-Assembly 5.0 built with MudBlazor Components


Report Bug · Request Feature . Request Documentation

About The Project ⚡

This is a Clean Architecture Solution Template for Blazor Webassembly 5.0 built with MudBlazor Components.

Tech Stack 💪

Getting Started 🦸

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 couple of new migrations added that may clash with your existing schema. Also, install the latest version of Blazor.

The easiest way to get started with Blazor Hero is to install the NuGet package and run dotnet new VA.Blazor.CleanArchitecture:

  1. Install the latest .NET 5 SDK
  2. Install the latest DOTNET & EF CLI Tools by using this command dotnet tool install --global dotnet-ef
  3. Install the latest version of Visual Studio IDE 2019 (v16.8 and above) 🚀
  4. Open up Command Prompt and run dotnet new --install VA.Blazor.CleanArchitecture to install the project template
  5. Create a folder for your solution and cd into it (the template will use it as project name)
  6. Run dotnet new VA.Blazor.CleanArchitecture to create a new Solution with all the Awesomeness 🕶️ of Blazor 🦸

Overview

Domain

This will contain all entities, enums, exceptions, interfaces, types and logic specific to the domain layer.

Application

This layer contains all application logic. It is dependent on the domain layer, but has no dependencies on any other layer or project. This layer defines interfaces that are implemented by outside layers. For example, if the application need to access a notification service, a new interface would be added to application and an implementation would be created within infrastructure.

Infrastructure

This layer contains classes for accessing external resources such as file systems, web services, smtp, and so on. These classes should be based on interfaces defined within the application layer.

WebUI

This layer is a single page application based on Angular 10 and ASP.NET Core 5. This layer depends on both the Application and Infrastructure layers, however, the dependency on Infrastructure is only to support dependency injection. Therefore only Startup.cs should reference Infrastructure.

Support

If you are having problems, please let us know by raising a new issue.

License

This project is licensed with the MIT license.

Contributing

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.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Contact

Vinay Arora

About

Blazor, .NET Core, Clean Architecture, DDD, CQRS, SOLID, DI

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages