問題タブ [dto]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - DTO をドメイン オブジェクトにマッピングするためのベスト プラクティス
DTOをドメイン オブジェクトにマッピングすることに関連する多くの質問を見てきましたが、それらが私の質問に答えているとは思いませんでした。私は以前に多くの方法を使用しており、独自の意見を持っていますが、もう少し具体的なものを探しています.
状況:
多くのドメイン オブジェクトがあります。CSLA モデルを使用しているため、ドメイン オブジェクトは非常に複雑になり、独自のデータ アクセスが含まれます。これらをネットワーク上で渡したくありません。さまざまな形式 (.Net、JSON など) でデータを返す新しいサービスを作成する予定です。このため (およびその他の理由から)、ネットワーク上でやり取りする無駄のないデータ転送オブジェクトも作成しています。
私の質問は、DTO とドメイン オブジェクトをどのように接続する必要があるかということです。
私の最初の反応は、Fowler の DTO パターン型ソリューションを使用することです。私はこれが何度も行われるのを見てきましたが、それは私にとって正しいと感じています. ドメイン オブジェクトには、DTO への参照が含まれていません。ドメイン オブジェクトから DTO を作成するために、外部エンティティ (「マッパー」または「アセンブラー」) が呼び出されます。通常、ドメイン オブジェクト側にORMがあります。これの欠点は、「マッパー」が実際の状況で非常に複雑になる傾向があり、非常に壊れやすい可能性があることです。
もう 1 つのアイデアは、ドメイン オブジェクトに DTO を「含める」ことです。ドメイン オブジェクト プロパティは、DTO プロパティを内部的に参照し、要求された場合に DTO を返すことができます。これで問題はないと思いますが、気分が悪いです。NHibernateを使用している人がこの方法を使用しているように見える記事をいくつか見ました。
他の方法はありますか?上記の方法のいずれかを使用する価値はありますか? そうである場合、またはそうでない場合、その理由は何ですか?
apache-flex - 何にも割り当てずに getter を呼び出す (遅延読み込み)
Lazy Load Pattern を使用して完全にロードまたは遅延ロードできる DTO があります。ロード方法は、Flex アプリケーションが必要とするものによって異なります。ただし、この DTO は Flex アプリケーション (swf) に送信されます。通常、たとえばコレクションは、呼び出されたときにのみロードされます。ただし、私の場合、コレクションは Flex でのみ呼び出されるため、この場合、.NET 側での実装は明らかに機能しません (Flex がサーバー呼び出しを行う場合を除きます... 私が避けたいこと)。
コレクションのゲッターでは、データがデータベースから取得されます。ASP.NET ページを操作する場合は機能しますが、DTO が Flex に送信される場合は機能しません。
これにどのように対処しますか?DTO を Flex に送信する前に getter を呼び出すことができましたが、それはひどいようです... + getter の呼び出しは、何かに割り当てられている場合にのみ実行できます (コレクションを保持するローカル変数は決して使用されません... )。
c# - Plain Old CLR オブジェクトと Data Transfer オブジェクト
POCO = Plain Old CLR (またはそれ以上: クラス) オブジェクト
DTO = データ転送オブジェクト
この投稿には違いがありますが、率直に言って、私が読んだブログのほとんどは、DTO の定義方法で POCO を説明しています。DTO は、アプリケーションのレイヤー間でデータを移動するために使用される単純なデータ コンテナーです。
POCO と DTO は同じものですか?
wcf - Dtos とともに型指定されたデータセット
ビジネス ロジック用に WCF サービスに接続する Web アプリケーションがあります。パフォーマンスと相互運用性の理由から、WCF 境界でデータを転送するために単純な Dto を使用したいと考えています。
ただし、データ アクセスには型指定されたデータセットを使用する必要があります (政治的な理由により、ORM またはその他のオプションは使用できません)。
型指定されたデータセットと一緒に Dto を使用するのは良い考えですか。誰かがこれをしましたか?おすすめのパターンはありますか?そして最も重要なことは、型指定されたデータセットから Dto を自動生成するためのライブラリ/ツール/方法はありますか?
web-services - DTOへのNHibernateプロジェクション
私はNHibernateプロジェクションに慣れていません。IList<>ではなくList<>を返すことができるように使用しようとしています。私はまだDTOに投影することにあまり運がありません。次のクエリオブジェクトとドメインオブジェクトがあります。まず、EmployeeIDを指定して注文のリストを取得しようとしています。このリストをシリアル化できるようにしたいので、結果のリストをループしてリストに追加しています。誰かが私がプロジェクションからどれだけ離れているか教えてもらえますか?私は自分のものと似ていないいくつかの例を検索して見つけました。基本的に..DTOのリストを作成したいだけです。
ありがとう!
注文:
従業員:
EmployeeOrderDTO:
domain-driven-design - POCO vs DTO: ドメイン オブジェクトを部分的にハイドレートしても問題ありませんか?
多くの場合、ドメイン オブジェクトをさまざまな方法で UI に表示する必要があります。リスト、検索結果、ページの表示と編集、ヘッダー、フッター、ポップアップ。通常、ドメイン オブジェクトのいくつかの異なる「ビュー」があり、それぞれに異なるフィールドが表示されます。
サブセットまたはスーパーセットが必要な場合は、DTO を使用してデータを取得することをお勧めします。DTO の維持には多くのオーバーヘッドがあります。各シナリオに必要なドメイン オブジェクトのプロパティを単純に入力するのは悪い方法ですか。たとえば、プロファイルを使用して、含める必要があるプロパティを指定できます。たとえば、次のようになります。
service.GetDomainObjects(int listID, Profile.ListProfile); service.GetDomainObjects(string searchParam, Profile.SearchProfile);
java - 新規プロジェクトでSDO(Service Data Object)を採用すべきか?
私はかなり長い間、Midas/DataSnap を使用して Delphi でプログラミングしており、非常に満足しています。.NET への移行 ADO.NET DataSet には満足しています。CRUD アプリケーションについては、どのような種類の ORM も非常に不快です。自動差分/差分処理を備えた汎用データ構造により、平均的なデータベース アプリケーション開発者である私にとって、より良い仕事ができます。
何年も前に Java を勉強しようとしましたが、同様のアイデアが実装されているのを見つけることができませんでした。私が見つけた最も近いものは SDO (Service Data Object) です。見たときは広く採用されるべきだと思ったのですが、違います。仕様はかなり古いですが、それについて議論したり、広く使用したりする人はまだほとんどいません。インターネットで見つけた情報から推測すると、SDO の使用は非常に受動的です。
それが死にかけているのだろうか?共有したい SDO の経験はありますか? 手動の DTO コーディングは常に優れていますか?
java - JavaでExcelシートの値を表す良い方法
以下の形式のExcelシートがあると考えてください。
人の 年齢Foo29Bar
27
次に、これらの値を(POI HSSFを使用して)読み取り、処理する必要があります。それを行うための最良の方法は何ですか?
私のアプリケーションにはObjectPersonが含まれていないことに注意してください。これは、Excelシートに含まれる可能性のある値が任意であるためです(つまり、個人の名前や年齢ではない可能性があります)。したがって、これらの値を格納するために、ある種のHashMapを使用する必要があります。複数行の場合、リストがあるといいですか!?
nhibernate - NHibernate、DTO、および NonUniqueObjectException
DTO パターンを使用して、ドメイン オブジェクトをサービス レイヤーからリポジトリにマーシャリングし、NHibernate を介してデータベースにダウンします。
DTO をレポジトリ (CustomerDTO など) から取り出して、それをサービス層のドメイン オブジェクト (Customer) に変換するという問題に遭遇しました。次に、同じ Customer オブジェクトを含む新しいオブジェクト (SalesOrder など) を保存しようとします。これは、リポジトリにプッシュするために、SalesOrderDTO (および CustomerDTO) に変換されます。
NHibernate はこれを気に入らず、CustomerDTO が重複レコードであると文句を言います。これは、同じセッションで最初の CustomerDTO が引き出され、返されたものが前後に変換されたため、これを同じオブジェクトとして認識できないためであると想定しています。
私はここで立ち往生していますか、これを回避する方法はありますか?
ありがとう
ジェームズ