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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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


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