2

RIA サービスと SilverlightFx を使用して、Silverlight でアプリケーションを書き始めています。現在、このアプリケーションはかなり大きなもので、コントロール間の相互作用がたくさんあります。

概算では、約 60 ~ 70 のユーザー コントロールがあります。今私の質問は..

  1. .Net Ria と SilverlightFx を選択してよろしいですか? (私の見解では..すぐに製品化されることはありません。また、フレームワークを使用する大きなものであるため、フレームワークを適切に理解すれば、単体テストに役立ち、開発時間を節約できます。)

  2. ブログを読んだ後、SilverlightFx がユーザー コントロール間の相互作用をどのように処理するかがよくわかりません。たとえば、検索機能を備えたユーザー コントロール ("S" と言う) があります...オートコンプリートとすべて...今、検索結果を表示する別のユーザー コントロール ("R" と言う) があります。表示結果パネルは、検索ユーザー コントロールまたは特定のカテゴリのすべての項目を提供する別のユーザー コントロール (Say F) から使用できます。Search and Select Category を単一の userontrol にマージできません。では、どうやってそれを行うのですか?異なる ViewModel を作成した場合、それらはどのように相互作用しますか?

  3. 各 ViewModel でドメイン サービス コンテキストを作成するのと、アプリケーション全体で 1 つのドメイン サービス コンテキストを使用するのとではどちらがよいでしょうか?

4

2 に答える 2

2

序文の回答に注意してください-私はSilverlight.FXの作成者であり、RIAサービスのアーキテクトです...したがって、返信のバイアスを考慮に入れてください:-) ...

私はあなたが役立つと思うかもしれない2つの組み合わせについて2つのブログ投稿をしました:ここここ。これらは、DomainContextを使用した基本的なビューモデルのシナリオと、Silverlightユニットテストフレームワークを使用したビューモデルの基本的な単体テストをカバーしています。

Silverlight.FXは、単なるグラフィカルな対話以上のものを提供します。サイト(http://projects.nikhilk.net/SilverlightFX)から:

  • アプリケーションモデル-SilverlightFXは、サービスモデル、IoCコンテナー、テーマのサポート、ビューモデル(MV-VM)、ナビゲーション、MVCなどのさまざまな機能を提供する豊富なアプリケーションオブジェクトを備えています。
  • ユーザーインターフェイスコンポーネント-SilverlightFXは、拡張コントロールの小さなセット、フォームとWindowsのサポート、コンテナーなどのマスターページ、レイアウトコントロール、データバインドコントロールを提供します。
  • 宣言型ビュー-SilverlightFXは、動作、アクション、トリガー、およびコマンドを記述するためのフレームワークを提供し、すぐに使用できる一連の実装も提供します。
  • エフェクトとトランジション-SilverlightFXは、トゥイーンと補間を実装し、動作を緩和できる手続き型アニメーションフレームワークを提供します。さらに、完全に宣言的な方法でエフェクトおよび標準コントロールへの遷移として適用できる、シンプルでありながら広く適用可能なアニメーションを提供します。

ビューモデル間で通知を処理する方法は、ビューモデルが分離された方法でイベントをパブリッシュおよびサブスクライブできるようにするある種のイベントアグリゲーターパターンを使用することです。

この機能はまだSilverlight.FXには含まれていませんが、間もなく導入される予定です。私は最近、TechEd南アフリカの講演でこの種のコミュニケーションを示しました。これを実装するためのスライドとコードを確認してください:http ://www.nikhilk.net/TechEd09-South-Africa-Samples.aspx 。

お役に立てば幸いです。

于 2009-08-25T18:40:12.417 に答える
0

はじめに、SLFX がグラフィカル インタラクション以外の便利な機能を提供するかどうかはわかりません。適切なMVVM統合とデザインでのリージョンの適切な使用、そしてリージョン間の通信 (簡単に言えば、ユーザー コントロールですが、読み込みがもう少し動的になります)

  1. SL3 インターフェイスからの単体テストは、ユーザー入力をシミュレートする手段が必要であることを意味します。これを行うにはかなりの数の方法があります。最も簡単なものの 1 つは MVVM アプローチであり、それによってビューモデルへの入力をシミュレートします。SL3 のプリズム サポートは、WPF 4.0 のリリースと同時に行われます。プリズムは現在、ナビゲーション フレームワークではなく SL3 をサポートしています。これは、プリズムのリージョン ナビゲーションと衝突することが多いためです。ただし、異なるタスクを実行し、機能が重複することはありません。

    1. ユーザーコントロール "S" と "R" がある場合、それらはどちらもビューモデルである共通のデータソースを共有するため、ビューモデル内のプロパティは互いに通信できます。これは主に、OnPropertyChanged イベントが発生したときに発生します。またはボタンがクリックされた後、プリズムのコマンドを使用して、ボタン コントロールのクリック メソッドをビューモデルのメソッドに接続できます。

    2. SL3 からのすべての呼び出しは非同期であるため、並行性など、多くのことに大きく依存します。つまり、同じドメイン コンテキストで一度に 3 つのクエリを実行できること、および WCF サービスに対して作成する接続の数を意味します。私はあなたが持っている選択の意味を理解するのに十分なほどRIAを使用していないので、正確な答えを与えることはできませんが、一般的なルールはdb接続を最小限に抑えることです(ドメインコンテキストのリサイクルは自動的に少ない接続に変換されません.特に設計されていない限りステートレス)

于 2009-08-16T08:11:09.330 に答える