1

注: 以下のテキストでは、WPF/Silverlight の ViewModel と ASP.Net MVC の厳密に型指定された ViewData の両方に「ViewModel」という用語を使用します。

ASP.Net MVC クライアントと WPF/Silverlight クライアントの両方を同じプロジェクト (つまり、同じ DataModel に対して) に作成したいのですが、共通の ViewModel プロジェクトを作成するか、クライアント テクノロジごとに個別の ViewModel を作成する必要がありますか?

共通の ViewModel が正しいことだと信じたいのですが、依存プロパティまたは JSON 文字列を作成する必要があるため、互換性がないように見えます。

おそらく別の解決策は、ViewModel の共通部分を DataModel レイヤーに入れることでしょうか?

私を正しい方向に導く助けに感謝します、ありがとう

4

1 に答える 1

1

Silverlight プロジェクトは Silverlight 以外のプロジェクトを参照できないという制限 (Visual Studio によって課される) のため、個別の ViewModel が必要になります (ただし、これを回避するためのハックが 1 つまたは 2 つ文書化されています)。

2 つのプロジェクト間でコードを共有するには、1 つのプロジェクトに物理クラスを配置し、既存の項目を 2 番目のプロジェクトに追加します (元のクラスに移動して選択し、[リンクとして追加] をクリックします)。ちょっとしたヒント: クラスがこのように共有されると思われる場合は、名前空間をできるだけニュートラルに保つことで、混乱やリファクタリングを回避できます。

于 2010-01-19T00:09:24.087 に答える