2011-07-27 5 views
0

はジュバル・ロウィの「プログラミングWCFサービス」本は一般的な設計ガイドラインWCFサービスの「WCFコーディング標準」付録が含まれています。WCF「プロパティのような操作をしないでください」ルール

ガイドラインの一つは、プロパティのような操作避け次のとおりです。

//Avoid property-like operations: 
[ServiceContract] 
interface IMyContract 
{ 
    [OperationContract] 
    string GetName(); 
    [OperationContract] 
    void SetName(string name); 
} 

を誰もがstring GetName();操作を持つが悪いのかを説明できますか?文字列の値が操作から必要なものであればどうなりますか?

答えて

5

文字列の値が必要なものであれば、それ以上のものは必要ありませんが、それは絶対に正しいです。おそらくアンチパターンのより良い例です。

[ServiceContract] 
interface IMyContract 
{ 
    [OperationContract] 
    void SetFirstName(string firstName); 
    [OperationContract] 
    void SetLastName(string lastName); 
} 

とクライアントの呼び出し元:

proxy.SetFirstName("Test"); 
proxy.SetLastName("Test"); 

これは完全に間違っています。あなたは姓と名を受け入れる単一の操作を行う必要があります。

一般的に、チャットインターフェイスを避け、サービスとクライアントの間の往復回数を減らす必要があります。したがって、名前だけを必要とすることがわかっている場合は、名前を返す操作だけを公開してください。しかし、あなたが同じクライアントのビジネスオペレーションで必要であることを知っている場合は、電子メールでも名前と電子メールを返す操作が公開されます。

+0

Ladislav、それを明確にしてくれてありがとう! +1 – rem

関連する問題