Сторонний контроль Silverlight Grid - PullRequest
2 голосов
/ 14 декабря 2010

Мы проходим процесс выбора стороннего набора элементов управления для Silverlight 4.0. Мы в основном заинтересованы в многофункциональном элементе управления сеткой. Я удивлен, обнаружив, что большинство продуктов ориентированы на пейджинг, фильтрацию, сортировку и группировку на стороне клиента. Но если набор данных достаточно велик, чтобы извлечь выгоду из этих функций, не слишком ли велик, чтобы доставить его клиенту за один вызов? И разве это не делает бесполезными большинство рекламируемых необычных функций сетки? На мой взгляд, 200 строк данных - это идеальный верхний предел того, сколько я бы запрашивал с сервера за один запрос. Тем не менее, на сайтах Telerik, DevExpress, ComponentOne, Xceed и других есть модные демонстрации, которые приносят клиенту более 10 000 строк данных и демонстрируют возможность их просмотра, фильтрации, группировки и сортировки. Кто приносит клиенту более 10000 строк данных? Что делать, если у вас есть тысячи одновременно работающих пользователей? Что если эти данные изменчивы? Какой вариант использования это действительно адрес?

Можете ли вы поделиться своим опытом с любым из этих наборов средств управления и реализовали ли вы пейджинг? Также используете ли вы RIA?

Спасибо.

Ответы [ 4 ]

0 голосов
/ 01 января 2011

Вам не нужно загружать все свои данные сразу, вы можете указать максимальную загрузку в xaml вашего ObjectDataSource. Это загрузит ваши данные в блоки указанного размера. Посмотрите 2 видео об услугах RIA здесь: https://www.silverlight.net/getstarted/riaservices/

На пейджинге есть сегменты, которые также могут быть вам полезны.

примечание (некоторые ссылки на сборку и синтаксис немного изменились с тех пор, как были сделаны эти видео, но основная функция остается прежней)

0 голосов
/ 14 декабря 2010

Я согласен с вами, для клиента может быть сумасшествием желание одновременно просматривать данные за все годы, но иногда клиент (и менеджеры по продукту) не видят вещи так же, как выи настаивать на том, чтобы делать глупости ....

В любом случае, просто потому, что демо-версия просматривает 1 миллион записей, это не значит, что они приносят их всем клиенту.Вы также должны рассмотреть сценарий, в котором у вас есть данные на 200 строк, но вы можете отображать только 10 строк за один раз из-за шаблонов данных, которые вы используете (вы можете разместить только 10 строк на странице) - вы все равно можете получить все200 строк, потому что просто ваша презентация использует физическую комнату.Вы также можете реализовать пейджинг и получать данные на следующей странице, когда они запрашиваются (что приведет к небольшой задержке, но может стоить того).Возможно, лучший способ справиться с этим - не дать пользователю возможность извлекать миллиарды записей одновременно - если вы дадите им эту функцию, они будут ее использовать *, а затем они также будут жаловаться на ее производительность.

Что касается быстрой сортировки / группировки / фильтрации на стороне клиента, это реальная необходимость.Для наших пользователей характерно извлекать многие тысячи записей с сервера, затем использовать фильтры (которые я расширил) для одновременного просмотра нескольких записей, работать с этими записями, затем изменять фильтры для просмотра другой группы,Важно, чтобы эти функции работали быстро, потому что это имеет огромное значение для взаимодействия с пользователем.В начале этого года я опробовал несколько различных наборов компонентов и обнаружил, что между ними существует огромная разница в производительности, так что выбирайте мудро:)

0 голосов
/ 14 декабря 2010

Мне бы хотелось увидеть набор средств управления, который может работать с проблемами параллелизма при выполнении заказа, а также использовать очереди или стеки для разрешения конфликтов данных.Я слишком часто вижу, что эти сетки и элементы управления списками действительно хороши, симпатичны и показывают вам все данные, но они не решают основных проблем параллелизма, когда над одним и тем же набором данных работает несколько человек.Если он автоматизирует блокировку строки одного пользователя от другого, предотвращает дублирование работы и автоматически регистрирует сообщения об ошибках, тогда я вижу покупку контрольного пакета.

0 голосов
/ 14 декабря 2010

Вам не нужен сторонний элемент управления Grid для достижения подкачки на стороне сервера.Вы можете использовать элемент управления сеткой и ObjectDataSource, предоставляемые набором инструментов silverlight http://silverlight.codeplex.com/

http://borrell.parivedasolutions.com/2008/01/objectdatasource-linq-paging-sorting.html

...