ABP開発ノート2 - アーキテクチャ

ABP開発ノートディレクトリを入力するにはここをクリック

 

ABP階層化アーキテクチャ

入門

レイヤードアプリケーションのコードベースは、複雑さを軽減し、コードの再利用性を向上させることができます広く受け入れられている技術です。階層化アーキテクチャを実現するために、ASP.NETボイラープレートは従って、ドメイン駆動設計の原則を

ドメイン駆動設計層

ドメイン駆動設計(DDD)は、4つの基本的な層を有しています。

  • プレゼンテーション層:ユーザーインタフェースを提供します。アプリケーション層のユーザーとの対話を使用してください。
  • アプリケーション層:プレゼンテーション層と層の領域との間の仲介。特定のアプリケーションのタスクを実行するために、ビジネス・オブジェクトを編成。
  • ドメイン・レイヤー:ビジネス・オブジェクトとルールが含まれています。これは、アプリケーションの中核です。
  • インフラストラクチャ層:主に上位層をサポートするために、サードパーティ製のライブラリを使用する一般的な技術的特徴を提供しています。

ASP.NETモデルアプリケーションのアーキテクチャモデル

DDDのほか、近代建築のアプリケーションは、他の論理および物理層を含みます。次のモデルASP.NET定型アプリケーションをオススメして実装します。ASP.NETボイラープレートだけでなく、このモデルのより容易な実装を可能にする基底クラスとサービスを提供することにより、だけでなく、提供を開始してから直接モデルをスタートテンプレート

ASP.NETボイラープレートNLayerアーキテクチャ

クライアントアプリケーション
のリモートクライアントである、彼らは、HTTP APIを介してサービス(APIコントローラー、ODataのコントローラ、でもGraphQLエンドポイント)などのアプリケーションを使用します。リモートクライアントは、SPA(単一ページのアプリケーション)、モバイルアプリケーションやサードパーティ製のユーザーであることができます。ローカライズとナビゲーションは、このアプリケーションで行うことができます。

プレゼンテーション層
ASP.NETコアMVC(モデル-ビュー-コントローラ)は、プレゼンテーション層とみなすことができます。これは、物理層(HTTP APIを用いてアプリケーション)または(直接注入、およびアプリケーションサービスを使用して)、論理層であってもよいです。いずれの場合においても、それが局在化、ナビゲーション、オブジェクトマッピング、キャッシング、構成管理、監査ログを含むことができます。また、認可、セッション、機能(マルチテナントアプリケーション用)と例外処理を処理します。

分散サービス層は、
相互作用ドメインへのリモート...彼らは、ビジネスロジックが含まれていないAPIのようなREST、ODataの、GraphQLすることにより、アプリケーション/ドメインの機能を提供するための層、および唯一のHTTPリクエスト、またはへのサービスアプリケーションを使用することができます主な業務。層は、典型的には、許可キャッシュ、監査ログ、オブジェクトマッピング、例外処理、およびセッションを含みます。

アプリケーション層は、
アプリケーション層は、アプリケーション要求の機能を実行するためのアプリケーションサービス層のアートやアートオブジェクト(フィールドサービスエンティティ...)の使用を含みます。なお、取得した送信対象データを使用してプレゼンテーション層または分散サービス層から分散サービス層または複数の層を表すデータにデータを返します。また、認可、キャッシング、監査ログ、マッピングオブジェクト、および他のセッションを処理します。

ドメイン・レイヤーは、
この層は、当社のドメインロジックの主要な成果です。これは、サービス/ドメインロジックを実行するために、物理的なサービスエリアとオブジェクトの値を含みます。また、フィールドとトリガーイベントの仕様を含んでいます。これは、予約済みソース(通常DBMS)エンティティからデータを読み取り、格納するためにインタフェースを定義します。

インフラストラクチャ層
インフラストラクチャ層の他の層を再生する:それは、実際のデータベースの実際の使用(例えば、Entity Frameworkのコアを使用して)インタフェース・リポジトリを実装します。また、電子メールを送信するために取引先との統合を含むことができます。これは厳密には、すべての層を内層ではないが、実際に抽象化レイヤを実装することにより、他の層を支持します。

おすすめ

転載: www.cnblogs.com/IT-Evan/p/ABP2.html