2016-04-06 2 views
2

У меня проблема, у меня мало опыта работы на C#, поэтому я провел много исследований, и я застрял.Связь между двумя приложениями C#

Я должен сделать два приложения C#, первые приложения - это формы окон, второй - в фоновом режиме, так что первые приложения будут точкой продаж (POS), которая должна связываться с фоном приложения для информации как (продукты, клиенты и т. д.) и отправлять данные, поэтому не хотите использовать веб-службу для таких проблем, как тайм-ауты, поэтому любой может помочь мне с некоторой идеей выполнить эту задачу?

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

+0

WCF сервисы могут использовать MSMQ, чтобы убедиться, что сообщения не заблудиться. Поэтому не исключайте слишком быстро веб-службы –

ответ

2

Существует множество способов осуществления межпроцессного общения. Поскольку вопрос является таким общим, я укажу несколько более распространенных способов.

  • Фоновый процесс может быть службой Windows, которая обновляет БД и POS-системы, запрашивая БД, чтобы получить то, что им нужно. Даже если фоновый процесс читается из одного и того же БД, у вас может быть отдельная таблица, в которой «готовая» информация готова для части POS. Теперь вы можете использовать файл вместо БД для хранения этих законченных результатов, но большинство людей предпочитают БД.
  • Вы можете использовать канал WCF для установления связи между частью POS и фоновым процессом.
  • Вы можете преобразовать фоновый процесс в веб-службу и позволить вашей части POS общаться с использованием XML. Я не думаю, что проблема с тайм-аутом должна быть проблемой. Вам нужно будет лучше объяснить, какой тайм-аут заставляет вас не использовать эту опцию.
  • Вы можете преобразовать всю деталь в веб-сайт, и POS будет просто браузером, тогда
  • Вы можете использовать автобус, например Tibco или MQ, для передачи данных.
  • Или вы можете пойти старомодным способом сокетов TCP.

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

1

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

RabbitMQ является популярной рамкой:. https://www.rabbitmq.com/

(обратите внимание, что RabbitMQ (и другие готовые встроенные рамки) иногда может быть сложным для новых программистов, как они работают очень много случаев использования Однако основная концепция написания в очередь из одного приложения, и чтение из очереди в другом приложении действительно является ключевым здесь ... не стесняйтесь реализовать небольшую полезность своего собственного опыта обучения, но я рекомендую уже существующую структуру, re удобно с использованием таких)

0

Если вы не хотите использовать веб-службы (на основе протокола SOAP), можно попытаться использовать Web API.Таким образом, вы можете построить интерфейсы на основе отдыха с json (потоковая передача json между компьютерами быстрее, чем потоковая передача xml).

Я думаю, что следующая ссылка может быть полезна для Вас:

http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/using-web-api-with-aspnet-web-forms

 Смежные вопросы

  • Нет связанных вопросов^_^