Как показать изменения, сделанные одним экземпляром приложения Windows, в других экземплярах приложения

Вот мой сценарий:

Мне нужно разработать приложение WPF на C#.NET с двумя основными пользователями: руководителем группы (TL) и техником по эксплуатации (OT). Это приложение будет работать на нескольких отдельных машинах в одной сети. Приложение будет использоваться техником по эксплуатации для просмотра списка номеров работ, а руководитель группы сможет обновлять список номеров работ по мере необходимости.

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

Будут уникальные экземпляры приложения, работающие как на машинах OT, так и на машинах TL.

Моя первая мысль состояла в том, чтобы экземпляр TL обновлял базу данных, а экземпляр OT периодически проверял базу данных на наличие обновлений, но это кажется неуклюжим и плохим дизайном.

Есть ли способ, которым после того, как TL обновит список номеров заданий, я смогу отправить «триггер» по сети экземпляру OT, чтобы сообщить ему об обновлении?


person Joseph Fallecker    schedule 21.09.2016    source источник


Ответы (5)


У вас может быть служба прослушивания TCP на машине технического специалиста и клиент TCP на машине руководителя группы http://www.codeproject.com/Articles/2418/Making-Socket-Based-Application-Using-TcpListener

person JustinHui    schedule 21.09.2016

Вы можете разместить службу WCF внутри своего приложения WPF (например, wcf-service-from-inside-a-windows-presentation-foundation-application/" rel="nofollow">описано здесь, например). Эта служба будет работать на каком-то порту на вашем OT-компьютере и будет прослушивать входящие события с TL-машины (которая должна знать адрес и порт OT-машины). Конечно, база данных по-прежнему необходима для обмена данными, но эту базу данных не нужно опрашивать.

person Evk    schedule 21.09.2016

Возможно, самым простым решением было бы использовать какую-то шину сообщений, например. RabbitMQ или ZeroMQ в шаблоне публикации/подписки. Экземпляры OT подпишутся на тему, а экземпляр TL будет публиковать обновления с номерами заданий.

person Vasiliy Ivashin    schedule 21.09.2016

почему вы не используете события базы данных для уведомления клиентов об обновлении базы данных.

https://msdn.microsoft.com/de-de/library/ms189453.aspx

person René Hankel    schedule 22.09.2016

Я решил попробовать использовать протокол MQTT, чтобы предложить службу публикации/подписки для различных приложений. Это решит некоторые проблемы с проблемой, так как на самом деле есть несколько руководителей групп, у каждого из которых будет свой собственный технический специалист.

Теперь, чтобы узнать, как реализовать MQTT с .NET.

Кто угодно?

person Joseph Fallecker    schedule 22.09.2016