Как наилучшим образом выставить методы в WinForm? - PullRequest
6 голосов
/ 04 сентября 2011

У меня есть приложение на C #, которое подключается к электронному устройству через последовательный порт. Класс «SerialCommunicationManager» подключается к последовательному порту при запуске приложения и обрабатывает грязные разговоры с устройством.

То, что я хотел бы, это выставить следующие методы

  • Write ()
  • Событие SerialDataReceived
  • Событие SerialDataTransmitted

В первую очередь я хочу представить методы для локального веб-сайта, работающего на той же машине, но в будущем я также представлю потребность во внешних приложениях.

Какой самый простой способ раскрыть функциональность?

  • Клиентский сервер TCPIP?
  • Веб-сервис? (Могу ли я создать веб-сервис внутри WinForm?)
  • другой

Большое спасибо

// David

enter image description here

Ответы [ 3 ]

4 голосов
/ 04 сентября 2011

Я бы порекомендовал самостоятельно разместить службу WCF . Это дает вам огромную гибкость в отношении того, как вы обслуживаете и предоставляете эту информацию, включая возможность изменения метода, с помощью которого она обрабатывается через конфигурацию.

1 голос
/ 04 сентября 2011

В недавнем проекте мы сделали следующее:

  • Напишите консольное приложение (или службу Windows, в зависимости от ваших потребностей), которое обменивается данными с электронным устройством.
  • Сделать консольное приложение хостом .NET 4 WCF.
  • Напишите приложение Windows Forms .NET 2 для связи через веб-службы с консольным приложением.

В этом контексте я мог бы представить, что упомянутый вами веб-сайт также использует веб-службы (WSDL) для связи с консольным приложением.

1 голос
/ 04 сентября 2011

Мне кажется, что если вы хотите сделать это правильно, вам следует разбить приложение на формы и создать:

  • служба, которая обрабатывает последовательную связь и имеет API, предоставляемый через удаленное взаимодействие
  • приложение Forms, которое использует API и работает со службой

Тогда, в зависимости от местонахождения вашего веб-сайта, если он останется локальным (или почти локальным - LAN):

  • веб-сайт должен использовать удаленное взаимодействие для вызова службы

иначе, если вы планируете иметь несколько веб-сайтов:

  • веб-служба, размещенная внутри IIS, которая обернет удаленное взаимодействие API
  • веб-сайт, который будет использовать веб-сервис

Однако, если это слишком много работы - просто используйте удаленное взаимодействие и предоставьте необходимые методы для веб-сайта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...