WCF、DAO、および DTO レイヤーが相互に通信する方法を教えてもらえますか? どのレイヤーが最初に来て、それが次のレイヤーとどのように相互作用するかなどを誰かが指定できれば幸いです。
2454 次
1 に答える
4
これらの用語の意味がわからないようです。まず第一に、それらのどれも「レイヤー」ではありません。
- WCF - Windows Communication Foundation - サービス指向アプリケーションを構築するための MS テクノロジ
- DAO - データ アクセス オブジェクト - データベースと対話する操作 (オブジェクトの読み込み、オブジェクトの保存など) を公開するが、データベースに関する詳細を内部的に隠すオブジェクト。
- DTO - データ転送オブジェクト - あるレイヤー/層から別のレイヤー/層にデータを転送するために使用される特別なタイプのオブジェクト。
したがって、実際のアーキテクチャでのこれらの用語の使用例は次のようになります。
データ層 (DB サーバー)
- 実行中のデータベース
ビジネス層 (アプリケーション サーバー)
- DAO を使用して DB にアクセスし、上位層から DB の詳細を隠すためのデータ アクセス層。
- データ アクセス レイヤーを使用してデータにアクセスし、永続化するビジネス レイヤー。すべてのドメイン ロジック、ワークフロー、ビジネス ルールなどを実行します。
- ビジネス レイヤーからビジネス オペレーションを公開する WCF に実装されたサービス レイヤー。サービス層は、DTO を使用してデータを転送する Web サービスを公開します。ドメイン/ビジネス オブジェクトは、DTO との間で変換されます。
プレゼンテーション層 (Web サーバー)
- プレゼンテーション層 - サービス層を使用してビジネス層と通信する ASP.NET アプリケーション。サービス層とプレゼンテーション層は、DTO のみを交換します。
このアーキテクチャは、大規模なプロジェクト専用です。通常、プレゼンテーション層とビジネス層を分離する必要はないため、WCF サービス層は必要ありません。このような場合、プレゼンテーション層は DTO を使用せずにビジネス層に直接アクセスできます。
編集:
あなたのコメントに基づいて、これらの情報を追加しています。
- NHibernate
Session
は、DB とやり取りするための操作を提供するだけでなく、DB の詳細を隠すため、DAO と呼ばれることもあります。 - NHibernate を使用する場合、定義されたマッピングに基づいて DB に永続化できる一連のクラスがあります。Hibernate は、これらのオブジェクトを格納およびロードします。これらのクラスにいくつかのロジック (メソッド) を追加して、ドメイン/ビジネス オブジェクトと呼ぶことができます。
- DTO は、ロジックを持たない特殊なタイプのオブジェクトです。データ用ジュセクレートです。通常、操作に実際に必要なデータのみを転送するように設計されています (たとえば、名前と電子メールのみが必要な場合は、顧客オブジェクト全体を転送しません)。DTO は、クライアントとサービス間の往復を減らすために、複数のビジネス オブジェクトからデータを転送するようにも設計する必要があります。
于 2011-02-25T15:24:35.417 に答える