問題タブ [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 - データオブジェクトのビジネスロジックvs.カップリングvs.DTO(vs.?)
内部で公開されているAPIで公開される一連のビジネス/ドメインクラス(カレンダー用)があります。同じAPIには、基盤となるデータベース構造を直接ミラーリングするデータオブジェクトがあります(NHibernateマッピングですが、これは重要ではありません)。
私がする必要があるのは、それらのオブジェクトの型付きコレクションを作成することです。これにより、カレンダーの各日には、データベースからの一連の予定やリマインダーなどを含めることができます。
1つの解決策は、ドメインモデルのマーカーインターフェイスを使用して各データオブジェクトに「タグ付け」することです。
しかし、それから私はビジネス/ドメインモデルのものを私のデータモデルに入れました。
別の解決策は、データモデルクラスを次のようにラップし、カレンダーAPIでそれらを公開/使用することです。
しかし、これは非常に明白な結合をもたらします。
3番目の解決策はDTOを使用することですが、DTOのデータオブジェクトのすべてのフィールドを公開する必要があります...そのため、最初にDTOを作成することは意味がないようです。
ここで最良のオプションはどれですか、それともより良いオプションがありますか?
これが違いを生むのであれば、これは.NET2.0プロジェクトです。
c# - NHibernate と DTO
NHibernate をプロジェクトに導入することを検討していますが、読み取り専用の DTO をどのように実装するかについて質問があります。エンティティは簡単ですが、ビューにデータを表示するためにマッシュアップする必要がある複数のエンティティ/テーブルからの 2 つのフィールドがあるシナリオはどうでしょうか。確かに、すべてのエンティティをロードしてから DTO を作成するのはやり過ぎです。特に、DTO にマップされた手書きのクエリである Gasp の方がはるかに効率的です。
NH、またはその他の orm を使用する場合、このシナリオにどのように対処しますか。
java - DTO、VO、POJO、JavaBeansの違いは?
同様の質問を見たことがあります:
また、それらが使用されるコンテキストを教えてください。それとも彼らの目的?
wcf - WCFサービス間でDTOオブジェクトを共有する
質問する前から、これはばかげた質問だと思いますが、今は脳がうまく機能していません。2つのWCFサービス「CountryService」と「FloristService」があります。
現在、CountryServiceには次のメソッドがあります。
さらに、FloristServiceには次のメソッドがあります。
これまでのところすべて良好ですが、問題は、FloristDTOがCountryDTOを参照していることです。
これは問題ありませんが、Visual Stuidosでutilを生成するサービスプロキシを使用すると(つまり、[参照の追加]> [サービス参照の追加])、CountryDTOの2つのバージョン(FloristService.CountryDTOとCountryService.CountryDTO)が作成されます。
今、私はこれを克服するためのいくつかの方法を考えることができますが、それらのどれも正しいようには見えません。これに対する「正しい」アプローチはどうなるのだろうかと思いましたが、プロキシ生成ツールを使用して共通のDTOを共有するためにできるファンキーなことはありますか?
乾杯、クリス
java - Javaでクラスメンバーをループすることは可能ですか?
たくさんのメンバーがいるDTOがあります。Javaがクラスのfor(in)のアイデアをサポートしているかどうか疑問に思いました。そうは思わないが、そうすればかなりの悲しみを救うことができるので、そこに質問を投げかけると思った。
c# - POCO を DTO から派生させるべきか、そうでない方がよいでしょうか?
n 層ソリューションを作成するとき、ビジネス オブジェクトを公開したくありませんが、代わりに DTO を使用します。一方で、オブジェクトを二重に定義したり、常にコピー コードを記述したりしたくはありません。
ここでの私の考えは、必要なすべてのフィールドとプロパティを含み、ロジックを含まない (状態のみ) DTO を作成することです。
次に、これらの DTO からビジネス オブジェクトを派生させ、ビジネス ロジックを使用してそれらを拡張し、DTO 基本クラスのプロパティを操作します。これらのオブジェクトは、使用される ORM (NHibernate) で永続化されるオブジェクトでもあります。
このアプローチを使用すると、サーバー側でビジネス オブジェクトを処理し、クライアントに直接渡すことができます (これらは派生しているため、ダウンキャスト可能です)。ビジネス ロジックをそのように公開して、多くのコードを節約する必要はありません。
そのアプローチは賢明だと思いますか。
よろしく、
セバスチャン
c# - DTO と永続化されたエンティティのシリアル化
このテーマについてコミュニティがどう感じているか知りたいです。私は最近、NHibernate/WCF シナリオ (エンティティがサービス レイヤーで永続化される) について質問し、ここで間違った方向に進んでいる可能性があることに気付きました。
私の質問は、Web サービス (このシナリオでは WCF) の背後で永続的なオブジェクト グラフ (NHibernate、LINQ to SQL など) を使用する場合、これらのエンティティをネットワーク経由で送信することを好みますか? それとも、一連のより軽量な DTO (循環参照を除く) を作成しますか?
c# - DTO/コマンドパターンの質問
AutoMapper(双方向マッピングの賛成/反対の議論)に関してLosTechiesについて非常に興味深い議論がありました。
私が現在取り組んでいる問題のために、これは実際に私の注意を引きました。料金や配達時間などの情報をユーザーに提供するために、出荷品に取り組んでいます。実際のサービスを一元化するために、ドメインエンティティを永続化するWCFWebサービスがあります。
ドメインモデルを単純化するために、基本的に2つのクラスがあります。
また、ワイヤ全体の負荷を軽減するために作成された、対応するDTOのセットもあります。プレゼンテーションピース(またはWebサービスに関係するピース)は、ドメインモデルの知識がなくてもDTOを使用します。
私の質問はここにあります。貨物を作成するために、サービスはアイテムのリストを受け入れます。出荷を作成するためのロジックがあり、それはすべてWebサービスの背後に隠されています。本質的に、これはItemDTOがネットワークを介して渡され(クライアント->サーバー)、出荷が作成され、次にShipmentDTOが返される(サーバー->クライアント)ことを意味します。現在、ShipmentDTOにはItemDTOの子リストもあり、これにより双方向マッピングシナリオが作成されます。
これは単純なCRUD操作以上のものであり、コマンドメッセージパターンにかなり慣れていないので、コミュニティがこの問題をどのように解決するのか興味があります。
2ウェイマッピングでDTOを双方向に渡しますか?
使用例(プレゼンテーション層):
asp.net - ビジネス層 (ASP.NET) で DataAnnotations を呼び出す方法は?
転送オブジェクトで DataAnnotations を使用したいと考えています。ただし、ビジネス層でそれらを呼び出して入力を検証するにはどうすればよいですか?
これは何らかのメソッド呼び出しまたはリフレクションによるものですか?
私は ASP.NET を使用していませんが、標準の ASP.NET を使用しており、ビジネス レイヤーでデータ アノテーションを呼び出したいと考えています。
asp.net-mvc - リポジトリ+NHibernate+ DTO
Webレイヤーにリポジトリレイヤー(およびnhibernate実装)、サービス(bussiness)レイヤー、およびasp.netmvcを備えたアプリケーションがあります。
小さなSilverlightアプリケーションも作成する必要があるため、いくつかのwcfサービスを作成します。これはDTOを使用するように要求しますが、DTOを作成する方法と場所がわかりません。
私はいくつかのリンク(このようなもの)を見たので、dtoとマッピング手順の自然な場所は私のデータ/リポジトリレイヤーのどこかにあるようですか?
しかし一方で、Fowlers DTOパターンを見ると、マッピングはドメインレイヤーのどこかにあるアセンブラーで行われているように見えますか?
私は混乱しています...これを達成するためのベストプラクティスは何ですか?
どうもありがとう!