Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Reactive: как реализовать такую обработку? / 25 сообщений из 51, страница 1 из 3
29.05.2019, 10:40
    #39819663
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Reactive: как реализовать такую обработку?
Есть две формы, хотелось бы сделать так:

1. в форме 1 при нажатии на клавишу выполняется запрос к SQL Server.
2. если он выполнился, то в форме1 и в форме 2 перерисовываются контролы (листбоксы, тривью)
3. если не выполнился, то в форме 1 пишется запись в текстбокс об ошибке

Вопрос: я создаю субжект в форме1, подписываюсь в форме1, там же реагирую.
Как быть в форме 2 с подпиской не теже события и реакцией на них? там ведь не виден субжект?

Собственно, хотелось бы сделать подписку и реакцию на то же событие по многим классам приложения, потом и вопрос.
...
Рейтинг: 0 / 0
29.05.2019, 10:46
    #39819667
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Reactive: как реализовать такую обработку?
Гугли паттерны "Model-View-Controller" и "Model-View-Presenter".
...
Рейтинг: 0 / 0
29.05.2019, 10:50
    #39819672
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Reactive: как реализовать такую обработку?
fkthatГугли паттерны "Model-View-Controller" и "Model-View-Presenter".

Хорошо, но это концепция, а как реализовать, используя Reactive то, что я описал?
Т.е., я так понимаю, субжект должен быть виден для обоих классов? Значит, выносить и делать его глобальным?
...
Рейтинг: 0 / 0
29.05.2019, 10:58
    #39819676
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Reactive: как реализовать такую обработку?
Ролг Хупин,

В MVC модель может быть разшарена между несколькими "view" (представлениями), в данном случае формами. Контроллер формы получает пользовательское событие от формы и обновляет модель. Модель в свою очередь уведомляет все зависящие от неё представления о том что она обновилась. В ответ на это уведомление каждое представление обновляет себя данными модели. В общем случае, да, нужен некоторый глобальный "диспетчер", который управляет созданием представлений (форм), контроллеров, моделей и установлением связей между ними.
...
Рейтинг: 0 / 0
29.05.2019, 11:06
    #39819685
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Reactive: как реализовать такую обработку?
fkthatРолг Хупин,

В MVC модель может быть разшарена между несколькими "view" (представлениями), в данном случае формами. Контроллер формы получает пользовательское событие от формы и обновляет модель. Модель в свою очередь уведомляет все зависящие от неё представления о том что она обновилась. В ответ на это уведомление каждое представление обновляет себя данными модели. В общем случае, да, нужен некоторый глобальный "диспетчер", который управляет созданием представлений (форм), контроллеров, моделей и установлением связей между ними.

ясно, спасибо за комментарий, у меня старое WinForms приложение, накручивать туда еще MVC|MVVM не хотелось бы, хочется проще, добавить реакцию в разных формах/классах на событие, случившееся в каком-то месте
...
Рейтинг: 0 / 0
29.05.2019, 11:22
    #39819699
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Reactive: как реализовать такую обработку?
Ролг Хупинясно, спасибо за комментарий, у меня старое WinForms приложение, накручивать туда еще MVC|MVVM не хотелось бы, хочется проще, добавить реакцию в разных формах/классах на событие, случившееся в каком-то месте
Паттерн "медиатор" ("посредник")
...
Рейтинг: 0 / 0
29.05.2019, 11:29
    #39819705
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Reactive: как реализовать такую обработку?
Ролг Хупинменя старое WinFormsmainForm всегда доступна. Пусть и руководит событиями. А все формочки при родах подписываются и умирая отписываются.
...
Рейтинг: 0 / 0
29.05.2019, 11:30
    #39819707
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Reactive: как реализовать такую обработку?
Ролг Хупин,
Это если легаси проект.
...
Рейтинг: 0 / 0
29.05.2019, 11:34
    #39819712
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Reactive: как реализовать такую обработку?
Petro123mainForm всегда доступна. Пусть и руководит событиями.
Еще пусть она варит кофе и делает марокканский минет.
...
Рейтинг: 0 / 0
29.05.2019, 11:39
    #39819716
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Reactive: как реализовать такую обработку?
fkthat,
Все что ты не напишешь, все верно дорогой). Не переживай.
...
Рейтинг: 0 / 0
29.05.2019, 12:04
    #39819735
ЕвгенийВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Reactive: как реализовать такую обработку?
fkthat Паттерн "медиатор" ("посредник")
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев.
...
Рейтинг: 0 / 0
29.05.2019, 12:05
    #39819738
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Reactive: как реализовать такую обработку?
ЕвгенийВ,
Да)
И если у вас не легаси)
...
Рейтинг: 0 / 0
29.05.2019, 12:05
    #39819739
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Reactive: как реализовать такую обработку?
Petro123Ролг Хупин,
Это если легаси проект.

да не то слово, еще и какой легаси, не хочется лишний раз трогать
...
Рейтинг: 0 / 0
29.05.2019, 12:14
    #39819745
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Reactive: как реализовать такую обработку?
Ролг ХупинЕсть две формы, хотелось бы сделать так:

1. в форме 1 при нажатии на клавишу выполняется запрос к SQL Server.
2. если он выполнился, то в форме1 и в форме 2 перерисовываются контролы (листбоксы, тривью)
3. если не выполнился, то в форме 1 пишется запись в текстбокс об ошибке

Вопрос: я создаю субжект в форме1, подписываюсь в форме1, там же реагирую.
Как быть в форме 2 с подпиской не теже события и реакцией на них? там ведь не виден субжект?

Собственно, хотелось бы сделать подписку и реакцию на то же событие по многим классам приложения, потом и вопрос.
Речь об https://reactiveui.net/docs/guidelines/platform/windows-forms ?
...
Рейтинг: 0 / 0
29.05.2019, 12:14
    #39819746
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Reactive: как реализовать такую обработку?
Petro123Ролг Хупинменя старое WinFormsmainForm всегда доступна. Пусть и руководит событиями. А все формочки при родах подписываются и умирая отписываются.

В общем, сделал так: сделал Singleton, там живет субжект, каждая форма берет его, подписывается и реагирует.
...
Рейтинг: 0 / 0
29.05.2019, 12:18
    #39819750
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Reactive: как реализовать такую обработку?
Ролг ХупинPetro123Ролг Хупин,
Это если легаси проект.

да не то слово, еще и какой легаси, не хочется лишний раз трогать

В mainForm добавить интефейс. , IAddEventDB
- заругается... дописать метод из него.
- в этом методе вызвать form2.
А метод запустит form1
Все.
...
Рейтинг: 0 / 0
29.05.2019, 12:18
    #39819751
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Reactive: как реализовать такую обработку?
Ролг ХупинSingletonантипаттерн
...
Рейтинг: 0 / 0
29.05.2019, 12:18
    #39819752
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Reactive: как реализовать такую обработку?
Ролг ХупинВ общем, сделал так: сделал Singleton, там живет субжект, каждая форма берет его, подписывается и реагирует.

Да, зачот, все правильно.
...
Рейтинг: 0 / 0
29.05.2019, 12:23
    #39819755
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Reactive: как реализовать такую обработку?
Ролг ХупинfkthatРолг Хупин,

В MVC модель может быть разшарена между несколькими "view" (представлениями), в данном случае формами. Контроллер формы получает пользовательское событие от формы и обновляет модель. Модель в свою очередь уведомляет все зависящие от неё представления о том что она обновилась. В ответ на это уведомление каждое представление обновляет себя данными модели. В общем случае, да, нужен некоторый глобальный "диспетчер", который управляет созданием представлений (форм), контроллеров, моделей и установлением связей между ними.

ясно, спасибо за комментарий, у меня старое WinForms приложение, накручивать туда еще MVC|MVVM не хотелось бы, хочется проще, добавить реакцию в разных формах/классах на событие, случившееся в каком-то месте
Типа при наступлении некого события необходимо выполнить команду Refresh.

Ну заведи интерфейс ICommandHandler, пусть твои формы его реализуют, а главная форма выступает диспетчером команд.
...
Рейтинг: 0 / 0
29.05.2019, 12:24
    #39819756
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Reactive: как реализовать такую обработку?
Ролг ХупинPetro123пропущено...
mainForm всегда доступна. Пусть и руководит событиями. А все формочки при родах подписываются и умирая отписываются.

В общем, сделал так: сделал Singleton, там живет субжект, каждая форма берет его, подписывается и реагирует.
Типа некий общий Store/State?
...
Рейтинг: 0 / 0
29.05.2019, 12:25
    #39819757
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Reactive: как реализовать такую обработку?
fkthatРолг Хупинясно, спасибо за комментарий, у меня старое WinForms приложение, накручивать туда еще MVC|MVVM не хотелось бы, хочется проще, добавить реакцию в разных формах/классах на событие, случившееся в каком-то месте
Паттерн "медиатор" ("посредник")

это полезный шаблон, но в нем каждому юзеру передается медиатор, это еще ладно, но медиатор должен знать обо всех юзерах.
Синглетон вроде как более оторван.
...
Рейтинг: 0 / 0
29.05.2019, 12:27
    #39819759
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Reactive: как реализовать такую обработку?
skyANAРолг Хупинпропущено...


В общем, сделал так: сделал Singleton, там живет субжект, каждая форма берет его, подписывается и реагирует.
Типа некий общий Store/State?

да, практически - общий, глобальный Субжект
...
Рейтинг: 0 / 0
29.05.2019, 12:30
    #39819762
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Reactive: как реализовать такую обработку?
skyANAРолг ХупинЕсть две формы, хотелось бы сделать так:

1. в форме 1 при нажатии на клавишу выполняется запрос к SQL Server.
2. если он выполнился, то в форме1 и в форме 2 перерисовываются контролы (листбоксы, тривью)
3. если не выполнился, то в форме 1 пишется запись в текстбокс об ошибке

Вопрос: я создаю субжект в форме1, подписываюсь в форме1, там же реагирую.
Как быть в форме 2 с подпиской не теже события и реакцией на них? там ведь не виден субжект?

Собственно, хотелось бы сделать подписку и реакцию на то же событие по многим классам приложения, потом и вопрос.
Речь об https://reactiveui.net/docs/guidelines/platform/windows-forms ?

Да, но чтобы такое использовать надо много существующего кода перелопатить, чего не хотелось бы
...
Рейтинг: 0 / 0
29.05.2019, 12:31
    #39819764
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Reactive: как реализовать такую обработку?
Ролг Хупин,

я вот только одного не пойму...
ReactiveUI - это полноценный MVVM-фреймворк: bindings, routing, message bus, commands и прочее...
зачем что-то накручивать, если в нём итак всё есть?
...
Рейтинг: 0 / 0
29.05.2019, 12:32
    #39819765
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Reactive: как реализовать такую обработку?
Ролг ХупинskyANAпропущено...

Речь об https://reactiveui.net/docs/guidelines/platform/windows-forms ?

Да, но чтобы такое использовать надо много существующего кода перелопатить, чего не хотелось бы
понятно

тогда зачем тащить весь ReactiveUI, реализуй тупо маленькую часть из него
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Reactive: как реализовать такую обработку? / 25 сообщений из 51, страница 1 из 3
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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