Windows 8中的Metro应用程序如何与同一台计算机上的后台桌面应用程序通信?
Windows 8中的Metro应用程序如何与同一台计算机上的后台桌面应用程序通信?
在这种情况下,您的UI前端使用Windows 8的新Metro风格的应用程序构建,并希望它与在同一台本地计算机上运行的.NET应用程序(例如Windows服务应用程序)通信。
Metro应用程序和桌面应用程序之间有哪些进程间通信形式可用?
感谢Visual Studio团队的Pavel Minaev,在评论中提供了一些初始信息,如下所述:
根据Martyn Lovell的说法,没有任何特定的机制可以用于此目的,并且有些特定于此目的的机制是有意受到限制的。例如,没有命名管道,也没有内存映射文件。有套接字(包括服务器套接字),但在连接到本地主机时,您只能连接到相同的应用程序。您可以在共享的“已知文件夹”(文档,图片等)之一中使用普通文件,但这是一种相当粗略的方法,必须轮询,并且对用户可见。--Pavel Minaev 在 这个问题上发表评论
因此,如果正常方法失败,我在考虑使用Web服务或读/写数据库以获取某种形式的通信,这两种方法都感觉过于复杂,因为进程在同一台计算机上运行。
我在尝试什么,这有意义吗? 我可以看到Metro应用程序需要成为正在运行于桌面上的现有服务的前端UI。 还是最好使用WPF作为运行在桌面上的前端UI(即非Metro应用程序)?
在我参加的一个//build/会议的最后,有很多类似这样的问题。执行一些大局观会话之一的Aleš Holeček从观众中站起来处理它们。即使您不是C++开发人员,也可以下载该会话并观看Q&A。 http://channel9.msdn.com/Events/BUILD/BUILD2011/TOOL-789C
Metro应用程序不能指望桌面应用程序或服务已安装在计算机上。由于可以随时暂停,因此桌面应用程序不能指望Metro应用程序运行。您需要开始以不同的方式思考。听Aleš讲解这一点。