Introducing the Windows Device Portal Wrapper project
With the release of the Windows 10 Anniversary Update came a new set of tools: the Windows Device Portal. Device Portal is a small web server baked into every Windows device that you can enable once you’ve turned on Developer Mode. We built Device Portal as the starting point for a new generation of diagnostic tooling for Windows – tools that work on all your devices, not just your desktop.
We recently released our Device Portal Wrapper project on GitHub and have now added it to NuGet. Our goal with the wrapper is to make it easy to build new tools on top of Device Portal. It wraps the Device Portal REST APIs in a managed C# layer, providing an object model for responses and an easy way to connect with the Device Portal on your device.
Using your browser, you can access a variety of tools hosted on the device via the Device Portal Wrapper, each one a webpage backed by documented REST APIs. These tools include:
- App installation, launch, and file management
- Performance metrics, both all-up and per-process
- Crash and live dump collection
- ETW collection, both streaming and via WPR profiles
- Networking information (ipconfig and profile management)
- Platform-specific tools like Mixed Reality Capture on the HoloLens
- More tools are being added, all the time
What can I use the wrapper for?
Currently, the wrapper supports the APIs that Device Portal users use most such as app management, performance metrics and the Isolated Storage explorer. Additionally, most of the device-specific features are supported, like Mixed Reality Capture (record video of the real world + Holograms) on HoloLens and screenshots on the Xbox. For an example of how you can build with the wrapper, you can check out the sample apps included in the repo:
Today the library can be used with either .NET 4.5.2+ or UWP. It can target any device operating on the Windows 10 Anniversary Update, as well as earlier Windows releases (10586) on IoT and HoloLens.
Coming up next
There are still a couple of REST APIs left to implement for our 1.0 release, which we’re currently working on. For 1.0, the wrapper will support all APIs across Core and each device family. Looking ahead, we want to support .NET Core so that you can use the wrapper from Linux as well.
In the future, the Device Portal team will be working to keep the wrapper up to date with new Device Portal REST APIs. We’re working hard to add new tools and features to Device Portal all the time, and we want to make sure that Wrapper stays up to date as well.
Device Portal <3 Open Source
The UI in Device Portal was made possible by SlickGrid, JQuery and Smoothie, among other great OSS libraries, so we’re no strangers to the awesome power of open source. One of our major design considerations in Device Portal was the use of a well-supported, documented protocol. We chose REST as every major programming language has an abundance of libraries to support communicating over REST with a server. And pretty much as soon as Device Portal was released, we saw enterprising developers building apps and tools using those REST APIs. So, we figured we’d help out and try to save everyone some time – thus the Wrapper project is MIT-licensed, and definitely accepting pull requests!
We can’t wait to see how developers use the Wrapper project and where they want to take it. We love feedback, so always feel free to submit a GitHub Issue with any questions or ideas you might have. If you have any feedback for Device Portal itself, we keep a close eye on our UserVoice – we want to know what tools would make your life easier, so let us know.
Happy hacking!
Download Visual Studio to get started!
The Windows team would love to hear your feedback. Please keep the feedback coming using our Windows Developer UserVoice site. If you have a direct bug, please use the Windows Feedback tool built directly into Windows 10.
Source: Introducing the Windows Device Portal Wrapper project