0

現在、プロジェクトにはいくつかのレイヤーがあります。コア<>リポジトリ<>API...そして「クライアント」MVCWebプロジェクトレイヤーを構築します。私の質問は-viewModelsはこのアーキテクチャのどこに属しているのですか?

WebプロジェクトのコントローラーメソッドはAPIを(複数回-getThisObjects、getThoseObjects)呼び出してデータを取得してから、viewModelを構築する必要がありますか?または、アプリケーションのページごとに1つのAPI呼び出し(getAllObjectsForThisPage)のみを実行する必要があるように、APIがviewModelを構築するための呼び出しをサポートする必要がありますか?

4

2 に答える 2

1

ビューモデルはクライアントMVCアプリに属します。それらはその個々のクライアントアプリケーションのビューに固有であり、通常はドメインオブジェクトによって入力されます。これがその仕組みです。コントローラーはhttpsリクエストを仲介し、APIエンドポイントを呼び出して、いくつかのデータまたはドメインオブジェクトを受信します。これらのオブジェクトを使用して、ビューモデルにデータを入力します。

APIからドメインオブジェクトを返す場合は、 automapperを見てください。これは、ドメインオブジェクトをビューモデルにマッピングするのに非常に役立ちます。

于 2013-03-07T21:40:18.813 に答える
0

ViewModelsをMVCアプリケーションに配置することはできますが、DTO(データ変換オブジェクト)と呼ばれるものを作成して、それをWebAPIからクライアントに返すこともできます。本質的には、クライアントに渡す必要な情報のみを含むクラスになります。そのViewModelを呼び出したい場合は、先に進んでそのように呼び出すこともできます。私の提案は、1回の呼び出しを発行し、必要なすべての情報を返すことです。ワンコールワントリップ。

私の慣習は通常、ViewModelをMVCから分離し、他のプロジェクトに保存することです。サービスレイヤーはViewModelを準備し、MVCに返します。これは、MVCの完了後にWPFアプリケーションをビルドする必要があったためです。物事を動かし、すべてを再テストして、それがまだ正常に機能することを確認するのは非常に苦痛でした。

于 2013-03-07T22:02:36.683 に答える