2012-05-11 4 views
0

私は特定のプロパティの書き込みと更新のみを要求していますが、すべてのプロパティを読み込んでいますので、これを処理する最善の方法は何か不思議です。私はこれが狂ったように聞こえるかもしれませんが、要件は書き込み/更新がSOAP経由で行われることですが、読み取りはREST経由で行われます。 SOAP APIは初期データのロードに使用され、Webインターフェイスのエンドユーザーはより詳細な変更を行い、エンドユーザーの別のセットはREST APIに対してプログラムしてWebページにデータを表示します。私はいくつかのフィードバックや、ベストプラクティスに関するコメントを感謝します。これは私が思っていることです(注記、簡略化した例)。SOAで必要なユースケースあたりのDTOは?

namespace DTOs.Create 
{ 
    public class Project 
    { 
     public string Name { get ; set; } 
    } 
} 


namespace DTOs.Read 
{ 
    public class Project 
    { 
     public string Name { get ; set; } 
     public string Description { get ; set; } 
     public DateTime DueDate { get ; set; } 
     public int Priority { get ; set; } 
    } 
} 
+0

名前空間DTOs.Readからクラスプロパティを1つだけ取得して、WebGetを実行し、SOAP経由で公開されない2つのメソッドとSOAP経由で公開されるその他のメソッド(Create/Update)を持つことができますか? – Rajesh

答えて

0

あなたの実装のライフサイクルを通して考えてみてください。残りの部分とsoapのインタフェースが時間の経過とともにばらつく場合は、2つの異なるDTOクラスを必ず確認してください。

具体的には、私は2つのインターフェイスを緩めるために2つのDTOを保持しています。私はプロジェクトの中で何度も聞いたことがあります。「インターフェイスのこのライト部分を変更することはできませんか?それはただの文字列です!そしてインターフェースはしっかりも(再テスト)を書き換える必要があるアプリケーションの他の部分に結合されているので、それは

など達成するためにあまりにも多くの努力がかかります。しかし、それはかなりアプリケーション

0
の範囲に依存しています

私はちょうど1つのDTOを持っている傾向があり、DTOの意図はデータを運ぶことであり、それには動作のセマンティクスが付いてはいけません。

プロジェクト情報(DTO)は、さまざまな状況(さまざまな操作)で使用できる必要があります。

プロジェクトを定義する定義がSOAPとRESTの部分で異なる場合、他の問題がある場合、プロジェクトとは何かの定義はドメイン内で一貫していなければなりません。

2つのインターフェイスは時間の経過とともに分岐する可能性がありますが、データの用途とは異なる方法でデータが使用されます。

インターフェイスが本当にそのような異なる情報を必要とするのではなく、もはやオリジナルのプロジェクトコンセプトではないので、新しいドメインコンセプトを作成してください。

関連する問題