2012-01-10 14 views
0

RIAサービスからプレーンなWCFサービスへの変換にはどのような手順が必要ですか?RIAサービスからWCF Webサービスへの変換

注:

  • 私は6つの方法
  • でのサービスを持って、私は&前後ラージオブジェクトを渡していますし、私は私がそれらをより細かく制御したいので、私は、WCF
  • に切り替える必要がありSilverlightをプライマリクライアントとして使用する

答えて

2

簡単に言えば、大きなオブジェクトをサービスに渡すと、間違っている可能性があります。単にオブジェクトをサーバーに送信し、サーバー上で必要な処理をすべて行い、結果をクライアントに返すだけです。ラージオブジェクトをワイヤを介して(HTTP経由で)前後に転送する際のパフォーマンスと帯域幅のコストがなぜ発生するのですか?

プライマリクライアントとしてSilverlightを使用しているため、非同期呼び出し(これはサービスへの1回の呼び出しに固執する別の理由です)を使用します。 WCFサービスのインスタンス化を管理するには、いくつかの方法があります。サービスの参照をSilverlightクライアントに追加するか、サービスでメソッドを実行できるカスタムクライアントを次のように書くことができます。

同期および非同期:

client.ExecuteAsync<IService, TResult>(String methodName, Action<TResult> complete, Action<Exception> failure, params object[] parameters)

は、その後、あなたのサービス契約では、あなたの操作の両方のバージョンを記述する必要があります。そのためには、条件付きのコンパイラを使用して2つを区切ります。

#if(SILVERLIGHT) 
[OperationContract(AsyncPattern = true)] 
IAsyncResult BeginMyMethod(Int32 value, AsyncCallback callback, Object asyncState); 
Double EndMyMethod(IAsyncResult result); 

//more operations 

#else 
[OperationContract] 
Double MyMethod(Int32 value); 

//rest of the methods 

#endif 
関連する問題