2012-01-19 5 views
0

Webサービスを使用するSilverlightアプリケーションを構築しています。Silverlight EAPとAPMとWCFサービス

私はViewModelsからプロキシの実装を隠すために使用されるServiceAgent呼び出しを持っています。

私の質問は、どの非同期プログラミングモデルがSilverlightアプリケーションに最も適しているかです。つまり、イベントベースの非同期パターン(EAP)または非同期プログラミングモデル(APM)を使用する必要がありますか?

過去にあなたのためにうまくいきましたことを教えてください。

+0

「私のViewModelsからのプロキシの実装」 –

答えて

1

経験則は、UIコードとバックエンドサービスまたはライブラリサービスのAPMで使用されているときにEAPを実装することです。

あなたのケースでは、イベントをUIスレッドで発生させると便利なので、EAPを選択します。

また、新しいTAP:Task-based Asynchronous Patternの使用を検討することもできます。これにより、今年後半にリリースされるC#5 asyncへの移植が容易になります。


UPDATE:

既存のAPMをラップしているので、私はTaskFactory.FromAsyncを使用して推奨している必要があります。

+0

私はほとんどこれに同意します。しかし、私は現在、生成されたプロキシを使用し、BeginとEndメソッドを簡単に使用するためにChannelFactoryを使用できます。最終的に私は、生成されたプロキシから離れ、自分のプロキシクラスからClientBase/ChannelFactoryを使いたいと思っています。私はイベントベースのAsynchコードを書くことははるかに関わっていると思う。これに同意しますか? – caa

+0

あなたはどこかのUIスレッドにマーシャリングする必要があります。質問はどこにありますか? EAPを公開すると、複雑さがAPIの背後にカプセル化され、クライアント(UI)が簡単になります。 APMを公開するのは簡単ですが、クライアントはより複雑になります。 –

+0

@caa私の回答を 'FromAsync'へのリンクで更新しました –

関連する問題