Связь двух приложений в одном устройстве - PullRequest
1 голос
/ 17 мая 2019

Есть 2 приложения, которые должны общаться друг с другом. Они оба работают на одном компьютере.

  1. Основное применение (C #)

  2. Вспомогательное приложение (C #) -> запущено из основного приложения

Вспомогательное приложение изменит некоторые данные, используемые / содержащиеся в основном приложении. Может ли вспомогательное приложение быть микросервисом? (не знаком с микросервисами, но я видел это при проверке в сети)

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

1 Ответ

1 голос
/ 17 мая 2019

Может ли вспомогательное приложение быть микросервисом? (не знаком с микросервисами ...

Конечно. «Микросервисы» - это самый последний термин, который описывает распределенные сетевые вычисления на основе компонентов . Он проходит долгий путь до дней (и, возможно, дальше) распределенных COM (DCOM) и Corba ; COM + и, наконец, сервис-ориентированная архитектура (SOA). WCF использовал SOA в качестве лучшей практики . На практике единственное реальное различие между SOA и микросервисами состоит в том, что последние склонны принимать HTTP-REST-JSON в качестве транспорта / API / полезной нагрузки, тогда как генерация SOA нейтральна для транспорта / полезной нагрузки, но обычно использует SOAP.

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

Технически, вы уже используете микросервис / SOA.

Мне просто интересно, если это хорошее решение

Нет . Проблема с SOA / микросервисами на одном компьютере состоит в том, что они очень болтливы; иметь высокие накладные расходы; и их полезные сообщения довольно многословны. И SOAP, и REST по умолчанию используют текстовые сообщения (соответственно XML и JSON) (что больше по сравнению с двоичным файлом).

Если и клиент, и сервер находятся на одном и том же компьютере , лучше всего использовать прямой named-pipe и избегать WCF / REST. Связь по именованным каналам является двоичной и поэтому очень компактна ; именованные каналы работают в режиме Kernal, это означает, что он очень быстрый и в качестве дополнительного бонуса при локальной связи обходит сетевой уровень (в отличие от TCP, который будет даже для LOCALHOST).

...