
Кита
23.07.2017
19:12:02

Vladislav
23.07.2017
19:25:22

Slava
23.07.2017
19:36:53

Google

Евгений
23.07.2017
19:55:39
Всем привет! Работу тут можно предлагать?

IM2STRNG4DTWRLD
23.07.2017
19:57:46

Евгений
23.07.2017
19:58:24
Да прошу прощения. Туда написал. Сразу не посмотрел.

Летучая
23.07.2017
20:10:35

Кита
23.07.2017
20:25:52
ObservableProperty<TValue> : ViewModelBase
почему так?
ViewModel и Property категории разных порядков

Летучая
23.07.2017
20:31:35
Правильнее было бы PropertyChangedBase, да. А при подходе ObservableProperty базовый класс вьюмодели вообще нигде не используется

Slava
23.07.2017
20:32:58
Память поджирает. На мобилках это критично

Летучая
23.07.2017
20:33:21
Ну, условно 1.
Почти пустой!

Max
23.07.2017
20:39:11
Летучая в Xam.Dev, что-то новое

Google

Slava
23.07.2017
20:42:53
Что значит 1? там ещё может быть полей сколько угодно, а потом в коллекцию засунем и ещё непонятно сколько вся эта штука базовая памяти ест и когда сборщик мусора соизволит поработать. Придирки, конечно, но тем не менее...

Летучая
23.07.2017
20:44:47
Падажи, в самой проперте же только 1 поле
а вообще мб мерилку написать, интересно стало

Slava
23.07.2017
20:48:59

Летучая
23.07.2017
20:58:34
Ну эт на совести впихнувшего туда объект останется
так лучше не делать, наверное

Кита
23.07.2017
20:58:38

Летучая
23.07.2017
20:59:02
при желании : when T : struct и зарестриктили

Slava
23.07.2017
20:59:14

Кита
23.07.2017
20:59:34
Придираться надо по серьёзным вещам
Я высказался что такие вещи не делают архитектуру прозрачнее
Почему проперти обсервабл если нужно что бы таковой была вьюмодель. Если нужна коллекция чего-то это будет обсервабл коллекция вьюмоделей. Обязательно

Летучая
23.07.2017
21:02:52
Нужно наблюдать за коллекцией — есть ObservableCollection; нужно наблюдать за свойством — аналогично есть ObservableProperty

Кита
23.07.2017
21:03:32
Ну она по факту таковая когда реализует INotifyProprtyChange

Летучая
23.07.2017
21:04:16

Кита
23.07.2017
21:04:46
С чего это? Она рэйзит эвент о своем изменении
Вы ломаете архитектурные принципы

Летучая
23.07.2017
21:05:36

Кита
23.07.2017
21:05:52
Именно поэтому изначально ваша обсервабл проперти отнаследована от базовой вьюмодели

Летучая
23.07.2017
21:07:47
Не понимаю, о каких архитектурных принципах идёт речь, когда речь заходит о бойлерплейте INotifyPropertyChanged. С помощью ObservableProperty или Fody у меня появилась возможность писать меньше кода и больше отдыхать.

Google

Кита
23.07.2017
21:08:11
Дело в названиях
Всегда важно правильно назвать класс и дать названию правильную смысловую нагрузку

Летучая
23.07.2017
21:09:13
Да, Вы правы, согласен.

Кита
23.07.2017
21:09:44
Так вот то что вы назвали Проперти это не проперти. Это вьюмодель

Летучая
23.07.2017
21:10:04
Правильнее было бы PropertyViewModel?

Кита
23.07.2017
21:10:09
которая отвечает видимо за часть UI на экране а не за всю страницу

Max
23.07.2017
21:11:14

Кита
23.07.2017
21:11:19
да
почему нет?

Max
23.07.2017
21:12:04
Просто иногда слушаешь такой Славу Черникова.. а там 1 страница-1вьюмодель
И такой чет грустно

Кита
23.07.2017
21:12:30
ну это в hello worldах так

Кита
23.07.2017
21:12:55
вот например ситуация когда у нас есть планшеты и смартфоны
на смартфонах часто 1 вью-модель - 1 страница
а на планшете можно на UI разместить 2 смартфонных страницы одновременно
Master-Detail pattern
у нас уже есть по 1 вьюмодели на каждую из страниц. Не хватает Parentа который бы всех объеденил
ну это как пример

Max
23.07.2017
21:14:38
Ну понятно

Кита
23.07.2017
21:15:02
или часть сложного UI реюзается где-то в других местах

Google

Кита
23.07.2017
21:16:57
логично описать согласно Single Responsibility Principle вьюмодель которая будет отвечать за конкретную узкую логику и засетить её биндинг контекстом той view на UI к которой эта логика относится и так во всех остальных местах

Летучая
23.07.2017
21:18:07
Но разве становится она от этого вьюмоделью?

Admin
ERROR: S client not available

Летучая
23.07.2017
21:18:56
Которая описывает конкретный интерфейс, а не общее представление абстрактного изменяемого набора данных.

Кита
23.07.2017
21:19:14
это просто прослойка для хранения коллекции вьюмоделей
в ней нас интересеует INotifyCollectionChanged который позволяет подписаться на добавление/удаление/инсерт в коллекцию айтема не более и не менее
ObservableCollection при помощи INotifyPropertyChanged может в теории сообщить что изменился Count. Больше свойств у неё нет

Летучая
23.07.2017
21:21:18
Не очень понимаю, почему ObservableProperty нарушает архитектурные принципы, а ObservableCollection — нет. Коллекция хранит и обновляет вьюмодели — элементы списка (условно); свойство хранит и обновляет информацию, отображаемую на экране (дата, время, количество), либо ввод пользователя.

Кита
23.07.2017
21:21:54
потому что коллизия в названиях

Max
23.07.2017
21:24:04
Очень интересно, что за 2-3 месяца набралось в 2 раза больше народа, чем было изначально
А количество тех, кто здесь общается, почти статично

Кита
23.07.2017
21:26:45
проперти в c# это public Что-тотам Property {get; set;} И в MVVM это обычно какой-нибудь POCO или вообще примитив. Как только нам нужно чтобы изменения в самом POCO ещё тоже как-то отзывались на UI - автоматом этот объект перестает быть POCO и становится ViewModel. При чтении кода сразу становится ясно и понятно что куда и откуда уши растут. И так сложилось уже исторически просто. С тех пор как Microsoft вообще Mvvm паттерн продвигать стали
ObservableCollection же всегда была для того чтобы реагировать красиво на изменения внутри коллекции при помощи INotifyCollectionChanged. Не больше и не меньше. Такую роль изначально для этого и отводили - прослойка между парентом и множеством чилдов

Kirill
24.07.2017
01:06:24

Кита
24.07.2017
02:50:05
Еслb это всё ViewModel, то что тогда Model?
The model in MVVM is an implementation of the application's domain model that includes a data model along with business and validation logic. Examples of model objects include repositories, business objects, data transfer objects (DTOs), Plain Old CLR Objects (POCOs), and generated entity and proxy objects.

Vasiliy
24.07.2017
08:29:52
async\await нормально должен отрабатывать в андроид нейтив?

Кита
24.07.2017
08:36:37
а чоб нет то
это ж вопрос работы рантайма

Vasiliy
24.07.2017
08:38:00
да чет с фризой активити запускается, OnCreate должен показывать активити и контент должен подгружаться, но перед этим фриз и отображается уже с подгруженным контентом

Google

Igor
24.07.2017
08:39:12
Асинк/await не вынесет магически твой код в фоновый поток, надо смотреть все что-ты там делаешь

Vasiliy
24.07.2017
09:25:17
разобрался, невнимательность)

Кита
24.07.2017
10:11:38
res-auto прописал?

Vasiliy
24.07.2017
10:27:32

Кита
24.07.2017
10:27:49
ну да

Vasiliy
24.07.2017
10:28:51
нашел на стеке совет что нужно переставить либу - к бестолку
D:
Тут кто то спрашивал на днях про Теле2 смартфоны, нормально работает, я как раз на днях утопил свой телефон и взял ТЕЛЕ2 макси. Нареканий нет кроме пластика жирного, экран отличный, работает шустро. Батарея никакая, но для разработки на проводе - вообще отлично

Кита
24.07.2017
10:32:30

Летучая
24.07.2017
11:52:59
На тему вчерашнего велосипедостроения https://github.com/runceel/ReactiveProperty/blob/master/README.md // все эти наблюдаемые реактивные свойства, коллекции и команды уже давно реализованы и активно используются...
Так что можно выкидывать старые коллекции и бойлерплейт для INotifyPropertyChanged и не страдать

Slava
24.07.2017
12:00:12
Зачем все эти нагромождения?