私は単純な3層アーキテクチャを使用しています。 これでは、UI、BLとDLの間で通信するDTOクラスを使用しています。 レイヤー間の通信にはより良い方法がありますか?またはこれは正しい方法ですか?3層アーキテクチャでのDTOの使用
答えて
DTO、データ転送オブジェクトは、あなたの消費者とあなたのサービスの間でデータを転送するときに使用、配布層のための概念です。したがって、サービスを公開しない場合は、DTOから降りてください。
質問に答えるには、アプリケーションの複雑さにもよります。単純ならCRUD操作を使用するか、DataTable
、DataSet
を通信に使用することもできます。
そうでない場合は、DDDからドメインエンティティは、レイヤ間の通信のためのコアオブジェクトです:データアクセス層、ビジネスロジック層とプレゼンテーション層。
- DTO、使用あなたの公共サービスは、主な目的は、消費者とあなたのサービス間で通信する: は基本的には、アプリケーション内のオブジェクトのいくつかの異なるタイプがあります。
- モデルを表示し、UIをサポートするプレゼンテーションレイヤーのオブジェクト。
- ドメインエンティティは、ビジネスロジックを含むビジネスロジックレイヤからのものです。
という言葉には注意してください:
- ティア:それは、データベースサーバ、ウェブサーバのように、物理的な意味します。
- レイヤ:Persentation層、ビジネスロジック層、データアクセス層:それは論理的な層を意味します。
これは非常に有益ですtutorialをお読みください。それはあなたのシナリオに適したDTOの決定に役立ちます。
おかげで、私が読んだ最高のDTOのチュートリアルを「通信」を定義します。要約すると、DTOはデカップリングの観点から最適です。プレゼンテーション層とビジネス層を分離します。しかし、それはPyrrhic勝利することができます。何百ものDTOクラスを作成すると、プロジェクトが膨らんでオーバーヘッドが発生します。著者は、DTOを使用するかどうかは、プロジェクトの詳細に依存していると言います。彼は、エンティティオブジェクトがプレゼンテーション層で参照されることを許されている実用的な途中の方法を提案しています。 – Gruber
@ Talhaの回答に加えて、私はこのarticleをお勧めしたいと思います。それはEF指向ですが、そこに記述されている概念は一般的なものです。
- 1. 3層アーキテクチャでのビジネス層の使用
- 2. 3層と3層のアーキテクチャ
- 3. 3階層アーキテクチャと2階層アーキテクチャ
- 4. エンティティフレームワークを使用する3層アーキテクチャ
- 5. WCFを使用した3層アーキテクチャ
- 6. Windowsの3層アーキテクチャのフォーム
- 7. TDDと3層アーキテクチャ
- 8. エンティティフレームワークと3層アーキテクチャ
- 9. リポジトリパターンと3層アーキテクチャ
- 10. 3層アーキテクチャのエラー処理
- 11. 3層アーキテクチャの問題
- 12. 3層アーキテクチャのLINQ to SQL
- 13. 3層アーキテクチャの正確さ
- 14. ユースケース図の3層アーキテクチャ
- 15. WPFフォームを使用した3層アーキテクチャの使用方法
- 16. VB.netでの3層アーキテクチャの開始
- 17. C#NHibernateアーキテクチャ、3層アプリケーション
- 18. ソフトウェア設計 - 3層アーキテクチャ
- 19. のLINQを使用した3層アーキテクチャは、
- 20. RIAサービス、SilverlightおよびPrismを使用する従来の3層/ n層アーキテクチャ
- 21. これは3層アーキテクチャですか?
- 22. Symfony PHPで3層アーキテクチャを実現
- 23. 多階層アーキテクチャでAutofacを使用
- 24. タマネギのアーキテクチャでのビューモデル/ DTOの配置
- 25. 3層アーキテクチャのクライアントからdbへの汎用メソッド
- 26. 3層アーキテクチャとsymfonyフレームワークについて
- 27. asp.netで3層アーキテクチャを使用しているページにログインできません。#
- 28. 3層アーキテクチャ(データベース-DAL-BLL-ユーザーインターフェイス)で動的データを使用できます
- 29. 3層ストラット2アーキテクチャのモデルクラスには何を使用しますか?
- 30. MVCアーキテクチャDTO /モデルマッピング/変換
は – jgauffin