MVVM光の中のDataServiceとIDataServiceの目的は何である、と私は理解することはできません。私はMVVMライトバージョン4を使用することを始めている
- なぜのDataServiceとIDataServiceを使用する必要がありますか?
- モデル内のどのクラスのデータサービスも作成する必要がありますか?
MVVM光の中のDataServiceとIDataServiceの目的は何である、と私は理解することはできません。私はMVVMライトバージョン4を使用することを始めている
まず第一に - いつものように - MVVMであなたはが何かをするを持っていない、それは勧告やベストプラクティスです。一般的に、データアクセスをビューモデルに自由にコーディングすることができます。そうすることで、小規模なプロジェクトやプロトタイプの実装に適した方法になる可能性があります。
ただし、これにもいくつかの欠点があることを考慮する必要があります。データサービスを実装する理由は、このコンポーネントが再利用可能であり、MVCアプリケーションのような他のシナリオでも使用できる可能性があるからです。さらに、モデルをデータストアから取得するという心配もありません。
IDataServiceを実装する理由は、必要なときに実装を交換できることです。設計時間データを供給する。これが必要なときは、インターフェイスに大きく依存する制御パターンの逆転も考慮する必要があります。この場合、IOCコンテナも興味深いかもしれませんが、必要ではありません。
しかし、上記の中でまず最初に推奨事項、パターン、デザインガイドライン、ベストプラクティスがあり、要件に最も適したアプリケーションを自由に設計することができます。
編集:データサービスのサイズ
データサービスの設計と範囲、アプリケーションとそれの要件に依存します。これは、すべてのモデルで単一のデータサービスからモデルごとに1つのデータサービスに及ぶことができます。さらに、データサービスインタフェースの設計は、別個の決定である可能性があります。 1つのサービスクラスは、いくつかのサービスインタフェースを実装することができるため、実装の特定の側面(メソッド)をユーザから隠すことができます。
データサービスを設計するときは、unit of workパターンとrepositoryパターンを調べる必要があります。いくつかのサンプル実装があります。
単一のクエリに基づいた非常に単純な作業パターンが必要な場合は、を作業パターンの単位に変換することについて書いたblogを参照してください。しかし、これは非常に単純なケースにしか当てはまりません。通常は、リポジトリを持つ完全な実装と、適切な作業単位の単位がより適切です。
Obalix:thanks.but私はモデル内の任意のクラスのためのdataserviceを作成する必要がありますか? –
@raha:編集を参照してください。 – AxelEckenberger
Obalix:ありがとう、とても役に立ちました:)私は本当にそれを感謝します。 –