私は Web サイトのバックエンドを書き直している最中であり、それを 3 層アーキテクチャーに移行しています。
私の意図は、次のように構成することです。
Web site <--> WCF Service (1) <--> Business Layer (2) <--> Data Layer (3)
私の問題は、この構造内に DTO を配置することです。DTO を使用して、ビジネス層と WCF サービスの間、および WCF サービスから消費 Web サイトにデータを移動する必要があります。
ここでの調査中に、いくつかの優れた議論を読みましたが、頭を少し悩ませていました。
Davide Piras はこの投稿でいくつかの素晴らしい点を述べています。私がこの設計に従うとしたら、別のプロジェクトで POCO のインターフェイスを宣言します。これらは、層 (1) および (2) によって実装されます。私はインターフェイスの使用が好きですが、(1) と (2) で POCO を宣言し、AutoMapper のようなものを使用してそれらのデータを前後にコピーすることで、より多くの作業を自分で行うように思えます。
この投稿では、すべての層から参照されるビジネス オブジェクト プロジェクトが作成されるシステムを使用します。これは他のソリューションよりも単純なようで、次のようなソリューションにつながるようです
Web site <--> WCF Service (1) <--> Business Layer (2) <--> Data Layer (3)
^ ^ ^
| | |
[ -- Business Objects Referenced here --]
私の質問は次のとおりです。ソリューションの 3 層にわたってビジネス オブジェクトを共有するコードの匂いはありますか?それとも、上に挙げた 2 つの方法は、同じナットをクラックする 2 つの異なる方法にすぎませんか?