1

私が MVC でよく目にするパターンは、データベースからドメイン モデル (またはリポジトリ) を読み込み、それをビュー モデルにマップするというものです。

このパターンについて質問があります。ビュー モデルに、大きなドメイン モデル オブジェクトの一部のプロパティしか含まれていない場合です。また、これはトラフィックが多くなる可能性のある Web サイトであるため、これはパフォーマンス面での究極のソリューションではないように思われSELECT * FROM TABLEます。単に必要な列を選択するのではなく、.

私が考えることができる別の方法は、DAL がドメイン モデルの代わりにビュー モデルを返すことですが、そのようなパターンが以前に使用されたのを見たことがありません。これは採用するのに悪いパターンですか? 他のパターンはありますか?それとも、いくつかのプロパティしか必要としない場合でも、大きなドメイン モデルをロードするオーバーヘッドを無視する必要がありますか?

4

1 に答える 1

0

それは本当に意見に基づく質問ですが、私はHighLoad++カンファレンスに参加しました。そこでは、Stack Exchange 開発者の 1 人であるMarco Cecconiが彼のプレゼンテーション「Stack Overflow - It's all about performance!」を行いました。.

ご存じのように、stackoverflow は ASP.NET MVC で記述されており、Marco は、SO プロジェクトにはコントローラー内にプレーンな ADO 要求があると述べています。そして、彼らはパフォーマンスのためにこのように書いています。大量のリクエストがあり、多くの中間オブジェクト (DAL モデル、BL モデル、ViewModel など) を作成すると、C# GC で問題が発生します。

それで、彼らがパフォーマンスのためにそのようにやっているのなら、なぜあなたはそれができないのでしょうか?

于 2015-11-18T11:10:03.843 に答える