2011-06-29 4 views
1

新しいWebアプリケーションを開始し、N層設計を採用することにしました。DALとBLLとの間のオブジェクトの転送

層(DTO)間でデータを転送するオブジェクト(
)にはいくつかの方法がありますか?

2つのデータベースからデータを整理する場合は、オブジェクトごとにすべてのレイヤーに対して1つのDTOを作成する必要がありますか?標準は何ですか?

マイクロソフトによるWebアプリケーションの設計を読んでいます。

答えて

2

DTOオブジェクトは、通常、データのコンテナであり、動作しません。 DTOオブジェクトを使用する階層間のマッピングを実装する方法は多数あります。

あなたはMSパターン&練習チームからDTOについての記事を読んでいくつかのガイドラインを持つことができます:How to effectively use DTO objects (Data Transfer Objects)?

ます。また、作業プロジェクトのサンプル」の表情を持つことができます:http://msdn.microsoft.com/en-us/library/ff649585.aspx

SO上の別のressourceがありますMicrosoft - Domain Oriented N-Layered .NET 4.0 App Sample ":http://microsoftnlayerapp.codeplex.com/多くのパターンが使用され、DTOも使用されています。

+0

私たちは、内部オブジェクトのデータを設定するメソッドを呼び出すユーザーによって新しいデータベースを作成する際に、データが2つのデータベースから構成されているsiteというオブジェクトを持っています(これはひどい - 古いアーキテクチャです)。他のDB)、私はDTO/POCOでそれが好きではないですが、それはBLLにありますが、そのオブジェクトの構造はDALにあるべきですか?その方法を持っているのは普通ですか?それはDAOのutilメソッドですか?あなたの考えは何ですか? – guyl

+1

私のアドバイスは、それを単純で愚かなものに保つことです(KISS)。私は懸念の分離を保つのが好きです。最もシンプルなシナリオでは、DALレイヤとドメインレイヤがあります。ドメインは何も参照しません。 DALはDomainを知っているので、マッピングメソッドやヘルパーメソッドを実装することができます。あなたのケースでは、サードパーティのフレームワークやカスタムヘルパーメソッドでサイトオブジェクトをデータで埋めることができますが、私はそれをあなたのdalに残すことが最善だと思います。重要なことが「どこでも」どこで行われたのかは問題ではありません。 –

関連する問題