powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / ObservableCollection vs DataSet ?
25 сообщений из 42, страница 1 из 2
ObservableCollection vs DataSet ?
    #37601654
thunder2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Собственно вопрос в том какое средство использовать для хранения данных выборки с сервера.
До этого в WPF как-то больше работал с ObservableCollection.
С другой стороны ADO.NET возвращает рез-т в DataTable (отключенный уровень), помещенные в DataSet.
Знаю, что WPF будет работать и с тем и другим. И всё же, есть ли какие-то плюсы/минусы у того и другого.
Поделитесь опытом.
...
Рейтинг: 0 / 0
ObservableCollection vs DataSet ?
    #37601853
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Только ObservableCollection. wpf делает связывание данных не напрямую, а через CollectionView, если коллекция не поддерживает нужные интерфейсы, то они эмулируются, что влечет лишнее расходование ресурсов,снижение быстродействия и утечки памяти, если привязка не одностороняя.
...
Рейтинг: 0 / 0
ObservableCollection vs DataSet ?
    #37603968
thunder2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SeVaТолько ObservableCollection. wpf делает связывание данных не напрямую, а через CollectionView, если коллекция не поддерживает нужные интерфейсы, то они эмулируются, что влечет лишнее расходование ресурсов,снижение быстродействия и утечки памяти, если привязка не одностороняя.
А как быть с отслеживанием изменённых строк/данных ? DataTable это делает. А ObservableCollection ? То что у неё есть события на изменения (добавление/уделени/изменение) это я знаю, а вот поддерживает ли она хранение изменённых данных/удаённых и т.д. ?
...
Рейтинг: 0 / 0
ObservableCollection vs DataSet ?
    #37604035
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы не гадать есть документация. ObservableCollection реализует интерфейсы: INotifyCollectionChanged, INotifyPropertyChanged

dataset - это не вариант для wpf
...
Рейтинг: 0 / 0
ObservableCollection vs DataSet ?
    #37604214
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVadataset - это не вариант для wpf
да и для остального он сомнителен
...
Рейтинг: 0 / 0
ObservableCollection vs DataSet ?
    #37604407
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилSeVadataset - это не вариант для wpf
да и для остального он сомнителен
глубокая мысль
...
Рейтинг: 0 / 0
ObservableCollection vs DataSet ?
    #37604446
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmглубокая мысль
да. Причёи инвалид скорее не сам датасет, а датаадаптер
...
Рейтинг: 0 / 0
ObservableCollection vs DataSet ?
    #37604582
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилiscrafmглубокая мысль
да. Причёи инвалид скорее не сам датасет, а датаадаптер
никакой инвалидности не замечено. На фоне того, что по сути одно и тоже, только с готовыми спец.методами, выглядит мысль как то немного странно, глубоко. В чем суть?
...
Рейтинг: 0 / 0
ObservableCollection vs DataSet ?
    #37606115
thunder2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изопропилiscrafmглубокая мысль
да. Причёи инвалид скорее не сам датасет, а датаадаптер
А что вы тогда предлагаете взамен DataAdapter ?
...
Рейтинг: 0 / 0
ObservableCollection vs DataSet ?
    #37606917
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
thunder2А что вы тогда предлагаете взамен DataAdapter ?
Вы считаете, что нет достойных альтернатив?
...
Рейтинг: 0 / 0
ObservableCollection vs DataSet ?
    #37609238
Фотография Шайтан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVadataset - это не вариант для wpf

а мужики-то и не знают!

http://msdn.microsoft.com/en-us/library/aa480226.aspx
...
Рейтинг: 0 / 0
ObservableCollection vs DataSet ?
    #37609319
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaТолько ObservableCollection. wpf делает связывание данных не напрямую, а через CollectionView, если коллекция не поддерживает нужные интерфейсы, то они эмулируются, что влечет лишнее расходование ресурсов,снижение быстродействия и утечки памяти, если привязка не одностороняя.Да ладно. "Родной" компаратор ListCollectionView для сортировки использует рефлекшен ( тут спасает традиционное решение - свой компаратор с доступом через Emit ). Для датабиндинга тоже используется рефлекшен. О какой производительности ты говоришь?

Ничего там не "эмулируется". Просто другая реализация ICollectionView (BindingListCollectionView), не более того.
...
Рейтинг: 0 / 0
ObservableCollection vs DataSet ?
    #37609347
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa... и утечки памяти.
Эти чтоли утечки?

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
internal CollectionView(IEnumerable collection, int moveToFirst)
{
    /* some code snipped for brevity */
    INotifyCollectionChanged changed = collection as INotifyCollectionChanged;
    if (changed != null)
    {
        // this is the problem
        changed.CollectionChanged += this.OnCollectionChanged;
 
        /* some more code */
    }
 
    /* still more code */
}


Время жизни CollectionView такое же как у самого списка. Умер список - вместе с ним умер его CollectionView. Схерали возникнет утечка? Автор гонет...
...
Рейтинг: 0 / 0
ObservableCollection vs DataSet ?
    #37609366
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилSeVadataset - это не вариант для wpf
да и для остального он сомнителенDataTable удобен если:
1. На этапе компиляции не известен набор колонок, или по каким-то причинам мы хотим создать их динамически в рантайме. Зачем городить свою структуру данных если есть готовая.
2. "Халявное" отслеживание изменений, accept/reject и т. п.
...
Рейтинг: 0 / 0
ObservableCollection vs DataSet ?
    #37609380
Фотография Шайтан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КDataTable удобен если:
1. На этапе компиляции не известен набор колонок, или по каким-то причинам мы хотим создать их динамически в рантайме. Зачем городить свою структуру данных если есть готовая.
2. "Халявное" отслеживание изменений, accept/reject и т. п.
+1

+ если набор колнок известен - можно юзать типизированный DataSet
+ готовые Related DataTables
...
Рейтинг: 0 / 0
ObservableCollection vs DataSet ?
    #37609447
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шайтан+ если набор колнок известен - можно юзать типизированный DataSetТут уже кому как нравится. :-)
...
Рейтинг: 0 / 0
ObservableCollection vs DataSet ?
    #37609690
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КВремя жизни CollectionView такое же как у самого списка. Умер список - вместе с ним умер его CollectionView. Схерали возникнет утечка? Автор гонет...
Гонят горлопаны, которые слышат звон, но не знают, где он. Перечитай мой пост
...
Рейтинг: 0 / 0
ObservableCollection vs DataSet ?
    #37609771
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaГонят горлопаны, которые слышат звон, но не знают, где он. Перечитай мой постПример кода, демонстрирующий утечку памяти в BindingListCollectionView будет?
...
Рейтинг: 0 / 0
ObservableCollection vs DataSet ?
    #37609966
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КSeVaГонят горлопаны, которые слышат звон, но не знают, где он. Перечитай мой постПример кода, демонстрирующий утечку памяти в BindingListCollectionView будет?
Говнокопатель во view до сих пор не удосужился узнать косяки wpf? Погугли сам на предмет утечек памяти, давно пора, а то так джуниором и останешься
...
Рейтинг: 0 / 0
ObservableCollection vs DataSet ?
    #37610032
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa
Тебе вопрос понятен?
...
Рейтинг: 0 / 0
ObservableCollection vs DataSet ?
    #37610277
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaГовнокопатель во view до сих пор не удосужился узнать косяки wpf? Погугли сам на предмет утечек памяти, давно пора, а то так джуниором и останешьсяТы чё такой злобный? С тобой нормально разговаривают. Если есть чем поделиться - говори, приводи факты, ссылки. А пустозвонства тут не надо.
...
Рейтинг: 0 / 0
ObservableCollection vs DataSet ?
    #37610381
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КSeVaГовнокопатель во view до сих пор не удосужился узнать косяки wpf? Погугли сам на предмет утечек памяти, давно пора, а то так джуниором и останешьсяТы чё такой злобный? С тобой нормально разговаривают. Если есть чем поделиться - говори, приводи факты, ссылки. А пустозвонства тут не надо.
Если будешь продолжать дальше в стиле известного всем персонажа, то на все приветы будут соответствующие ответы.
В 4.0, кажется, баг с осутствием INotifyCollectionChanged пофиксили, остался с INotifyPropertyChanged .
Описывать сценарии, когда с List'ом будут утечки нужно или сам догадаешься?
...
Рейтинг: 0 / 0
ObservableCollection vs DataSet ?
    #37610866
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaЕсли будешь продолжать дальше в стиле известного всем персонажа, то на все приветы будут соответствующие ответы.
В 4.0, кажется, баг с осутствием INotifyCollectionChanged пофиксили, остался с INotifyPropertyChanged .
Описывать сценарии, когда с List'ом будут утечки нужно или сам догадаешься?DataRowView реализует INotifyPropertyChanged. В этом случае подписка происходит через PropertyChangedEventManager. Так что эта проблема к DataSet как таковому не имеет никакого отношения.
...
Рейтинг: 0 / 0
ObservableCollection vs DataSet ?
    #37611868
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КSeVaЕсли будешь продолжать дальше в стиле известного всем персонажа, то на все приветы будут соответствующие ответы.
В 4.0, кажется, баг с осутствием INotifyCollectionChanged пофиксили, остался с INotifyPropertyChanged .
Описывать сценарии, когда с List'ом будут утечки нужно или сам догадаешься?DataRowView реализует INotifyPropertyChanged. В этом случае подписка происходит через PropertyChangedEventManager. Так что эта проблема к DataSet как таковому не имеет никакого отношения.

Сценарий не угадан. INotifyPropertyChanged нужен еще для свойств самой коллекции.
Ты только дал подтверждение тому, что возникают лишние накладные расходы на ровном месте, тк для каждой строки создается отдельный view.
...
Рейтинг: 0 / 0
ObservableCollection vs DataSet ?
    #37612306
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaСценарий не угадан. INotifyPropertyChanged нужен еще для свойств самой коллекции.Какой-то редкий случай. Надо просто помнить об этом и этого достаточно. Из-за этого не применять DataTable когда он удобен глупо.
SeVaТы только дал подтверждение тому, что возникают лишние накладные расходы на ровном месте, тк для каждой строки создается отдельный view.Который не хранит никаких данных, является тупо передастом для DataRow. По сравнению со всем остальным это мелочи.
...
Рейтинг: 0 / 0
25 сообщений из 42, страница 1 из 2
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / ObservableCollection vs DataSet ?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]