|
MediatR vs Reactive?
|
|||
---|---|---|---|
#18+
Есть старое развесистое WinForms приложение, надо сделать в нем что-то типа: в форме Settings изменили установки и другие формы, в которых эти установки используются отреагировали. Оставим пока невозможность всегда реагировать без рестарта и т.д., предположим всегда можно. Хотел использовать Reactive , но подумал, что можно MediatR notifications. Подскажите, возможно ли использовать MediatR notifications, будет ли это проще? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2021, 14:13 |
|
MediatR vs Reactive?
|
|||
---|---|---|---|
#18+
Ролг Хупин Хотел использовать Reactive , но подумал, что можно MediatR notifications. Хочется чего-то стильного-модного-молодежного? INotifyPropertyChanged (который автоматом имплементится теми же стандартными настройками) уже не? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2021, 17:49 |
|
MediatR vs Reactive?
|
|||
---|---|---|---|
#18+
Сон Веры Павловны Ролг Хупин Хотел использовать Reactive , но подумал, что можно MediatR notifications. Хочется чего-то стильного-модного-молодежного? INotifyPropertyChanged (который автоматом имплементится теми же стандартными настройками) уже не? я первый раз в большом городе(ц), совсем не хочется с-м-м, но хочется чего-то, с помощью чего можно на изменение в одной форме (проперти) отреагировать в другой форме. Как это сделать ? при помощи чего? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2021, 18:29 |
|
MediatR vs Reactive?
|
|||
---|---|---|---|
#18+
Ролг Хупин, чем обычные события не устраивают? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2021, 22:00 |
|
MediatR vs Reactive?
|
|||
---|---|---|---|
#18+
Ролг Хупин с помощью чего можно на изменение в одной форме (проперти) отреагировать в другой форме. Как это сделать ? при помощи чего? Так выше ж написано - стандартный интерфейс INotifyPropertyChanged . Вполне позволяет реагировать на изменения и без рестарта. Стандартные настройки .Net (те, которые в .settings-файлах, которые унаследованные от ApplicationSettingsBase) автоматически из коробки реализуют этот интерфейс, и всё, что нужно - подписаться на событие PropertyChanged от этого интерфейса. Или использовать DataBinding - в винформс он тоже вполне есть (конечно, до WPF-ных бинднигов ему как до луны пешком, но пользоваться вполне можно, причем и в двунаправленном режиме тоже, и даже конвертеры поддерживаются). В этом случае подписка на событие делается автоматически внутренними механизмами биндинга (не знаю, как в винформс, а в WPF при этом делается weak event subscription, т.е. можно даже не заморачиваться с вопросом отписки для корректного захоронения подписанного объекта). P.S. В тексте по данной выше ссылке не описан нюанс: если у экземпляра PropertyChangedEventArgs свойство PropertyName=null или string.Empty, то это означает, что изменились все обозреваемые свойства класса. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2021, 06:53 |
|
MediatR vs Reactive?
|
|||
---|---|---|---|
#18+
vb_sub Ролг Хупин, чем обычные события не устраивают? +1 Просто создаёте event и подписываете на него "другие формы". Работает быстро, дёшево и сердито. Good luck! ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2021, 10:49 |
|
MediatR vs Reactive?
|
|||
---|---|---|---|
#18+
Сон Веры Павловны Ролг Хупин с помощью чего можно на изменение в одной форме (проперти) отреагировать в другой форме. Как это сделать ? при помощи чего? Так выше ж написано - стандартный интерфейс INotifyPropertyChanged . Вполне позволяет реагировать на изменения и без рестарта. Стандартные настройки .Net (те, которые в .settings-файлах, которые унаследованные от ApplicationSettingsBase) автоматически из коробки реализуют этот интерфейс, и всё, что нужно - подписаться на событие PropertyChanged от этого интерфейса. Или использовать DataBinding - в винформс он тоже вполне есть (конечно, до WPF-ных бинднигов ему как до луны пешком, но пользоваться вполне можно, причем и в двунаправленном режиме тоже, и даже конвертеры поддерживаются). В этом случае подписка на событие делается автоматически внутренними механизмами биндинга (не знаю, как в винформс, а в WPF при этом делается weak event subscription, т.е. можно даже не заморачиваться с вопросом отписки для корректного захоронения подписанного объекта). P.S. В тексте по данной выше ссылке не описан нюанс: если у экземпляра PropertyChangedEventArgs свойство PropertyName=null или string.Empty, то это означает, что изменились все обозреваемые свойства класса. Хорошо, а если это самописные установки? WPF там и рядом не валялось, там совсем legacy ВинФормс приложение. Т.е. читается, скажем, хмл файл, десериализуется, показывается в пропертигиде, юзер меняет какие-то его части, они сохраняются (сериализуются) в хмл файл обратно. Или в друом случае - в форме отмечается безобидная птичка, на которую над изменить реакцию в других формах, строгая злая птица там. В этих случаях как реагировать? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2021, 11:17 |
|
MediatR vs Reactive?
|
|||
---|---|---|---|
#18+
Ролг Хупин Хорошо, а если это самописные установки? Ну а какая разница, самописные, или нет. Получаете доступ к инстансу класса настроек любым доступным образом в зависимости от реализации - мож он у вас синглтон, может, через DI впихивается, или задается явным параметром в каком-нибудь методе или конструкторе. Подписываетесь на его событие PropertyChanged. В хэндлере события производите нужные вам действия. Что тут может быть проблемой - не понимаю. Пример, как производится реализация INotifyPropertyChanged, дан выше, хотя вариантов таких реализаций очень много (можно, например, вообще ко всем public свойствам автоматом прикрутить возбуждение PropertyChanged с помощью Fody.PropertyChanged ). ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2021, 12:28 |
|
|
start [/forum/topic.php?desktop=1&fid=20&tid=1398206]: |
0ms |
get settings: |
26ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
47ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
188ms |
get tp. blocked users: |
2ms |
others: | 325ms |
total: | 628ms |
0 / 0 |