私は過去にServiceStack ORMLiteを使用していましたが、今はServiceStack RESTful DTOパターンを手に入れています。私は過去にWCF/Web APIを使用していましたが、別の方法でサービスを受けるという私には、何か必要なときにRPC呼び出しを行うという自然なパラダイムがあります。しかし、ServicestackのDTOパターンについて読んで、それ旗艦引数ながら:サービススタックのDTOパターンは本当に役に立ちますか?
あなたは、リモートインタフェースで作業している、このようなリモートファサード (388)のように、それへの各呼び出しは高価です。その結果、 のコール数を減らす必要があります。つまり、各コールでさらに データを転送する必要があります。これを行う1つの方法は、多くのパラメータを使用することです。 しかし、これはプログラムにはしばしば厄介です。実際には の値を返すJavaなどの言語では は不可能です。
解決策は、すべての データを保持できるデータ転送オブジェクトを作成することです。 接続を経由するには、シリアル化可能である必要があります。通常、アセンブラはサーバ側で使用され、 はDTOと任意のドメインオブジェクト間でデータを転送します。
引数自体が私のために多くの質問を頼む:
- それは時にProductオブジェクトを扱うページが読み込まその後、私達はちょうどProductテーブルからすべてのデータを持参し、周りにそれを維持することを意味しています再利用(潜在的な再利用)のために?
- 1つのコールがすべて大量のデータになる場合はどうなりますか?あるコールで「GetAll」が不必要なデータを多く取得した場合、必要になったときにサーバに戻ってくることが良いアイデアであると、私は主張できませんか?
- また、パターンはクライアントサイドの開発者がDTOパターンであることを前提としていると私は思っています。このサービスは一度呼び出され、返されたデータはその後の再利用のためにしばらくの間メモリに保持されます。私が悪い開発者であり、このサービスが多くの再利用のために設計されており、データが必要なたびにサービスを終了するという事実を完全に無視するとどうなりますか?それは2本の剣ではないでしょうか?
いつものように包括的な回答をいただきありがとうございます。 – TeaLeave