-1

我们刚刚开始了一个网络项目。项目的sql表预计是百万条记录的大表。Web 应用程序通常会将数据报告给用户。这意味着 Web 应用程序将执行“ SELECT ”而不是“INSERT”或“UPDATE”。
在这一点上,我想知道我是否应该使用经典的 BLL-DAL-MODEL 方法(分层架构)或像 Devexpress 的 XPO 这样的 ORM。我们公司在很多小应用程序中都使用过XPO,开发人员对它很熟悉。他们也熟悉分层架构,但正如您所知,XPO 的实现比分层架构方法更容易。
现在,我想知道我应该选择哪种方法。有没有人根据XPO和分层弧的数据选择进行性能测试。? 或者有什么想法吗?
谢谢。

4

2 回答 2

2

关于 XPO 性能。我有 500k 记录的网格,它工作正常。单个网格页面显示 20 条记录。这里有一些提示(DevEx v10.2):

1.您可以在ServerMode中使用 ASPxGridView 。您可以在这里查看演示。在 ServerMode 网格绑定中执行以下操作:
- 获取记录计数
- 获取前 512 个记录 id
- 获取用于在网格中显示的记录。这应该获取第一个网格页面上显示的记录,但在我看来,XPO 获取 cca。50 条记录。

2.XPO 还将获取相关对象所需的数据。这将导致许多简单的查询。您可以通过缓存来减少这种情况。

3.我们成功使用XPO缓存。它使应用程序更快并减少了数据库命中次数。正如我已经说过的,我们在 50 万张桌子上使用它。

于 2012-01-05T14:54:06.010 回答
1

Fer,我理解你问题的原因和含义,但我想说,在这种情况下,我永远不会放弃分层方法,只是为了捷径使用某种技术或产品,如 XPO。也可以直接从 UI 中使用 EF 和 NHibernate 而无需分层,但这并不意味着很好,请参阅我的答案:

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

我要么不使用 XPO,要么只使用它,如果它可以像我在那里描述的那样与分层一起工作,而且很有可能它也可以工作,因为最终它是一个 ORM,并且可以像任何其他产品一样与其他产品隔离和解耦. 它仍然是专有的 DevExpress,我不会将它用于可能在几年内发展不同的大型应用程序,因此像 EF 或 NHibernate 这样更标准的东西可能会提供更可靠和经过验证的基础。

于 2012-01-05T13:38:31.403 回答