Hintergrund
Aus Entwicklersicht ist das Hauptverkaufsargument von Windows 10 die neue Universal * Windows Platform (UWP) .
* Wobei "Universal" wirklich "Universal für alle Geräte unter Windows 10" bedeutet und nicht "Universal für Geräte, auf denen nicht nur Windows 10, sondern auch Windows 8.1 und möglicherweise Windows 7 ausgeführt werden". Wenn Sie also eine UWP-App erstellen, erstellen Sie eigentlich nur eine "Windows 10-App". UWP Apps werden nicht auch unter Windows 8.1 und Windows Phone 8.1 - Geräte laufen, dh sie überhaupt nicht rückwärtskompatibel sind.
Ab dem dritten Quartal 2015 ist Windows 10 für PCs und IoT-Geräte verfügbar . Es wird noch einige Monate dauern, bis Windows 10 Mobile für die Öffentlichkeit freigegeben wird, aber wahrscheinlich nicht mehr als ein Jahr. Dies bedeutet, dass Windows Phone 8.1 noch eine Weile bestehen bleibt.
Frage
Ich beginne mit der Entwicklung einer Windows Phone-App und plane, sie im nächsten Monat zu veröffentlichen, da es sich um eine recht einfache App handelt. Da Windows 10 Mobile nicht in Kürze verfügbar sein wird, geschweige denn Geräte auf der ganzen Welt, die aktualisiert werden, muss ich zunächst auf Windows Phone 8.1 zugreifen. Da es sein wird , nicht jedoch, dass lange bevor Windows 10 Mobil rollt aus, ich frage mich , ob es wäre klug, meine Lösung für die Bereitstellung von Windows 10 UWP vorbereiten sowie Windows Phone 8.1 (was auch mir erlauben wird, weiterhin 8.1 unterstützen, solange ich es brauche).
Ich sehe, dass ich ein UWP-Projekt und ein 8.1-Projekt in derselben Projektmappe gruppieren und Quelldateien und Assets über ein freigegebenes Projekt freigeben kann, wie dies mit der Windows 8.1 Universal-Vorlage in Visual Studio möglich ist. Bin ich auf dem richtigen Weg? Wenn ja, gibt es zusätzliche Richtlinien, die ich befolgen sollte, um sicherzustellen, dass alles (einschließlich XAML, da ich im Idealfall die gleiche oder zumindest ähnliche Benutzeroberfläche auf beiden Plattformen haben möchte) tatsächlich auf beiden Plattformen korrekt funktioniert, wobei eventuelle Inkongruenzen berücksichtigt werden?
Alternativ könnte ich mir vorerst keine Sorgen um Windows 10 Mobile machen und mit einem 8.1-Projekt beginnen und es später auf UWP migrieren , aber ich müsste immer noch beide Versionen meiner App warten, da ich nicht vorhabe, 8.1 zu verwerfen Benutzer sofort. In diesem Fall muss ich mich noch um die Feature / XAML-Parität kümmern.
Antworten:
Wie Sie in einem Ihrer Kommentare sagen, können Sie dies am besten erreichen, indem Sie ein gemeinsames Projekt verwenden und mehrere Köpfe hinzufügen. In Ihrem Fall ein Windows Phone 8.1-Kopf und ein UWP-Kopf. Diese Position wurde auch in einer MVA von Jerry Nixon und Andy Wigley (ich denke, das ist es, aber es wurde seitdem aktualisiert) im Abschnitt über das Portieren von 8.1-Apps auf uwp zum Ausdruck gebracht.
In Ihrem freigegebenen Projekt müssen Sie möglicherweise Anweisungen zur bedingten Kompilierung verwenden, um zwischen Code zu unterscheiden, der in uwp und Telefon 8.1 ausgeführt wird. (Wie beim Erstellen von universellen Windows 8.1 / Phone 8.1-Apps)
quelle
Abhängig davon, wie Windows-spezifisch Ihre App sein muss, können Sie eine Plattform wie Xamarin verwenden, mit der Sie nicht nur für Windows, sondern auch für iOS und Android in derselben Codebasis schreiben können.
quelle
Aus meiner Erfahrung: Es lohnt sich, einige Helfer / Logik / etc in PCL-Bibliotheken zu platzieren. Anschließend können Sie zwei Projekte (für UWP bzw. WP8) erstellen, die PCL ohne Änderungen verwenden können. Sie können auch Dienste freigeben, Modelle und Modelle anzeigen (mit nur wenigen #if-Zeilen für bedingte Kompilierung).
Das einzige, was es NICHT wert ist, geteilt zu werden, sind Mitarbeiter, die mit der Benutzeroberfläche zu tun haben, da zu viele Dinge gewechselt / konditioniert werden müssen (daher ist es viel einfacher, separate Layouts für jedes UWP und WP8 zu erstellen, selbst wenn sie praktisch gleich sind).
PS Ich habe das für UWP und WP8.1 Silverlight gemacht
quelle