MasaFramework テンプレートのインストール
以下のコマンドを実行して最新の Masa テンプレートをインストールします。
dotnet new install Masa.Template
インストールが完了すると、4つのテンプレートが表示されます。

Masa Blazor App
Masa Blazor App のテンプレートは、ソリューションを含まないプロジェクトテンプレートです。デフォルトのプロジェクト構造は次のとおりです。

シンプルな Masa Blazor Server プロジェクトです。
Masa Blazor Pro Web
Masa Blazor Pro Web のテンプレートには複数の作成タイプがあります。

- Wasm:純粋な Wasm モードです。
- Wasm-Host:Server を起動して Wasm をホストします。
- Wasm-PWA:ブラウザへのインストールをサポートします。
- Server:純粋な Blazor Server モードです。
- ServerAndWasm:Razor クラスライブラリを UI として提供し、Blazor Server と Blazor Wasm の両方のモードをサポートします。
上記5つのモードの中では、5番目のモードが最も推奨されます。これにより、デプロイ時に Blazor Server と Blazor Wasm の両方のモードを展開でき、ユーザーが自分で切り替えることができます。Masa Blazor Pro Web のプロジェクト構造を分析します。

MasaWebPro1 プロジェクトは Razor クラスライブラリで、UI ロジックと実際のビジネスを提供します。
MasaWebPro1.Server プロジェクトは、Blazor Server モードで MasaWebPro1 の UI をホストするだけです。
MasaWebPro1.WebAssembly プロジェクトは、Blazor WebAssembly モードで MasaWebPro1 の UI をホストするだけです。
プロジェクトを実行すると、美しいプロジェクトテンプレートが表示されます。

これを修正して二次開発することができ、Pro と MasaFramework を組み合わせて使用することもできます。
Masa Blazor Website
Masa Blazor Website のプロジェクト構造:

Masa Blazor Website は、旧バージョンのドキュメントサイトのテンプレートです。簡単に説明すると、デフォルトでグローバリゼーションが使用されています。
Masa Framework Project
Masa Framework Project が今回の主役です。
MasaFramework を使用する必要がある方は、このテンプレートを作成する必要があります。以前のテンプレートは純粋な Blazor でした。
MasaFramework を作成する際には、複数のオプションがあります。

- Use Controllers:コントローラーを有効にすると MiniApis は使用しません(MiniApis の使用推奨)
- Enable OpenAPI Support:Swagger をデフォルトで使用するかどうか
- Add Dapr Support:Dapr サポートを追加
- Use Dapr Actor:Dapr Actor を使用
- Add Authorization An Authentication:認可と認証を追加
- Add Fluent Validation Middleware:バリデーションミドルウェアを追加
Choice Add Service Project and Mode の Basic、Cqrs、Ddd、Cqrs&Ddd の4つのプロジェクトテンプレートについて説明します。Choice Add Web Project は基本的に Blazor のホスティングモードです。
Basic:

最も基本的な MasaFramework のプロジェクト構造です。
Cqrs:

MasaFramework の Cqrs 構造です。基本的な MasaFramework プロジェクトと比較していくつかの違いがあります。
豆知識:CQRS(Command Query Responsibility Segregation)は、読み取り操作と書き込み操作を分離するアーキテクチャパターンです。この分離により、システムのパフォーマンスと拡張性を最適化できます。また、CQRS はイベント駆動アーキテクチャ(Event-Driven Architecture)を実装するシンプルな方法を提供し、システムをより柔軟で拡張可能にします。
Ddd:

MasaFramework の Ddd プロジェクトと基本テンプレートの違いも明確です。
豆知識:DDD(Domain Driven Design)はソフトウェア開発の方法論で、アプリケーション設計において技術的な実装ではなく、ビジネスドメインの概念とビジネスルールを最優先にすることを強調します。DDD の目標は、開発者が複雑なビジネス要件をよりよく理解し実装できるようにすることです。
Cqrs&Ddd:

Cqrs&Ddd は Cqrs と Ddd の2つのプロジェクトテンプレートの特性を統合した、やや複雑なフレームワークです。
豆知識:DDD と CQRS は一般的に一緒に使用されます。どちらもビジネスドメインの概念とビジネスルールを最優先にし、技術的な実装を二の次にすることを目的としているためです。DDD と CQRS を使用する場合、開発者は通常、ビジネスロジックとデータアクセスロジックを分離し、コードの管理とシステムの保守性を向上させます。
DDD と CQRS は異なる方法論ですが、どちらもビジネス要件を最優先にし、技術実装を二の次にすることを強調しています。複雑なアプリケーションを開発している場合、DDD と CQRS の使用が役立つ可能性があります。
プロジェクトの使用
MasaFramework を使用したい場合は、Masa Pro のテンプレートと MasaFramework のテンプレートを組み合わせて使用できます。

これは私が現在 MasaFramework を使用しているプロジェクトです。Web 部分は Pro のテンプレートを組み込み、修正を加えています。現在もプロジェクトは改良中であり、これが私が最初に触れた MasaFramework の実践プロジェクトです。私のニーズに合っており、サイズが小さく依存関係も少ないからです。
おわりに
Token 氏からの共有でした。
技術交流グループ:737776595
MasaFramework 学習先:MASA Framework