Installing MasaFramework Templates
Run the following command to install the latest Masa templates:
dotnet new install Masa.Template
Once installed, four templates will be available:

Masa Blazor App
The Masa Blazor App template creates a project without a solution. The default project structure is shown below:

A simple Masa Blazor Server project.
Masa Blazor Pro Web
The Masa Blazor Pro Web template offers multiple creation types:

- Wasm: A pure Wasm mode.
- Wasm-Host: Starts a Server to host Wasm.
- Wasm-PWA: Supports browser installation.
- Server: A pure Blazor Server mode.
- ServerAndWasm: Provides a Razor class library as the UI, supporting both Blazor Server and Blazor Wasm modes.
Among the five modes, the fifth is the most recommended. It allows deployment in both Blazor Server and Blazor Wasm modes, letting users switch between them. Below is an analysis of the Masa Blazor Pro Web project structure:

The MasaWebPro1 project is a Razor class library providing UI logic and actual business logic.
The MasaWebPro1.Server project simply hosts the UI of MasaWebPro1 in Blazor Server mode.
The MasaWebPro1.WebAssembly project simply hosts the UI of MasaWebPro1 in Blazor WebAssembly mode.
Running the project yields a well-designed project template:

You can modify it for further development or combine Pro with MasaFramework.
Masa Blazor Website
The Masa Blazor Website project structure:

Masa Blazor Website is a template for an older version of the documentation site. Briefly, it uses globalization by default.
Masa Framework Project
Masa Framework Project is the main focus.
Those who need to use MasaFramework should create this template. The previous templates were purely Blazor.
When creating a MasaFramework project, multiple options are available:

- Use Controllers: Enables controllers instead of MiniApis (MiniApis are more recommended).
- Enable OpenAPI Support: Whether to enable Swagger by default.
- Add Dapr Support: Adds Dapr support.
- Use Dapr Actor: Uses Dapr Actor.
- Add Authorization and Authentication: Adds authorization and authentication.
- Add Fluent Validation Middleware: Adds validation middleware.
Let’s explain the four project templates in the "Choice Add Service Project and Mode" section: Basic, Cqrs, Ddd, and Cqrs & Ddd. The "Choice Add Web Project" is essentially the Blazor hosting mode.
Basic:

A basic MasaFramework project structure.
Cqrs:

The Cqrs structure in MasaFramework differs somewhat from the basic MasaFramework project.
Tip: CQRS (Command Query Responsibility Segregation) is an architectural pattern that separates read and write operations. The basic idea is to separate reads and writes to optimize system performance and scalability. CQRS also provides a simple way to implement event-driven architecture, making the system more flexible and scalable.
Ddd:

The Ddd project in MasaFramework differs significantly from the basic template.
Tip: DDD (Domain Driven Design) is a software development methodology that emphasizes placing the concepts and business rules of the domain first, rather than technical implementation. The goal of DDD is to help developers better understand and implement complex business requirements.
Cqrs & Ddd:

Cqrs & Ddd integrates features from both the Cqrs and Ddd templates, forming a slightly more complex framework.
Tip: DDD and CQRS are often used together because they share the same goal: placing domain concepts and business rules first, and technical implementation second. When using DDD and CQRS, developers typically separate business logic from data access logic, making code management and system maintenance easier.
DDD and CQRS are two different methodologies, but both emphasize putting business needs first and technical implementation second. If you are developing complex applications, using DDD and CQRS may be beneficial.
Using the Project
If you want to use MasaFramework, you can combine the Masa Pro template with the MasaFramework template:

This is my current project using MasaFramework. The Web part embeds and modifies the Pro template. The project is still under development, and it is my first hands-on practice with MasaFramework because it meets my needs: small footprint, few dependencies.
Conclusion
Shared by token
Tech community: 737776595
MasaFramework learning resources: MASA Framework