Freigeben über


Wechsel von Windows-Runtime 8.x zu UWP

Wenn Sie über eine universelle 8.1-App verfügen – unabhängig davon, ob sie auf Windows 8.1, Windows Phone 8.1 oder beides ausgerichtet ist – stellen Sie fest, dass Ihr Quellcode und Ihre Fähigkeiten reibungslos zu Windows 10 portieren werden. Mit Windows 10 können Sie eine Universelle Windows-Plattform (UWP)-App erstellen, bei der es sich um ein einzelnes App-Paket handelt, das Ihre Kunden auf jeder Art von Gerät installieren können. Weitere Hintergrundinformationen zu Windows 10, UWP-Apps und den Konzepten adaptiven Codes und adaptiver UI, die in diesem Portierungshandbuch erwähnt werden, finden Sie in der Anleitung zu UWP-Apps.

Beim Portieren werden Sie feststellen, dass Windows 10 die meisten APIs mit den vorherigen Plattformen sowie XAML-Markup, UI-Framework und Tools gemeinsam verwendet, und Sie finden alles gut vertraut. Genau wie zuvor können Sie weiterhin zwischen C++, C# und Visual Basic für die Programmiersprache wählen, die zusammen mit dem XAML-Benutzeroberflächenframework verwendet werden soll. Ihre ersten Schritte bei der Planung genau, was mit Ihrer aktuellen App oder Ihren Apps zu tun ist, hängt von den Arten von Apps und Projekten ab, die Sie haben. Dies wird in den folgenden Abschnitten erläutert.

Wenn Sie über eine universelle 8.1-App verfügen

Eine universelle 8.1-App basiert auf einem universellen 8.1-App-Projekt. Angenommen, der Name des Projekts ist AppName_81. Sie enthält diese Unterprojekte.

  • AppName_81.Windows. Dies ist das Projekt, das das App-Paket für Windows 8.1 erstellt.
  • AppName_81.WindowsPhone. Dies ist das Projekt, das das App-Paket für Windows Phone 8.1 erstellt.
  • AppName_81.Shared. Dies ist das Projekt, das Quellcode, Markupdateien und andere Ressourcen und Ressourcen enthält, die von beiden anderen Projekten verwendet werden.

In windows 8.1- und Windows Phone 8.1-Formularen bietet eine universelle Windows-App häufig dieselben Features wie denselben Code und Markup. Eine App wie dies ein idealer Kandidat für die Portierung zu einer einzelnen Windows 10-App, die auf die universelle Gerätefamilie ausgerichtet ist (und die Sie auf der breitesten Palette von Geräten installieren können). Sie portieren im Wesentlichen den Inhalt des freigegebenen Projekts, und Sie müssen nur wenig oder nichts aus den anderen beiden Projekten verwenden, da sie nur wenig oder gar nichts enthalten sind.

In anderen Zeiten enthalten die Windows 8.1- und/oder Windows Phone 8.1-Form der App eindeutige Features. Oder sie enthalten dieselben Features, aber sie implementieren diese Features mit unterschiedlichen Techniken oder unterschiedlicher Technologie. Mit einer solchen App können Sie sie zu einer einzelnen App portieren, die auf die universelle Gerätefamilie ausgerichtet ist (in diesem Fall möchten Sie, dass sich die App an verschiedene Geräte anpasst), oder Sie können es als mehr als eine App portieren, z. B. eine für die Desktopgerätefamilie und eine andere für die Mobilgerätefamilie. Die Art der Universellen 8.1-App bestimmt, welche dieser Optionen für Ihren Fall am besten geeignet ist.

  1. Portieren Sie den Inhalt des freigegebenen Projekts zu einer App für die universelle Gerätefamilie. Wenn zutreffend, retten Sie andere Inhalte aus den Windows- und WindowsPhone-Projekten, und verwenden Sie diese Inhalte bedingungslos in der App oder bedingt auf dem Gerät, auf dem Ihre App zum Zeitpunkt ausgeführt wird (letzteres Verhalten wird als adaptives Verhalten bezeichnet).
  2. Portieren Sie den Inhalt des WindowsPhone-Projekts zu einer App für die universelle Gerätefamilie. Wenn zutreffend, retten Sie andere Inhalte aus dem Windows-Projekt, indem Sie sie bedingungslos oder adaptiv verwenden.
  3. Portieren Sie den Inhalt des Windows-Projekts zu einer App für die universelle Gerätefamilie. Wenn zutreffend, retten Sie andere Inhalte aus dem WindowsPhone-Projekt, indem Sie sie bedingungslos oder adaptiv verwenden.
  4. Portieren Sie den Inhalt des Windows-Projekts zu einer App, die auf die Universelle oder Desktopgerätefamilie ausgerichtet ist, und portieren Sie den Inhalt des WindowsPhone-Projekts zu einer App für die universelle oder mobile Gerätefamilie. Sie können eine Lösung mit einem freigegebenen Projekt erstellen und weiterhin Quellcode, Markupdateien und andere Ressourcen und Ressourcen zwischen den beiden Projekten freigeben. Sie können auch unterschiedliche Lösungen erstellen und dieselben Elemente weiterhin mithilfe von Links teilen.

Wenn Sie über eine Windows 8.1-App verfügen

Portieren Sie das Projekt zu einer App, die auf die universelle oder Desktopgerätefamilie ausgerichtet ist. Wenn Sie die universelle Gerätefamilie auswählen und Ihre App APIs aufruft, die nur in der Desktopgerätefamilie implementiert sind, können Sie diese Aufrufe mit adaptivem Code schützen.

Wenn Sie über eine Windows Phone 8.1-App verfügen

Portieren Sie das Projekt zu einer App, die auf die universelle oder mobile Gerätefamilie ausgerichtet ist. Wenn Sie die universelle Gerätefamilie auswählen und Ihre App APIs aufruft, die nur in der Mobilgerätefamilie implementiert sind, können Sie diese Aufrufe mit adaptivem Code schützen.

Anpassen der App an mehrere Formfaktoren

Die Option, die Sie in den vorherigen Abschnitten auswählen, bestimmt den Bereich der Geräte, auf denen Ihre App oder Apps ausgeführt werden, und dies kann eine sehr breite Palette von Geräten sein. Auch wenn Sie Ihre App auf die Mobilgerätefamilie beschränken, bleiben Sie immer noch mit einer Vielzahl von Bildschirmgrößen zur Unterstützung. Wenn Ihre App also auf Formfaktoren ausgeführt wird, die sie bisher nicht unterstützt haben, testen Sie die Benutzeroberfläche auf diesen Formfaktoren, und nehmen Sie alle erforderlichen Änderungen vor, sodass sich die Benutzeroberfläche entsprechend an den einzelnen Formularfaktoren anpasst. Sie können sich dies an eine Aufgabe nach der Portierung oder ein Portierungsdehnungsziel vorstellen, und es gibt einige Beispiele dafür in den Fallstudien "Bookstore2 " und "QuizGame" .

Näherung der Portierung layer-by-Layer

Beim Portieren einer universellen 8.1-App zum Modell für UWP-Apps werden praktisch alle Ihre Kenntnisse und Erfahrungen übertragen, wie die meisten Quellcode und Markups sowie die verwendeten Softwaremuster.

  • Ansicht. Die Ansicht (zusammen mit dem Ansichtsmodell) besteht aus der Benutzeroberfläche Ihrer App. Im Idealfall besteht die Ansicht aus Markup, das an feststellbare Eigenschaften eines Ansichtsmodells gebunden ist. Ein weiteres Muster (allgemein und bequem, aber nur kurzfristig) ist für imperativen Code in einer CodeBehind-Datei, um UI-Elemente direkt zu bearbeiten. In beiden Fällen ist ihr UI-Markup und -Design – und sogar imperativer Code, der UI-Elemente bearbeitet – einfach portierbar.
  • Ansichtsmodelle und Datenmodelle. Selbst wenn Sie Muster für Trennungsaspekte (z. B. MVVM) nicht formal nutzen, gibt es in Ihrer App zwangsläufig Code, der die Funktion des Ansichtsmodells und des Datenmodells ausführt. Der Ansichtsmodellcode verwendet Typen in den Ui-Framework-Namespaces. Sowohl Ansichtsmodell- als auch Datenmodellcode verwenden auch nicht visuelle Betriebssystem- und .NET Framework-APIs (einschließlich APIs für den Datenzugriff). Und diese APIs sind auch für UWP-Apps verfügbar, sodass der größte Teil dieses Codes ohne Änderung portieren wird.
  • Clouddienste: Es ist wahrscheinlich, dass einige Ihrer Apps (vielleicht eine große Menge davon) in der Cloud in Form von Diensten ausgeführt werden. Der Teil der App, der auf dem Clientgerät ausgeführt wird, stellt eine Verbindung mit diesen verbindungen bereit. Dies ist der Teil einer verteilten App, der wahrscheinlich beim Portieren des Clientparts unverändert bleibt. Wenn Sie noch keines haben, ist eine gute Option für Clouddienste für Ihre UWP-App Microsoft Azure Mobile Services, die leistungsstarke Back-End-Komponenten bereitstellt, die Ihre App für Dienste aufrufen kann, von einfachen Benachrichtigungen für Live-Kachelupdates bis hin zu der Art der hohen Skalierbarkeit, die eine Serverfarm bereitstellen kann.

Überlegen Sie vor oder während der Portierung, ob Ihre App verbessert werden könnte, indem Sie sie umgestalten, sodass Code mit einem ähnlichen Zweck in Ebenen zusammengefasst und nicht willkürlich verteilt wird. Das Aufteilen Ihrer App in Ebenen wie die oben beschriebenen erleichtert es Ihnen, die App korrekt zu machen, sie zu testen und anschließend zu lesen und zu verwalten. Sie können funktionen wiederverwendbar machen, indem Sie dem Model-View-ViewModel (MVVM)-Muster folgen. Mit diesem Muster werden die Daten-, Geschäfts- und UI-Teile Ihrer App voneinander getrennt. Auch innerhalb der Benutzeroberfläche kann der Zustand und das Verhalten von den visuellen Elementen getrennt und separat getestet werden. Mit MVVM können Sie Ihre Daten und Geschäftslogik einmal schreiben und auf allen Geräten verwenden, unabhängig von der Benutzeroberfläche. Es ist wahrscheinlich, dass Sie auch einen Großteil des Ansichtsmodells und der Ansichtsteile auf allen Geräten wiederverwenden können.

Thema Beschreibung
Portieren des Projekts Sie haben zwei Optionen, wenn Sie mit dem Portierungsprozess beginnen. Eine Kopie Ihrer vorhandenen Projektdateien, einschließlich des App-Paketmanifests (für diese Option, finden Sie unter den Informationen zum Aktualisieren Ihrer Projektdateien in "Migrieren von Apps auf die Universelle Windows-Plattform (UWP)"). Die andere Option besteht darin, ein neues Windows 10/11-Projekt in Visual Studio zu erstellen und Ihre Dateien darin zu kopieren.
Problembehandlung Es wird dringend empfohlen, das Ende dieses Portierungshandbuchs zu lesen, aber wir wissen auch, dass Sie sich darauf freuen, voranzuschreiten und in die Phase zu gelangen, in der Ihr Projekt erstellt und ausgeführt wird. Zu diesem Zweck können Sie temporäre Fortschritte erzielen, indem Sie alle nicht unbedingt benötigten Code kommentieren oder verstören und dann später zurückkehren, um diese Verschuldung abzuzahlen. Die Tabelle der Problembehandlungssymptome und Heilmittel in diesem Thema kann ihnen in diesem Stadium hilfreich sein, obwohl es kein Ersatz zum Lesen der nächsten Themen ist. Sie können immer wieder auf die Tabelle verweisen, während Sie die späteren Themen durcharbeiten.
Portieren von XAML und Benutzeroberfäche Die Vorgehensweise zum Definieren der Benutzeroberfläche in Form von deklarativem XAML-Markup übersetzt äußerst gut von universellen 8.1-Apps in UWP-Apps. Sie werden feststellen, dass der Großteil Ihres Markups kompatibel ist, obwohl Sie möglicherweise einige Anpassungen an den Systemressourcenschlüsseln oder benutzerdefinierten Vorlagen vornehmen müssen, die Sie verwenden.
Portieren für E/A, Gerät und App-Modell Code, der in das Gerät selbst und seine Sensoren integriert wird, umfasst Eingaben und Ausgaben für den Benutzer. Sie kann auch die Verarbeitung von Daten umfassen. Dieser Code wird jedoch im Allgemeinen nicht als UI-Ebene oder als Datenebene betrachtet. Dieser Code umfasst die Integration mit dem Vibrationscontroller, Beschleunigungsmesser, Gyroskop, Mikrofon und Lautsprecher (die sich mit Spracherkennung und Synthese schneiden), (geo)position und Eingabemodalitäten wie Toucheingabe, Maus, Tastatur und Stift.
Fallstudie: Bookstore1 In diesem Thema wird eine Fallstudie zum Portieren einer sehr einfachen universellen 8.1-App zu einer Windows 10- und Windows 11-UWP-App erläutert. Eine universelle 8.1-App ist eine App, die ein App-Paket für Windows 8.1 und ein anderes App-Paket für Windows Phone 8.1 erstellt. Mit Windows 10 und Windows 11 können Sie ein einzelnes App-Paket erstellen, das Ihre Kunden auf einer vielzahl von Geräten installieren können, und das tun wir in dieser Fallstudie. Siehe Leitfaden für UWP-Apps.
Fallstudie: Bookstore2 Diese Fallstudie baut auf den Informationen im SemanticZoom-Steuerelement auf. Im Ansichtsmodell stellt jede Instanz der Klasse Author die Gruppe der Bücher dar, die von diesem Autor geschrieben wurden, und im SemanticZoom können wir entweder die Liste der Bücher nach Autor gruppiert anzeigen, oder wir können verkleinern, um eine Sprungliste von Autoren anzuzeigen.
Fallstudie: QuizGame Dieses Thema enthält eine Fallstudie zum Portieren eines funktionierenden Peer-to-Peer-Quizspiels winRT 8.1-Beispiel-App zu einer Windows 10- und Windows 11-UWP-App.

Dokumentation