クリーン アーキテクチャ ソリューション テンプレート
3229 ワード
.NET API に取り組んでいるとき、私はクリーン アーキテクチャ パターンの大ファンになりました.このテーマについては、私が最初に学んだジェイソン・テイラー氏など、すでに多くの優れたリソースがあるため、ここでは詳しく説明しません.このパターンに慣れていない場合は、GOTO 2019 カンファレンスでの Jason による次のプレゼンテーションをご覧ください.
しかし、10,000 フィート レベルでは、Clean Architecture パターンを使用する API プロジェクトには 4 つの個別のプロジェクトがあります (必要な単体テスト プロジェクトと共に).
ドメイン – このプロジェクトは、アプリケーションのドメイン エンティティを保持するためのものです.このプロジェクトのクラスは、アプリケーションが使用するように構成されているデータ ストア内のデータ テーブルまたはレコードにマップされます. アプリケーション – このプロジェクトには、アプリケーション全体を想定どおりに実行させるビジネス ロジックとルールが含まれています.ドメイン プロジェクトを直接参照しますが、ソリューション内の他のプロジェクトは参照しません. インフラストラクチャ – このプロジェクトには、データベース、ファイル システム、その他の HTTP API などの外部エンティティと通信する必要があるロジックの実装が含まれています.アプリケーション プロジェクトを参照して、前述の外部エンティティにアクセスするために実装するアプリケーション コントラクトにアクセスします. Api – これはアプリケーションのフロントエンドであり、スタートアップ コードと API エンドポイント エントリ ポイントを提供します.
インストールしたら、次のコマンドを実行して新しいソリューションを作成できます.
実行すると、次のフォルダー構造を含む完全な .NET 6 ASP.NET API ソリューションが得られます (ソリューションに HelloWorld という名前を付けたと仮定します).
ソース
HelloWorld.Api HelloWorld.アプリケーション HelloWorld.ドメイン HelloWorld.Infrastructure
テスト
HelloWorld.Api.Tests HelloWorld.Application.Tests HelloWorld.Infrastructure.Tests
プロジェクトはすべて、nullable references types と implicit usings が有効になっている .NET 6 アプリケーションです.単体テスト プロジェクトでは、すぐに使用できる Xunit が使用されます. .gitignore、.editorconfig などのサポート ファイルもあります.
作成されるソリューションを変更する
–includeTests – テスト プロジェクトを含めるかどうかを決定します.デフォルト値: true
–skipRestore – 指定した場合、作成時のプロジェクトの自動復元をスキップします.デフォルト値: false
–useStartup – API プロジェクトが新しい最小 API スタイルの Program.cs ファイルの代わりに Startup.cs を使用するかどうかを決定します.デフォルト値: false
–includeEF – 設定されている場合、作成されたソリューションには Entity Framework Core が含まれ、指定されたプロバイダーを使用するように構成されます (これらのプロバイダーのみが現在サポートされています)
postgres – Postgres Entity Framework 構成を追加します sqlserver – SQL Server Entity Framework 構成を追加します
ソリューション テンプレートを含む Nuget パッケージは、完全に無料のオープン ソースであり、MIT ライセンスされています. Nuget パッケージは here で見つかり、テンプレートのソース コードは here で見つかります.提案がある場合、またはテンプレートに貢献したい場合は、お知らせください.
しかし、10,000 フィート レベルでは、Clean Architecture パターンを使用する API プロジェクトには 4 つの個別のプロジェクトがあります (必要な単体テスト プロジェクトと共に).
ソリューション テンプレート Nuget パッケージ
StaticSphere.CleanArchitecture.Api
という Nuget パッケージを作成し、Nuget.org に公開しました.次のコマンドを使用してインストールできます.dotnet new --install StaticSphere.CleanArchitecture.Api
インストールしたら、次のコマンドを実行して新しいソリューションを作成できます.
dotnet new clean-arch <<parameters>>
実行すると、次のフォルダー構造を含む完全な .NET 6 ASP.NET API ソリューションが得られます (ソリューションに HelloWorld という名前を付けたと仮定します).
プロジェクトはすべて、nullable references types と implicit usings が有効になっている .NET 6 アプリケーションです.単体テスト プロジェクトでは、すぐに使用できる Xunit が使用されます. .gitignore、.editorconfig などのサポート ファイルもあります.
作成されるソリューションを変更する
dotnet new
コマンドに渡すことができるパラメーターがあります.オープンソース
ソリューション テンプレートを含む Nuget パッケージは、完全に無料のオープン ソースであり、MIT ライセンスされています. Nuget パッケージは here で見つかり、テンプレートのソース コードは here で見つかります.提案がある場合、またはテンプレートに貢献したい場合は、お知らせください.
Reference
この問題について(クリーン アーキテクチャ ソリューション テンプレート), 我々は、より多くの情報をここで見つけました https://dev.to/nordyj/clean-architecture-solution-template-4i6kテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol