Поднятие бэкэнда (INotify) событий PropertyChanged для всех подключенных клиентов? - PullRequest
0 голосов
/ 30 марта 2010

Один из наших разработчиков «внешнего интерфейса» постоянно просит от нас разработчиков бэкэнда, чтобы он уведомлял всех подключенных клиентов (это среда клиент / сервер) об изменениях объектов. Как в случае: когда один пользователь вносит изменение, все остальные подключенные клиенты должны быть немедленно уведомлены об изменении.

В настоящее время в нашей архитектуре нет системы уведомлений такого рода, и у нас нет своего рода модели публикаций / субобъектов для явно выбранных объектов (например, той, которую в настоящее время реализует интерфейс) ... которая имела бы смысл в таком случае использования imho, но, очевидно, требует дополнительной реализации.

Однако я подумал, что веб-интерфейсы обычно проверяют наличие блокировок для одновременно существующих пользовательских изменений на одном и том же объекте и скорее извлекают изменения / загружают по требованию и в фоновом режиме, а не в бэкэнде, постоянно передавая все изменения всем клиентам для всех объектов. что мне кажется чрезмерным.

Однако утверждается, что, например, MS Entity Framework фактически публикует (INotify) PropertyChanged не только для локальных изменений, но и для всех таких изменений, включая другие клиентские подключения, но я не нашел никаких доказательств или подробностей относительно этого.

Кто-нибудь может пролить свет на это? Делать другие, например ORM и т. Д. Предоставляют транслируемые (INotify) события PropertyChanged для сущностей?

1 Ответ

0 голосов
/ 30 марта 2010

Эти уведомления являются чисто локальными уведомлениями разновидности OnChange += SomeHandler. Похоже, вы запрашиваете то, что новая библиотека Reactive Extensions представляет в .NET 4. Тем не менее, даже с Rx, такие уведомления не будут автоматическими; потребовалась бы некоторая обработка уведомления паба / юга.

...