中規模の高トラフィックのWebサイトに最適なアーキテクチャは何ですか?

architecture asp.net-mvc dapper entity-framework performance

質問

私は新しいプロジェクト(非企業的)を始めています。そして、私は今、どのようにすばらしい建築になるのか知りたいと思います。

今私が計画しているのは、使用することです:

(何かが間違っているなら、私を修正)の流れを確認する: コントローラは (、BusinessLayerを呼び出すこと、ApplicationServiceを呼び出しUnitWork /リポジトリとDALを呼び出すこと、それは、EFまたはDapperの上でクエリを実行すると、リポジトリでの具体的な方法からDapperのを照会することが正しいのですか? )、結果は自動的にDTOにマップされ、 Controllerに返され、 ViewModelに必要なものをコピーしてViewを返します。

私が言ったように、サイトはトラフィックが多いと計画されています。この場合、上記の項目のいずれかがパフォーマンスを低下させる可能性がありますか?あるいは、この組み合わせはさらに何かを漏らすのでしょうか?私はEFを捨て、Dapperだけを使うべきですか?トラフィックのためにサービスレイヤーがパフォーマンスを低下させる恐れがあります。

そして最後に、私はこのアーキテクチャが不要かどうか、あるいは貧弱かどうかはわかりません。

それはたくさんの質問ですが、焦点は、中規模のWebサイトのための "オーバーアーキテクト"ではない素晴らしいソリューションを知ることです。

英語のために申し訳ありません

受け入れられた回答

あなたの質問はかなり主観的です。すべての設定がうまくいくかもしれない多くの設定があります。私はあなたにいくつかの推奨事項を与えることができます。

DapperとのEFのミキシングとマインドフィールは、少し難しいかもしれません。理論的には、Dapperを使ってオブジェクトを取得し、 DbContextオブジェクトをAttachして更新できるDbContextです。しかし、私の経験ではしばしばうまくいかない。私たちはEFを使い始めたのですが、高速クエリーのためにDapperにゆっくりと移動しました。私はEFを使用して更新/挿入を続けることができると考えましたが、私は自分自身の挿入/更新トラッキング(驚くほど簡単)を終了しました。 EFの使用。

後で、私はそれを選んでそれをつけることを勧めます。 EFは.NET 4.5の下でかなり速くなければなりません。 Dapperほど高速ではないので、純粋なDapperルートは悪いことではありません。

あなたが検討できる他の技術:



ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ