dod*_*der 119 c# wpf winapi windows-8 windows-runtime
在这种情况下,您使用新的Metro风格的应用程序为Windows 8构建了UI前端,并希望它与在同一本地计算机上的桌面上运行的.NET应用程序(例如,Windows服务应用程序)进行通信.
metro应用程序和桌面应用程序之间有哪些形式的进程间通信?
感谢Visual Studio团队的Pavel Minaev,他在评论中提供了一些初步信息,引用:
根据Martyn Lovell的说法,没有任何有意识的机制,可以用于它的一些机制是故意限制的.例如,命名管道不在那里,也不是内存映射文件.有套接字(包括服务器套接字),但是当连接到localhost时,您只能连接到同一个应用程序.您可以在其中一个共享的"已知文件夹"(文档,图片等)中使用普通文件,但这是一个相当粗糙的黑客,需要轮询并且对用户可见.- Pavel Minaev 就此问题发表评论
因此,我正在考虑使用Web服务或读取/写入数据库,以便进行某种形式的通信,当进程在同一台机器上运行时,这两种方式都显得过于苛刻.
我在这里尝试是否有意义?我可以看到Metro应用程序需要成为桌面上运行的现有服务的前端UI.或者将WPF用于桌面上运行的前端UI(即非城域应用程序)更好.
exp*_*ert 54
我现在将我现有的项目移植到Win8.它由Windows服务和托盘应用程序组成,它们通过NamedPipes WCF相互通信.您可能已经知道Metro不支持命名管道.我最终使用TcpBinding进行全双工连接.
这篇文章描述了支持哪些功能.
该地铁客户端可能会消耗我的WCF服务器的样本是在这里.
另请注意,您无法在Metro中使用同步WCF.您将不得不使用仅基于任务的包装器,它只是异步的.
谢谢你的问题.我对我来说是一个很好的起点:)
Kat*_*ory 38
在我参加的//构建/会话结束时,有很多这样的问题.执行其中一次大型会议的执行官阿莱什·霍尔切克(AlešHoleček)走出了观众席来处理他们.即使您不是C++开发人员,也要下载该会话并观看问答.http://channel9.msdn.com/Events/BUILD/BUILD2011/TOOL-789C
Metro应用程序无法依赖计算机上安装的桌面应用程序或服务.桌面应用程序不能指望运行Metro应用程序,因为它们可以随时暂停.你需要开始以不同的方式思考.听听Aleš这个.
ig2*_*g2r 11
请注意,使用Windows 8.1 Update,Windows Store应用程序和用C#for .NET 4.5+编写的桌面组件之间的通信现在正式支持企业方案中的侧载应用程序:
为侧面加载的Windows应用商店应用程序打破了Windows运行时组件
报价:
认识到关键业务功能和规则体现在现有软件资产中,并且企业具有各种新应用程序风格高效的方案,Windows 8.1更新包括一个名为Brokered Windows Runtime Components的新功能,用于侧载应用.我们使用术语IPC(进程间通信)来描述在一个进程(桌面组件)中运行现有桌面软件资产的能力,同时在Windows应用商店应用中与此代码进行交互.这是企业开发人员熟悉的模型,因为数据库应用程序和使用Windows中的NT服务的应用程序共享类似的多进程体系结构.
虽然最初实现这种方法有点复杂,但它允许跨Windows Store和桌面组件进行深度集成.请记住,目前它不会通过公共Windows Store认证.
归档时间: |
|
查看次数: |
39869 次 |
最近记录: |