подход devexpress xpo против BLL-DAL для страниц отчета - PullRequest
0 голосов
/ 05 января 2012

Мы только что начали веб-проект.Sql таблицы проекта, как ожидается, будут большими таблицами с миллионами записей.А веб-приложение обычно сообщает данные пользователям.Это означает, что веб-приложение будет делать " SELECT " в основном, чем "INSERT" или "UPDATE".
В данный момент мне интересно, следует ли мне использовать классический подход BLL-DAL-MODEL (многоуровневая архитектура) илинекоторые ORM, такие как Devexpress 'XPO.Наша компания использовала XPO в небольших приложениях, и разработчики знакомы с ней.Они также знакомы для многоуровневой архитектуры, но, как вы знаете, реализация XPO проще, чем подход многоуровневой архитектуры.
Теперь я хочу знать, какой подход выбрать.Есть ли кто-нибудь, кто выполняет тест производительности по данным, выбранным как с XPO, так и с многослойной дугой?Или есть идеи?
Спасибо.

Ответы [ 2 ]

2 голосов
/ 05 января 2012

Относительно производительности XPO.У меня есть сетки с 500k записей, и это прекрасно работает.На одной сетке отображается 20 записей.Вот несколько советов (DevEx v10.2):

1.Вы можете использовать ASPxGridView в ServerMode .Вы можете посмотреть демоверсию здесь .В ServerMode привязка к сетке делает это:
- выборка количества записей
- выборка первых 512 идентификаторов записей
- выборка записей для отображения в сетке.Это должно извлечь записи, показанные на первой странице сетки, но мне кажется, что XPO выбирает cca.50 записей.

2.XPO также будет извлекать данные, необходимые для связанных объектов.Это приведет ко многим простым запросам.Вы можете уменьшить это с помощью кэширования.

3.Мы успешно используем кеширование XPO .Это делает приложение быстрее и уменьшает количество обращений к базе данных.Как я уже сказал, мы используем его на столах 500К.

1 голос
/ 05 января 2012

Фер, я понимаю причину и смысл вашего вопроса, но я бы сказал, что никогда не откажусь от многоуровневого подхода, чтобы просто использовать в этом случае определенную технологию или продукт, такой как XPO.также EF и NHibernate могут использоваться непосредственно из пользовательского интерфейса без необходимости наложения слоев, но это не означает, что это хорошо, см. мой ответ здесь:

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

Я бы не использовал XPOили используйте его только в том случае, если он может работать со слоями, как я описал там, и есть большая вероятность, что он также работает, потому что в конце концов это ORM, и его можно изолировать и отделить от остальных, как и любой другой продукт.Тем не менее, это проприетарный DevExpress, и я бы не стал использовать его для больших приложений, которые могут развиваться по-разному в течение нескольких лет, поэтому что-то более стандартное, такое как EF или NHibernate, вероятно, может предложить более надежную и проверенную основу.

...