-1

Web プロジェクトを開始したばかりです。プロジェクトの SQL テーブルは、数百万のレコードを持つ大きなテーブルであると予想されます。また、Web アプリケーションは通常、データをユーザーに報告します。これは、Web アプリケーションが「INSERT」や「UPDATE」よりも「 SELECT 」を実行することを意味します。
この時点で、従来の BLL-DAL-MODEL アプローチ (レイヤード アーキテクチャ) を使用するか、Devexpress の XPO のような ORM を使用するかを考えます。当社は小規模な多くのアプリケーションで XPO を使用しており、開発者は XPO に精通しています。それらはレイヤード アーキテクチャにもなじみがありますが、ご存じのとおり、XPO の実装はレイヤード アーキテクチャ アプローチよりも簡単です。
今、私はどのアプローチを選択すべきか知りたいです。XPO とレイヤード アークの両方でデータ セレクトに従ってパフォーマンス テストを実行する人はいますか。? それともアイデアはありますか?
ありがとう。

4

2 に答える 2

2

XPOの性能について。500k レコードのグリッドがあり、正常に動作します。1 つのグリッド ページに 20 件のレコードが表示されます。ここにいくつかのヒントがあります (DevEx v10.2):

1. ServerMode で ASPxGridView を使用できますここでデモを見ることができます。ServerMode では、グリッド バインディングは次のことを行います。
- レコード カウントを
フェッチする - 最初の 512 レコード ID
をフェッチする - グリッドに表示するためにレコードをフェッチする。これにより、最初のグリッド ページに表示されているレコードがフェッチされるはずですが、XPO は cca をフェッチするように思えます。50 レコード。

2.XPO は、関連オブジェクトに必要なデータもフェッチします。これにより、多くの単純なクエリが生成されます。これをキャッシュで減らすことができます。

3.XPOキャッシングをうまく利用しています。アプリケーションを高速化し、データベースのヒット数を減らします。すでに述べたように、500k テーブルで使用します。

于 2012-01-05T14:54:06.010 に答える
1

フェル、あなたの質問の理由と意味は理解していますが、この場合、XPO のような特定の技術や製品をショートカットするためだけに階層化されたアプローチを放棄することは決してないと思います。また、EF と NHibernate は、レイヤリングを必要とせずに UI から直接使用できますが、これが良いというわけではありません。ここで私の回答を参照してください。

https://stackoverflow.com/a/7474357/559144

私はXPOを使用しないか、そこで説明したようにレイヤリングで機能する場合にのみ使用します.最終的にはORMであり、他の製品と同様に分離および分離できるため、XPOも機能する可能性が高くなります. . それでも、それは独自のDevExpressであり、数年にわたって異なる進化を遂げる可能性のある大きなアプリケーションには使用しないため、EFやNHibernateなどのより標準的なものは、おそらくより信頼性が高く実証済みの基盤を提供できます.

于 2012-01-05T13:38:31.403 に答える