Microsoft Project Rome: Cross-Device-Experience für .NET-Entwickler

Project Rome ebnet den Weg von Gerät zu Gerät
Keine Kommentare

Microsofts Project Rome ist eine Plattform für Entwickler, die eine nahtlose Verbindung zwischen Apps auf verschiedenen Devices herstellen wollen. Vorgestellt auf der Build im April 2016, ist Project Rome seit dem Anniversary Update 1607 einsatzfähig. Mit der UWP und dem Remote Systems API können die Devices über die Cloud, Wi-Fi oder Bluetooth vernetzt werden.

Project Rome: Ein Codename der modernes Roaming und die Vernetzung des antiken Rom vereint – denn dorthin führen bekanntlich alle Wege. Microsoft will für eine Multi-Device-Experience werben, die nicht lokal gebunden ist. Die APIs zielen auf die von Microsoft getaufte „Continue App Experiences“-Funktion. Mit dieser kann potenziell alle Heimelektronik vom Windows 10 Desktop oder Mobile (hier auch iOS und Android) über die Xbox und das Surface Hub bis hin zur HoloLens miteinander verknüpft werden. Verwendet wird eine Kombination aus App-Launching-Protocols und Communication-Payloads. Den Apps wird für eine Remote-Connection eine Ausführungsschicht in der Cloud hinzugefügt. Voraussetzung ist natürlich immer die Unterstützung des neuen APIs auf der jeweiligen Plattform und dem Device.

Die Ursprünge von Project Rome

Eben noch auf der Build 2016 von Microsoft angekündigt, lässt sich im Insider-Build 14316 die Umsetzung des Konzepts herauslesen. Ein Fokus lag auf der Erweiterung der Cortana-Cross-Device-Features, bei denen Microsoft eine „perfect sync across all the devices where you use Cortana“ ankündigte.

Stets verbunden sein, Wartezeiten vermeiden und nichts verpassen, lautete die Devise des damaligen Anniversary Updates, mit dem die in der Preview angekündigten Features freigeschaltet wurden. Ausgereift waren die Features da jedoch noch nicht.

Microsoft verlautbarte demgemäß:

„This makes retaining users a tough problem to solve Project Rome enables the app developer to pivot on the devices, apps, platforms (Windows, Android, iOS) and the cloud. App developers can design their apps around the user, thus empowering human centric experiences that evolve with an understanding of the individual’s needs “

Eine umfangreiche Einführung in Microsofts Ideen und Konzepte zu Project Rome liefert das folgende Channel 9-Video:

User und die Cross-Device-Experience

Microsoft setzt für Project Rome voraus, dass die meisten User, die über mehrere Geräte verfügen, „eine Aktivität auf einem Gerät beginnen und sie auf einem anderen Gerät abschließen“, wie es Tyler Whitney von Microsoft umschreibt. „Dazu müssen Apps geräte- und plattformübergreifend sein“, ergänzt er.

Die technische Basis

Die technischen Ursprünge von Project Rome gehen auf die bei der Xbox-SmartGlass-App verwendeten Technologie zurück, bei der der Bildschirm eines zusätzlichen Gerätes als zweiter Xbox-Bildschirm fungiert.

Windows 10 eignet sich besonders für den Ansatz, weil hier die Apps eine gemeinsame Codebasis auf allen Plattformen mitbringen. Auf der Grundlage des UWP-App-Designs soll eine für alle Devices die gleiche UX gewährleistet werden. Entwickler benötigen für alle Windows 10-Devices (PCs, Tablets, Smartphones usw.) nur einen API-Satz, ein App-Paket und einen Speicher. Die Apps werden damit für Gerätefamilien entwickelt, für die es eine allgemeine API-Oberfläche gibt. Microsoft hat mit Project Rome zusätzlich einen für Windows 10 neuen App2App-Contract-Layer mitgeliefert. Dieser soll die Kommunikation verschiedener Windows 10 Devices untereinander ermöglichen.

 Über die Grenzen von Windows 10 hinaus

Für Microsoft und den Program-Manager von Project Rome, Cam Scott, steht fest:

„ Project Rome breaks down barriers across all Windows devices and creates experiences that are no longer constrained to a single device. The Remote Systems API available in Windows 10 is a key piece of Project Rome that provides exposure of the device graph and the ability to connect and command – this is fundamental for driving user engagement and productivity for applications across all devices.”

Auch die Verbindung funktioniert anders als bei Apples Handoff nicht nur lokal über Bluetooth oder Wi-Fi, sondern auch remote über das Internet. Ähnlich wie bei Microsofts PowerPoint oder Apples Keynote können Daten remote beispielsweise vom Laptop auf ein Smartphone übertragen werden. Mit Project Rome hat Microsoft also ein API zur Verfügung gestellt, mit dem diese Übertragung universal für jede App programmiert werden kann. Übergeordnetes Ziel dabei sei es, die Protokollhürden unterschiedlicher Plattformen zu überwinden und deren Kommunikation zu verbessern.

Dadurch, dass mit Project Rome sowohl lokale als auch Remote-Connections unterstützt werden, gibt es für die Entwickler einiges zu tun. Entwickler, die mit Windows 10 bereits erfahren sind, werden es leichter haben. Project Rome erweitert nämlich bereits vorhandene Windows-10-APIs.

Zunächst wurde spekuliert, dass sich an Project Rome die „Windows TaskContinuity“ mit dem Codenamen Project OceanView anschließen würde. Das Ziel: Die Features von Project Rome sollten nicht auf Windows-10-Devices beschränkt bleiben. So hatte Microsoft im April das Release eines Software Development Kids angekündigt, das die Kompatibilität von Project Rome auf iOS- und Android-Devices erweitern soll. Mit den Remote Systems APIs scheint genau das umgesetzt worden zu sein.

Remote Systems APIs mit Windows 10 Version 1607

Seit der Windows 10 Version 1607 ist es soweit. Mit den eingeführten Remote Systems APIs ist es nunmehr möglich, Apps zu erstellen, die es dem User erlauben einen Vorgang auf einem Device zu starten und auf einem anderen zu vervollständigen. So lassen sich die App-Messaging-APIs dazu nutzen, einen Nachrichtenaustausch zwischen zwei Devices herzustellen. Eine programmierte Control-App könnte beispielsweise eine Fernbedienung für ein anderes Device sein, eine Companion-App könnte alternative Informationen über ein auf einem Device laufenden Programm liefern.

Bei Implementierung der Remote-Devices ermöglicht die RemoteSystemWatcher-Klasse die Kommunikation der einzelnen Devices untereinander und setzt ein, sobald das Control-Panel gestartet wird. Hier wird über RequestAccessAsync() bestätigt, dass es ausgewählten Devices (wie dem User-Control-Panel) – RemoteSystemAdded – erlaubt ist, zu den Remote-Devices hinzugefügt zu werden.

Der Start eines Remote-Devices funktioniert mit dem RemoteLauncher.LaunchUriAsync-API. Zuvor wird noch ein RemoteSystem-Object in ein RemoteSystemConnectionRequest() umgewandelt. Für nähere Informationen verweisen wir auf den Artikel von Cam Scott, der die wichtigen Details sehr anschaulich beschrieben hat und im Netz schnell positiv aufgenommen wurde.

Remote Systems für Project Rome

Screenshot von: blogs.windows.com

Wer selbst mit Project Rome und den Remote-Systeme entwickeln möchte, kann sich dafür bei GitHub bedienen und beteiligen. Eine ausführliche Einführung und Dokumentation des Themas stellt das Windows Dev Center zur Verfügung.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Abonnieren
Benachrichtige mich bei
guest
0 Comments
Inline Feedbacks
View all comments
X
- Gib Deinen Standort ein -
- or -