伊藤  直子

伊藤 直子

1648055520

.NET6を使用したクリーンなアーキテクチャ

ソフトウェアの設計とアーキテクチャは、通常、ソリューションの基盤、構造、および編成を指します。持続可能なソリューションを設計する際には、常に保守性を最優先に考える必要があります。保守性とは、ソリューションが強力な基盤を備えて適切に設計されている必要があることを意味します。ソリューションは、最良の原則と設計手法に従う必要があります。

クリーンなアーキテクチャは、その持続可能な特性のために、最も使用されているソフトウェア開発デザインパターンの1つです。

この記事では、クリーンなアーキテクチャとは何かについて簡単に説明し、このアーキテクチャに従って.NET6でソリューションを設計します。 

  • クリーンアーキテクチャについての簡単な説明
  • .NET6を使用してクリーンなアーキテクチャソリューションを設計する
  • クリーンなアーキテクチャを使用したASP.NETCoreWeb API
  • .NET6を使用したクリーンなアーキテクチャでのEntityFrameworkの実装

同じアプローチを使用して、ASP.NET Core MVC、ASP.NET Core Razor Pages、Web API、またはWinFormsを使用してクリーンなアーキテクチャを設計できます。

クリーンなアーキテクチャ

ドメイン駆動設計としても知られているクリーンアーキテクチャは、過去数年間でかなりの改善を伴って進化してきました。長年にわたってクリーンなアーキテクチャに使用されてきたアーキテクチャ名のいくつかを以下に示します。

上記のアーキテクチャには、コアビジネスのログインとアプリケーションドメインをソリューション構造の中心に保つという主要なアイデアを持つ同様の設計原則があります。

したがって、このアーキテクチャの全体的な考え方は、完全なビジネスロジックとアプリケーションエンティティで構成されるコア部分を、変化するテクノロジーとインターフェイスに対処するのに十分な適応性と柔軟性を備えたものにすることです。さらに、コアアプリケーションは同じままで、プレゼンテーションレイヤー、インフラストラクチャ、およびデータベースから独立しています。

これらのペースの速いテクノロジーでは、JavaScriptフレームワーク、Webフレームワーク、データベース、および外部パーツが絶対的またはアップグレードされます。このクリーンなアーキテクチャを使用すると、最小限の労力でこれらのアイテムを置き換えることができます。このアーキテクチャは、コアアプリケーションのビジネスロジックとエンティティがフレームワーク、プレゼンテーション、データベース、および外部パーツから独立しているため、時間を大幅に節約します。その後、アーキテクチャは持続可能であり、コアビジネスロジックとエンティティがプレゼンテーション層またはフレームワークと緩く結合されます。

ソリューションの設計から始めましょう。

前提条件

  • .NET 6 SDK(https://dotnet.microsoft.com/download/dotnet/6.0)
  • VisualStudio2022またはVisualStudioCode

.NET6を使用したクリーンアーキテクチャの実装

このセクションでは、.NET6のクリーンアーキテクチャの原則に従った完全なソリューションを紹介します。

まず、VisualStudioで空のソリューションを作成しましょう。以下に示すように、Visual Studioを開き、プロジェクトテンプレートをBlankSolutionとして選択します。

ソリューションに名前を付けます。この記事では「RijsatCleanArchtecture」としてダミーの名前を使用しますが、プロジェクトに基づいて常に適切な名前を付けます。続いて、ソリューションの場所を提供します。

ソリューションのコア部分であるコアロジックとエンティティ(モデル)を追加します。ソリューションを右クリックして、以下に示すようにプロジェクトを追加して、それらのクラスライブラリを追加しましょう。

クラスライブラリテンプレートを選択します。図のように単語を入力するだけで検索できます。

クラスライブラリに名前を付けます。

次の画面には、フレームワークを選択するオプションが表示されます。.NET6を選択します。

同様に、アプリケーションライブラリとインフラストラクチャライブラリを作成し、以下に示すようにプロジェクトを編成します。

上記の図書館の構成についてもう少し説明させてください。ドメインとアプリケーションを含むソリューションのコア部分をグループ化しています。これらの2つのライブラリは、外部のデータベース、サービス、およびプレゼンテーション(UI)から独立しています。同様に、インフラストラクチャ、永続性、ドライバー、サービスなどのすべての外部エージェントを別のフォルダーインフラストラクチャに保持できます。

次に、ホストプロジェクトを作成します。ホストプロジェクトを再びグループ化できます。ホストプロジェクトは通常、WebApi、ASP.NET MVC、Razor Pages、またはフロントエンドフレームワークを備えた個別のUIを含むプレゼンテーションレイヤーです。

この記事では、ASP.NET CoreWebAPIをホストまたはUIとして使用します。ソリューションにホストプロジェクトを作成しましょう。

Web APIの名前を指定してから、示されているようにさらにいくつかのオプションを取得します。

フレームワーク、認証タイプ、Https構成、Docker有効化、コントローラーの使用、OpenAPIサポートを選択するオプションがあります。ニーズに基づいてオプションを選択できます。

ただし、要件に基づいて、プレゼンテーションUIとしてASP.NETMVCまたはRazorPagesを追加できます。重要なのは、コア(ビジネスロジック)とインフラストラクチャの部分が、クリーンアーキテクチャの基本原則と同じになることです。 

これで、ソリューションは次のように編成されます。

次に、プロジェクトの依存関係を追加します。クリーンなアーキテクチャの原則に従って、ドメインはそのまま保持されます。つまり、このドメインライブラリにはプロジェクト参照や外部パッケージはありません。次の層、アプリケーション(ビジネスロジック)はドメインライブラリのみを参照し、パッケージをツールとしてのみ使用します。 

UIとインフラストラクチャの両方で、参照としてアプリケーションライブラリが追加されます。 

プロジェクト参照は以下のようになります。

  • ドメインライブラリへの参照はありません
  • アプリケーション:ドメインプロジェクトの参照を追加
  • インフラストラクチャ:アプリケーションプロジェクトの参照を追加
  • WebApi:アプリケーションおよびインフラストラクチャプロジェクトの参照を追加します

上記のソリューションを観察すると、コアビジネスロジック(ドメイン+アプリケーション)は、UI、データベース、外部エージェント、およびインフラストラクチャから独立しています。ただし、UIとインフラストラクチャはコアビジネスロジックに依存しています。したがって、UI、データベース、または外部サービスを変更しても、コア部分(ドメインとアプリケーション)は同じままであり、ソリューションは長期的に持続可能で保守可能になります。

これで、.NET6のクリーンなアーキテクチャでソリューションの準備が整いました。

この記事は、.NET6を使用したCleanArchitectureの一部であり、原則を使用してソリューションを設計しました。次の記事では、同じソリューションでEntityFrameworkを実装します。

結論

要約すると、この記事では、クリーンなアーキテクチャとは何か、および設計の原則について説明しました。さらに、.NET 6を使用してクリーンなアーキテクチャを設計しました。また、クリーンなアーキテクチャ標準を使用してASP.NET CoreWebAPIを作成しました。次の記事では、.NET 6を使用してクリーンなアーキテクチャでエンティティフレームワークを実装し、CRUD操作を実行します。

ソース:https ://rijsat.com/2022/03/14/clean-architecture-with-net-6/

#dotnet  #aspdotnet  #api  #crud 

What is GEEK

Buddha Community

.NET6を使用したクリーンなアーキテクチャ
伊藤  直子

伊藤 直子

1648055520

.NET6を使用したクリーンなアーキテクチャ

ソフトウェアの設計とアーキテクチャは、通常、ソリューションの基盤、構造、および編成を指します。持続可能なソリューションを設計する際には、常に保守性を最優先に考える必要があります。保守性とは、ソリューションが強力な基盤を備えて適切に設計されている必要があることを意味します。ソリューションは、最良の原則と設計手法に従う必要があります。

クリーンなアーキテクチャは、その持続可能な特性のために、最も使用されているソフトウェア開発デザインパターンの1つです。

この記事では、クリーンなアーキテクチャとは何かについて簡単に説明し、このアーキテクチャに従って.NET6でソリューションを設計します。 

  • クリーンアーキテクチャについての簡単な説明
  • .NET6を使用してクリーンなアーキテクチャソリューションを設計する
  • クリーンなアーキテクチャを使用したASP.NETCoreWeb API
  • .NET6を使用したクリーンなアーキテクチャでのEntityFrameworkの実装

同じアプローチを使用して、ASP.NET Core MVC、ASP.NET Core Razor Pages、Web API、またはWinFormsを使用してクリーンなアーキテクチャを設計できます。

クリーンなアーキテクチャ

ドメイン駆動設計としても知られているクリーンアーキテクチャは、過去数年間でかなりの改善を伴って進化してきました。長年にわたってクリーンなアーキテクチャに使用されてきたアーキテクチャ名のいくつかを以下に示します。

上記のアーキテクチャには、コアビジネスのログインとアプリケーションドメインをソリューション構造の中心に保つという主要なアイデアを持つ同様の設計原則があります。

したがって、このアーキテクチャの全体的な考え方は、完全なビジネスロジックとアプリケーションエンティティで構成されるコア部分を、変化するテクノロジーとインターフェイスに対処するのに十分な適応性と柔軟性を備えたものにすることです。さらに、コアアプリケーションは同じままで、プレゼンテーションレイヤー、インフラストラクチャ、およびデータベースから独立しています。

これらのペースの速いテクノロジーでは、JavaScriptフレームワーク、Webフレームワーク、データベース、および外部パーツが絶対的またはアップグレードされます。このクリーンなアーキテクチャを使用すると、最小限の労力でこれらのアイテムを置き換えることができます。このアーキテクチャは、コアアプリケーションのビジネスロジックとエンティティがフレームワーク、プレゼンテーション、データベース、および外部パーツから独立しているため、時間を大幅に節約します。その後、アーキテクチャは持続可能であり、コアビジネスロジックとエンティティがプレゼンテーション層またはフレームワークと緩く結合されます。

ソリューションの設計から始めましょう。

前提条件

  • .NET 6 SDK(https://dotnet.microsoft.com/download/dotnet/6.0)
  • VisualStudio2022またはVisualStudioCode

.NET6を使用したクリーンアーキテクチャの実装

このセクションでは、.NET6のクリーンアーキテクチャの原則に従った完全なソリューションを紹介します。

まず、VisualStudioで空のソリューションを作成しましょう。以下に示すように、Visual Studioを開き、プロジェクトテンプレートをBlankSolutionとして選択します。

ソリューションに名前を付けます。この記事では「RijsatCleanArchtecture」としてダミーの名前を使用しますが、プロジェクトに基づいて常に適切な名前を付けます。続いて、ソリューションの場所を提供します。

ソリューションのコア部分であるコアロジックとエンティティ(モデル)を追加します。ソリューションを右クリックして、以下に示すようにプロジェクトを追加して、それらのクラスライブラリを追加しましょう。

クラスライブラリテンプレートを選択します。図のように単語を入力するだけで検索できます。

クラスライブラリに名前を付けます。

次の画面には、フレームワークを選択するオプションが表示されます。.NET6を選択します。

同様に、アプリケーションライブラリとインフラストラクチャライブラリを作成し、以下に示すようにプロジェクトを編成します。

上記の図書館の構成についてもう少し説明させてください。ドメインとアプリケーションを含むソリューションのコア部分をグループ化しています。これらの2つのライブラリは、外部のデータベース、サービス、およびプレゼンテーション(UI)から独立しています。同様に、インフラストラクチャ、永続性、ドライバー、サービスなどのすべての外部エージェントを別のフォルダーインフラストラクチャに保持できます。

次に、ホストプロジェクトを作成します。ホストプロジェクトを再びグループ化できます。ホストプロジェクトは通常、WebApi、ASP.NET MVC、Razor Pages、またはフロントエンドフレームワークを備えた個別のUIを含むプレゼンテーションレイヤーです。

この記事では、ASP.NET CoreWebAPIをホストまたはUIとして使用します。ソリューションにホストプロジェクトを作成しましょう。

Web APIの名前を指定してから、示されているようにさらにいくつかのオプションを取得します。

フレームワーク、認証タイプ、Https構成、Docker有効化、コントローラーの使用、OpenAPIサポートを選択するオプションがあります。ニーズに基づいてオプションを選択できます。

ただし、要件に基づいて、プレゼンテーションUIとしてASP.NETMVCまたはRazorPagesを追加できます。重要なのは、コア(ビジネスロジック)とインフラストラクチャの部分が、クリーンアーキテクチャの基本原則と同じになることです。 

これで、ソリューションは次のように編成されます。

次に、プロジェクトの依存関係を追加します。クリーンなアーキテクチャの原則に従って、ドメインはそのまま保持されます。つまり、このドメインライブラリにはプロジェクト参照や外部パッケージはありません。次の層、アプリケーション(ビジネスロジック)はドメインライブラリのみを参照し、パッケージをツールとしてのみ使用します。 

UIとインフラストラクチャの両方で、参照としてアプリケーションライブラリが追加されます。 

プロジェクト参照は以下のようになります。

  • ドメインライブラリへの参照はありません
  • アプリケーション:ドメインプロジェクトの参照を追加
  • インフラストラクチャ:アプリケーションプロジェクトの参照を追加
  • WebApi:アプリケーションおよびインフラストラクチャプロジェクトの参照を追加します

上記のソリューションを観察すると、コアビジネスロジック(ドメイン+アプリケーション)は、UI、データベース、外部エージェント、およびインフラストラクチャから独立しています。ただし、UIとインフラストラクチャはコアビジネスロジックに依存しています。したがって、UI、データベース、または外部サービスを変更しても、コア部分(ドメインとアプリケーション)は同じままであり、ソリューションは長期的に持続可能で保守可能になります。

これで、.NET6のクリーンなアーキテクチャでソリューションの準備が整いました。

この記事は、.NET6を使用したCleanArchitectureの一部であり、原則を使用してソリューションを設計しました。次の記事では、同じソリューションでEntityFrameworkを実装します。

結論

要約すると、この記事では、クリーンなアーキテクチャとは何か、および設計の原則について説明しました。さらに、.NET 6を使用してクリーンなアーキテクチャを設計しました。また、クリーンなアーキテクチャ標準を使用してASP.NET CoreWebAPIを作成しました。次の記事では、.NET 6を使用してクリーンなアーキテクチャでエンティティフレームワークを実装し、CRUD操作を実行します。

ソース:https ://rijsat.com/2022/03/14/clean-architecture-with-net-6/

#dotnet  #aspdotnet  #api  #crud