4

我们正在修复重构架构应用程序,并且正在讨论是否可以使用UWP而不是普通的WPF应用程序。UWP应用程序与Windows服务通信

我们的应用程序需要能够访问整个文件系统和所有系统资源。这是一个问题,因为UWP应用程序是沙盒。但是,我们正在努力,试图接近它以这种方式来绕过这个问题:

  • Windows服务 - >运行系统在任何时候都。这将在访问和修改系统资源时承载核心功能。

  • UWP应用 - >由于UWP是沙箱中,UWP应用将转发所有的系统请求的Windows服务,这将做首当其冲的所有工作 ,只是返回输出。

我们可以简单地这样做WPF中,但我们希望以利用一些新的Windows 10的核心使用功能UWP WPF缺乏如现场砖和柯塔娜。

您认为我们的方法可行吗?我们的一个不确定因素是我们如何才能让UWP应用程序与Windows服务进行通信 - 我们已经研究了SignalR和Desktop Bridge之类的事情,但不确定哪些可能是我们场景中的最佳方法。

谢谢!

回答

1

您认为我们的方法可行吗?

我们不能在UWP应用程序中直接使用Windows服务。为了使Win32应用程序和UWP应用程序之间的IPC成为可能,这里有什么可以帮助的是使用新的Capability <rescap:Capability Name="runFullTrust" />,并且它启用由FullTrustProcessLauncher API启动的Win32应用程序来实现上层应用程序安全上下文来使用WinRT API。但是,正如你在这里看到rescap,这意味着这个UWP应用程序不能在Store中发布。您可以参考官方AppService Bridge Sample。您可以尝试首先创建一个传统的桌面应用程序,该应用程序在构建此应用程序(不运行它)后使用App service(可与WPF和UWP应用程序通信,而不是传统的Windows服务)并使用WinRT API,.exe文件将被生成。但是这个应用程序无法运行,因为它使用WinRT API,那么你可以创建你的UWP应用程序来使这个桌面应用程序可执行。

我们研究过SignalR和Desktop Bridge之类的东西,但不确定哪些可能是我们场景的最佳方法。

所以我认为桌面桥可能是最好的方法。

相关问题