0

私は2つのアプリケーションを開発したいと思っています.1つはWPFウィンドウアプリケーションとASP.Net MVCアプリケーションです。

したがって、両方のアプリケーションに同じデータ アクセス レイヤーとビジネス レイヤーがあります。

したがって、両方のアプリケーションに同じモデルを使用できます。

注意:心配はDALではなく、私のモデルプロジェクトです。

モデル プロジェクトにはエンティティが含まれています。

私のエンティティには、InotifyPropertychanged、observablecollection などの WPF に関連する機能が含まれています。

MVCに同じエンティティを使用している場合、それは本当にオーバーヘッドですか?

助けていただければ幸いです。

4

3 に答える 3

1

モデルは、リッスンされていないこれらすべてのイベントを発生させます。呼び出しリストを維持し、リスナーが存在するかどうかを確認するには、少しオーバーヘッドがあります。これらはすべて非常に小さなオーバーヘッドである可能性が高く、おそらく心配する必要はありません。

本当の問題は適合性です。WPF と MVC は大きく異なり、それぞれで開発しているアプリケーションは確実に異なります。つまり、モデルをいずれかのスイートに変更する必要がありますが、両方のスイートに進化させることは、シナリオによっては不可能ではないにしても非常に難しい場合があります。

1 つのモデルが両方に適合する可能性は低いため、MVC とは異なる WPF のビュー モデルを使用する必要があります。

于 2012-08-24T09:09:10.150 に答える
1

はい、可能です。ドメイン モデルを分離して、両方の状況で使用できます。ただし、特定の関連技術をエンティティに入れるべきではありません。

私の提案は、サービス指向のアプリです。WCF、REST、または同様のサービスを使用してモデルを操作し、両方 (デスクトップと Web) でこれらのサービスを使用して、プレゼンテーションに必要なデータを取得します。ドメイン モデルをカプセル化するため、プレゼンテーション テクノロジについて何も認識しません。

次に、サービスからデータを取得し、プレゼンテーションのレイヤー テクノロジに応じて独自のモデル オブジェクトを構築できます。

于 2012-08-24T09:12:58.617 に答える
0

エンティティを含むモデル プロジェクトを使用することができます。オーバーヘッドについては、リポジトリ パターンの実装と使用が選択されます。同じモデル プロジェクトを使用する場合は、記事WPF アプリケーション フレームワーク (WAF)も参照してください。

于 2012-08-24T09:12:34.490 に答える