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

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

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

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

Ничего там не "эмулируется". Просто другая реализация ICollectionView (BindingListCollectionView), не более того.
...
Рейтинг: 0 / 0
11.01.2012, 14:45
    #37609347
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ObservableCollection vs DataSet ?
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
11.01.2012, 14:53
    #37609366
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ObservableCollection vs DataSet ?
ИзопропилSeVadataset - это не вариант для wpf
да и для остального он сомнителенDataTable удобен если:
1. На этапе компиляции не известен набор колонок, или по каким-то причинам мы хотим создать их динамически в рантайме. Зачем городить свою структуру данных если есть готовая.
2. "Халявное" отслеживание изменений, accept/reject и т. п.
...
Рейтинг: 0 / 0
11.01.2012, 15:01
    #37609380
Шайтан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ObservableCollection vs DataSet ?
Алексей КDataTable удобен если:
1. На этапе компиляции не известен набор колонок, или по каким-то причинам мы хотим создать их динамически в рантайме. Зачем городить свою структуру данных если есть готовая.
2. "Халявное" отслеживание изменений, accept/reject и т. п.
+1

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

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


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