我有一个WPF应用程序,我希望用户能够部署到Web服务器,以便他们可以通过Web浏览器查看更新。
我计划构建某种类型的ASP.NET解决方案,我希望它与正在运行的WPF应用程序通信,并从中获取实时数据,以便可以通过IIS向用户提供。
我的WPF应用程序可以实时将对象发送到ASP.NET应用程序吗?如果是这样的话?我应该关注哪种技术?
答案 0 :(得分:1)
我的WPF应用程序可以实时将对象发送到ASP.NET应用程序吗?
是
我应该关注哪种技术?
您可以使用许多技术。由于您只使用.NET技术,我会选择Windows Communication Foundation。
看看here。
此外,您还可以创建RESTful服务。在这种情况下,一个替代方案是WebApi。
答案 1 :(得分:0)
是WCF(Windows Communication Foundation)是关键。但是有几种策略..
(1)一种解决方案是使用 RSS feeds 将数据导入ASP.NET应用程序:使用WCP客户端从WPF应用程序上传RSS feed内容。这应该连接到创建RSS提要的WCF服务。 Studio 2017中有一个名为"联合服务库"的RSS源服务器的WCF项目模板。您将需要ASP端的RSS客户端模块,并让客户订阅RSS源以报告新数据。
(2) 消息传递也是一个选项:我更喜欢WCF + WebSocket将数据实时传输到ASP客户端。
假设您有WPF应用程序用户生成的某种消息(例如序列化对象)。 WPF应用程序可以使用WCF客户端,连接到WCF服务,该服务将数据排队以发布WebSocket或多个Websockets。
您的网页连接到WebSocket,WebSocket将不断为其提供新数据。该接口可以在JavaScript中使用WebSocket在视图中实现以获取数据。
如果您想对控制器级别的数据执行更多操作,控制器可以打开WCF客户端直接查询更新(轮询)并使用Ajax实时更新html客户端,执行数据库更新等等。
(3)您可以考虑的替代设置是 Kafka消息传递。 WPF用户的所有输入都将在Kafka中持久保存并在故障转移群集中得到保护。客户端可以向Kafka轮询新消息。 WPF应用程序将在Kafka主题中推送新数据,ASP应用程序可以使用Ajax或其他拉动策略将新的Kafka内容添加到网页客户端。注意:我还没有在ASP.NET上下文中测试Confluent Kafka C#客户端。
答案 2 :(得分:0)
我建议使用webapi而不是WCF Windows Communication Foundation
,因为webapi易于使用,您可以直接使用post, get
请求向webpi控制器发出http
请求。
因此您可以使WPF应用程序和Web应用程序使用相同的webapi。