Приложение и служба в трее, а также обычные формы выигрышей - все в C # - PullRequest
0 голосов
/ 25 августа 2018

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

рассмотрим это:

  1. У меня есть (некоторые) физические устройства с IP-подключением

  2. У меня есть приложение Windows Forms (приложение), которое может иметь много экземпляров в разных процессах, и оно должно подключаться к одному из физических устройств и выполнять некоторые действия.

  3. Я хочу управлять подключением к устройствам с услугой.

  4. Я хочу управлять конфигурацией устройств (то есть записывать и читать в / из XML-файла) с помощью другой службы, и приложение должно запрашивать некоторую информацию об устройствах из этой службы. и, очевидно, он должен применить конфигурацию через службу подключения.

  5. Я хочу иметь приложение в трее для прямого доступа к этим сервисам и конфигурациям.

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

как лучше всего взаимодействовать между моими службами и приложениями? WCF может быть? Разъем? Названный-Pipe? Я хочу самый простой и быстрый способ, а меньшее количество кода - самое легкое и быстрое.

и если у вас есть предложения в каждой части моего сценария, я рад знать. Тпй.

Редактировать 1: я могу забыть об услугах и поместить их функциональность в трей приложение. Это хороший выбор?

1 Ответ

0 голосов
/ 31 декабря 2018

Я пробовал несколько разных способов, и лучший, который работал для меня, был что-то вроде рисунка ниже.Главное приложение = приложение, которое я упоминал в вопросе Справочное приложение = новое приложение, которое можно свернуть в трей

  • Я использовал WCF с TCP-соединением в нем - http-соединение очень медленное для приложений реального времени
  • Я использовал TCP-соединение между приложением справки и устройствами
  • Я использовал IO-Read / Write для файлов конфигурации XML

, и если я хочу объяснить, как я использовал WCF,Я должен сказать, что это похоже на службу чата, когда приложения общаются друг с другом с помощью заранее определенных сообщений (перечисление) и выполняют действия при получении сообщения или отправляют сообщение в ответ.Асинхронный обмен сообщениями имел лучший результат, чтобы не было тупиков или ожиданий.

и, кстати, я создал хост WCF в службе Windows.

enter image description here

...