私は現在、このようなかなり標準的なデカップリング構造を有するプロジェクトに取り組んでいます:MVVMとMVCの間でモデルを共有していますか?
リポジトリ - >サービス - >表示モデル - >ビュー
リポジトリとサービス層はPOCOオブジェクトを使用します。ビューモデルは、これらのオブジェクトと呼び出し元のサービスメソッドから構築され、ビューに渡されます。
私はMVC3を使用する1つのWebアプリケーションとWPFを使用する1つのデスクトップアプリケーションの2つのフロントエンドプロジェクトを持っています。 ビューモデルは、スタンドアロンのクラスライブラリに含まれています。これは、両方のアプリケーションで同じであるためです。 (例外はいくつかありますが、各プロジェクトで特定のVMを使用して処理されています)
現在、私は地上作業を行い、MVC側はすべて作業しています。私は現在、WPF側を見て、MVVMライトツールキットを使用することを考えています。
私の質問は:MVCとWPFのアプリケーション間でビューモデルを共有すると、MVVMライトツールキット(または他のツールキット)は適切ですか? MVVM3と一緒に使用しないでください。
私はしばらくの間、グーグルグーグルで、何も具体的なものが見つかりませんでした。あなたの考えを事前に感謝します。
ありがとうございました。もう少しMVVMツールキットを見て、私はあなたが正しいだろうと言わなければならないでしょう。それはWPFまたはSilverlightベースのアプリケーションで実際にターゲット設定されているようです。私はそれが本当にMVC3で意味をなさないと思う。 – Steve
これは、MVC3とWPFの両方のアプリケーションの間で同じviewmodelを共有するだけで実現できないため、正しいとマークしました。しかし、私がやったのは、ビュー・モデルとそのすべてのプロパティと検証を持つクラス・ライブラリを持つことです。 MVC3で使用されるビューモデルです。次に、これらのそれぞれを拡張してすべてのコマンドなどを追加します。これらはWPFで使用されるビューモデルです。これにより、2つの場所で同じプロパティ、検証などを定義するのではなく、すべての利点を伴うコードDRYが保持されます。 – Steve
あなたはあなたのアプローチについて詳しく説明できますか?私は同様の状況に直面しています。そこで、私のデータレイヤー(POCOクラス)をMVC Webサイト全体に再利用し、Win8とWindowsPhoneのMVVMを通して公開したいと思っています。下層のPOCOにinotifyされたものを追加していますか?必要になったMVVMステージでチェーンの後半に注入しますか? – SelAromDotNet