!为了简化起见,我将Windows Store 应用程序(也称为 Metro 或 Modern UI)称为“应用程序”,将常见的桌面应用程序称为“应用程序”!
我相信对于已经在市场上建立应用程序的开发人员来说,这仍然是关于应用程序开发最不清楚但最重要的问题之一:如何在 Windows 8 系统上管理应用程序和应用程序之间的通信?(请不要就原则展开辩论 - 有很多用例确实需要这样做!)
在过去的几天里,我基本上阅读了数百篇文章,但仍然不清楚如何从第一次开始就继续这样做。主要是因为我发现了几个相互矛盾的信息。带着我的问题,我想从最终的 Windows 8 可能性的角度重新解决这个问题。
给定情况:
- 应用程序和应用程序在同一系统上运行
- 1:1交流
- 应用程序是本机的(用 Delphi 编写)
- 管理员或如果需要,甚至系统权限可用于应用程序
- 在 90% 的用例中,应用程序请求应用程序执行一个操作并接收一些文本结果。该应用程序不应该因此而被留下或冻结!
- 在 10% 的情况下,应用程序执行一个操作(由某个事件触发)并通知应用程序 - 结果可能是:在磁贴上或在已经运行和活动的应用程序中显示某些信息,或者如果可能运行应用程序/将其带到前台.
现在“简单”的问题是,如何实现这一目标?
- 现在实际上允许本地网络服务器访问吗?(我相信这不是很长时间,但现在是自最终版本以来)
- WCF?(-> 显然MS 不再推荐了)
- 本地 REST/SOAP 服务器上的 HTTP 请求?
- WinRT 联合 API?(另一种带有 RSS/atom 响应的 Web 服务访问形式)
- WebSockets(如MessageWebSocket)?
- 其他形式的 TCP/IP 通信?
- 为输入和输出共享一个文本文件(实际上只是想到这会很痛苦,但至少这是 MS 无法阻止的可能性......)
- 命名管道是不允许的,对吧?
SO上有一些关于这个主题的讨论,但是其中大多数都不再是最新的了,因为MS在发布Windows 8的最终版本之前发生了很多变化。我不想混淆新旧信息为我和所有其他 Windows 应用程序和应用程序开发人员找到此问题的明确且最新的答案。谢谢!