私は現在、WPFアプリケーションを開発するために.NETPrismフレームワークを使い始めています。私が判断できないことの1つは、WCFサービスまたはデータベースへの非同期呼び出しを実現するための最良の方法ですか?その理由は、WCF / DB呼び出しでUIスレッドをブロックしたくないためです。これにより、操作が完了するまでUIがフリーズします。
私の理解から、私はアーキテクチャに従う必要があります:
View (WPF) <=> View Model <=> Application Services <=> DB/WCF
AsyncDelegateCommandのようなものを使用して、ビューモデルに非同期動作を実装しますか?これを行うと、UIスレッドで状態を設定する必要があるため、アプリケーションサービスで状態を維持できなくなります(これを回避する方法がない限り)。
したがって、もう1つのオプションは、アプリケーションサービスでコールバックを使用して非同期メソッドを提供し、アプリケーションサービスに非同期操作のスレッド/タスクを生成させることです。
Prism StockTraderリファレンス実装を簡単に調べましたが、非同期では何も実行されていないようです。これは非常に一般的な問題であると思います。これに対処するには、いくつかのベストプラクティスが必要です。