我有一个问题,在C#方面经验不多,所以我做了很多研究,而且我被卡住了。
我必须制作两个应用程序C#,第一个应用程序是Windows窗体,第二个应用程序在后台运行,因此第一个应用程序将是一个(POS)销售点,需要与应用程序背景进行通信以获取信息(产品,客户等......)并发送数据,所以不想使用Web服务来解决超时等问题,所以任何人都可以帮我一些想法来执行这项任务吗?
值得一提的是,后台应用程序只是一个,而与之通信的POS应用程序将会很多(n个应用程序)。
答案 0 :(得分:2)
有许多方法可以进行进程间通信。由于这个问题非常普遍,我将指出一些更常见的方法。
最优选的方式通常是web-servcie或web-site方式,具体取决于您的约束条件。
答案 1 :(得分:1)
通常,您将使用消息队列来执行此类操作。它们是确保关注减少和跨应用程序耦合的清晰分离的一个组件,旨在接收某些发布者的消息(从而使发布者免除任何进一步的责任),并将消息推送给某个订阅者。
RabbitMQ是一个流行的框架:https://www.rabbitmq.com/
(请注意,RabbitMQ(以及其他现成的框架)对于新的应用程序程序员来说有时会令人生畏,因为它们处理了大量的用例。但是从一个应用程序写入队列并从队列中读取队列的基本概念另一个应用程序真的是这里的关键...随意实现自己的小实用程序作为学习体验,但如果你习惯使用它,我建议你预先建立一个框架。
答案 2 :(得分:0)
一种方法是使用命名管道在不同程序之间进行此类通信。
How to: Use Named Pipes for Network Interprocess Communication
答案 3 :(得分:0)
如果您不想使用Web服务(基于soap协议), 你可以尝试使用web api。通过这种方式,您可以使用json构建基于休息的接口(计算机之间的json流比xml流更快)。
我认为以下链接对您有用: