2012-01-05 2 views
-1

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

+0

Собираетесь ли вы отображать данные в сетке? Если да, собираетесь ли вы использовать сетку DevEx или какую-нибудь другую? – Filip

+0

Мы, скорее всего, используем gridview для Devexpress. Вы думаете, что xpo работает лучше DAL в devxpress gird? – Fer

+0

Я дам вам несколько советов в ответ. – Filip

ответ

1

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

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

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

+0

Я aggree с вами. Я также никогда не хочу переключать технологию ORM с черным ящиком, но в нашей компании используется xpo, и они хотят, чтобы я был уверен, что это многослойное приложение лучше. Итак, теперь я сделаю некоторые тесты как многоуровневой дуги. и xpo и увидеть показатели выполнения. Если xpo докажет себя в соответствии с производительностью, я могу рассмотреть возможность его использования, но если нет, я определенно буду использовать многоуровневую архитектуру. Спасибо за ваши идеи. – Fer

2

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

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

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

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

+0

сначала спасибо за ваш ответ. Я уже читал о режиме сервера. Но это не просто для XPO, мы также можем реализовать это с помощью уровня доступа к данным. Я не знаю о кешировании XPO. Я должен это прочитать. Но я думаю, что ваши намеки касаются того, насколько просто реализовать xpo.Мне все же нужно выполнить сравнение производительности. – Fer

+0

Конечно. Я просто пытаюсь указать на imporovements, которые вы можете получить с помощью ASPxGridView + XPO. Да, вы можете использовать ServerMode с источниками данных LINQ. Если вы хотите поддерживать другие библиотеки, вам нужно будет реализовать несколько интерфейсов. – Filip

Смежные вопросы