私は、業界固有の入力を管理し、その情報をやや複雑な計算やルックアップなどで実行して、一連の他の値と合否の結論を返すデータベースアプリケーションに取り組んでいます。
Entity Framework(プロバイダーに依存しないための最初のコード)とWPF(MVVMパターン)を使用することにしました。POCOエンティティをデータモデルとして使用しており、ビューモデルは基本データ/ビジネスルールの検証などの通常の処理を行っています。
EF + WPF / MVVMは、入力を表示および検証し、それをデータベースに取り込んで、製品、顧客、注文設定などの一般的なビジネスアプリケーションを照会するのに優れているようです。しかし、「計算レイヤー」をどこに接続するかはまったく明確ではありません。ビューモデルとデータモデル(私のPOCO)の間では、物事はすでに少し肥大化していると感じています。そして今、私は他の2つと非常によく似た別のレイヤーを追加することに直面しています。
おそらく、これに取り組む最善の方法は、計算レイヤーを一種のメタビューモデルにし、検証や変更通知などをできるだけ多くプッシュして、より軽い実際のビューモデルで実行することです。
誰かがこのような状況に遭遇しましたか?
編集
私が本当に必要としていたのは、ビューモデルを薄くし、エンティティを強化することでした。そこで、ビューモデルを軽量化し、プロパティ変更通知と基本的な検証をエンティティに移動して直接バインドできるようにし、計算クラスがエンティティを直接消費するようにし、いくつかの基本的なルーチンをエンティティに追加しました。ADMの記事@PeterPorfyへのリンクをありがとう。
検証をエンティティに近づけるために、Fluent Validation(優れた提案@Gloopy!)を使用しました。エンティティにプロパティ変更通知を実装しやすくするために、この手法を採用しました。また、ビューモデルで無限のプロパティラッパーを作成する必要をなくすために(HasChangesプロパティを設定するため)、JoshSmithのPropertyObserverを使用しました。