关于这两个平台( ASP.NET和桌面应用程序)之间的数据交换,我(也许不是ups)有一个简单的问题(最好的选择是WinForm,但也可以是控制台)。
我心中的计划:
我在虚拟COM上嵌入了系统STM32,所以我只想从这里发送/获取数据,从服务器发送/获取订单
通过邮购等方式发送订单很容易,我知道..但!我不知道如何在没有用户干扰的情况下向我的桌面应用程序发送订单。
我只在后台打开这个应用程序,我所说的“只用于共享端口”。
发布于 2018-10-05 13:42:20
您可以使用许多其他方法来完成这一任务。作为一个通用的领域,这被称为进程间通信(IPC)。
从所有方法中,我发现将web服务器嵌入到Winforms应用程序中是最灵活和最简单的解决方法,但请记住,这是我个人的选择。不过,我将尝试在这篇文章中给出其他可能的解决方案:
1.在Winforms应用程序中嵌入服务器
这是我个人的选择。您可以通过搜索有关将HTTP服务器嵌入Winforms的更多信息来深入本主题,但是下面的一些链接可能会给出一个方向:
使用这种方法,您将得到一个完整的AspNet应用程序和一个与桌面代码直接集成的轻量级web应用程序。您将像集成两个web服务器一样集成这两个服务器:使用HTTP调用等。
2-命名管道和TCP
命名管道非常有趣,但您应该谨慎地选择它们还是TCP通信,因为它们各有优缺点。您可以在这里找到一个名称管道/ TCP的示例:https://github.com/jacqueskang/IpcServiceFramework
有关命名管道x tcp利弊的更多信息,我发现这篇文章非常有用:http://saurabhsinhainblogs.blogspot.com/2015/09/what-is-difference-between-tcp-ip-and-Named-Pipes.html
3-消息队列
我就像一颗银弹。一颗又大又重的银弹,但仍然是一颗银弹。这在几乎所有类型的进程间通信中都很好,因为您将有第三个参与者负责接收和发送消息,并且两个播放器(服务器/客户端)都会监听或发布到这个队列。您可以检查NetMQ、RabbitMQ、MSMQ、RestBus、ActiveMQ、ZeroMQ,或者甚至可以基于Server构建自己的数据库(不过,除非您确实知道自己在做什么,否则我不建议这样做)。
4-其他
您有套接字、文件(具有自动监视物理文件系统)和许多其他可能的方法来执行集成而无需用户交互。即使我在这里提出了另外20种方法,也很可能会错过其他的一两种方法。只需搜索AspNet Core Interprocess Communication,您就会发现有关这方面的大量资源:)
其他一些有用的资源:
这篇文章有一个可靠的liks编译,它将对您希望测试的每种IPC方法都有帮助:https://weblogs.asp.net/ricardoperes/local-machine-interprocess-communication-with-net。
https://stackoverflow.com/questions/52665365
复制相似问题