4

우리는 응용 프로그램을 다시 설계하고 일반 WPF 응용 프로그램 대신 UWP를 사용할 수 있는지 여부를 논의하고 있습니다.UWP 응용 프로그램 Windows 서비스와의 통신

우리의 응용 프로그램에는 전체 파일 시스템 및 모든 시스템 자원에 액세스하는 기능이 필요합니다. 이것은 UWP 응용 프로그램이 샌드 박싱되어 있기 때문에 문제가됩니다. 그러나, 우리는 이러한 방식으로 접근을 시도하여 해당 문제를 우회하려고 :

  • Windows 서비스를 -> 항상 시스템에서 실행. 시스템 리소스를 액세스하고 수정하는 경우 핵심 기능을 호스팅합니다.

  • UWP 응용 프로그램 -> UWP은 샌드 박스되기 때문에, 정면의 모든 작업 을 그냥 출력을 반환합니다 Windows 서비스로 모든 시스템 요청을 전달합니다 UWP 응용 프로그램.

우리는 단순히 WPF에서이 작업을 수행 할 수 있습니다,하지만 우리는 몇 가지 새로운 Windows 10 코어를 활용하기 위해 UWP를 사용하고자는 WPF가 라이브 타일과 마이크로 소프트 코타나으로 부족 있습니다.

Google의 접근 방식은 실현 가능하다고 생각하십니까? 우리의 불확실성 중 하나는 UWP 앱이 Windows Service와 통신 할 수있는 방법입니다. 우리는 SignalR 및 Desktop Bridge와 같은 것을 조사했지만 시나리오에 가장 적합한 방법이 무엇인지 모릅니다.

감사합니다.

답변

1

Google의 접근 방식은 실현 가능하다고 생각하십니까?

UWP 앱에서 Windows 서비스를 직접 사용할 수 없습니다. Win32 응용 프로그램과 UWP 응용 프로그램 사이에 IPC를 만들려면 여기에 새로운 기능 <rescap:Capability Name="runFullTrust" />을 사용하는 것이 도움이 될 수 있으며 FullTrustProcessLauncher API로 시작되는 Win32 응용 프로그램을 사용하여 WinRT API를 사용하는 고급 응용 프로그램 보안 컨텍스트를 만들 수 있습니다. 하지만 여기에 rescap이 표시되면 UWP 앱을 스토어에 게시 할 수 없다는 의미입니다.

공식 AppService Bridge Sample을 참조 할 수 있습니다. 먼저이 앱을 빌드 한 후 (실행하지 마십시오) App service (전통적인 Windows 서비스가 아닌 WPF 및 UWP 앱과 통신 할 수 있음) 및 WinRT API를 사용하는 전통적인 데스크탑 앱을 만들 수 있습니다. 생성 될 수 있습니다. 하지만 WinRT API를 사용하기 때문에이 앱을 실행할 수 없습니다. 그런 다음 UWP 앱을 만들어이 데스크톱 앱을 실행 가능하게 만들 수 있습니다.

우리는 SignalR과 Desktop Bridge 같은 것을 살펴 보았지만 어떤 시나리오가 가장 적합한 지 확신 할 수 없습니다.

그래서 데스크탑 브리지가 여기있는 최상의 방법 일 수 있습니다.