Windows RT und c #

8

Ich muss eine Anwendung im Metro-Stil mit C # und XAML entwickeln, die auf Windows RT-Geräten und dem vollständigen Windows 8-Betriebssystem funktionieren muss. Ich darf also nur WinRT ohne .net Framework Assemblies verwenden. Ich habe diese Frage gelesen.

Microsoft Surface Tablet: Schreiben von Apps für beide Geräte?

und dieser sehr nützliche Beitrag: Ссылка , aber ich habe noch Fragen: Wenn ich sogar ein leeres Metro-Style-Anwendungsprojekt erstelle, habe ich .NET Assemblies für Metro Style. Muss ich sie selbst entfernen oder mache ich etwas falsch? Und was sollte ich tun, wenn ich etwas wie Prism fw portiert nach WinRT oder mvvvm light brauche? Erlauben sie mir, Anwendung für WOA nur auf nativem WinRT zu entwickeln? Diese Momente sind mir nicht klar.

Können Sie mir meinen Unterschied zwischen Windows RT und Windows auf ARM erklären? Muss ich nur WinRT (ohne .net) verwenden, um für WindowsRT OS zu entwickeln?

Ich hoffe, du kannst mir helfen.

    
Bogdan Dudnik 27.09.2012, 23:09
quelle

3 Antworten

14

Lassen Sie mich Ihnen so direkt wie möglich antworten. Wenn Sie ein leeres XAML / C # Windows Store-Projekt öffnen. Dieses Projekt wird unter Windows RT (ARM) und Windows 8 (x86 / x64) ausgeführt. Das liegt daran, dass es dafür gebaut wurde. Nur weil Sie das Gefühl haben, das .Net Framework zu haben, machen Sie sich keine Sorgen - Sie schreiben eine plattformübergreifende Anwendung.

Nun zu den Vorbehalten. Sie haben diese Antwort aufgrund von C # leicht gemacht. CPP-Entwickler haben nicht die gleiche Garantie, da es Kodierungsmaßnahmen gibt, die sie tun können, um diese Kompatibilität zu durchbrechen. Nicht so in C #. Wenn der Code, den Sie schreiben, in "Any CPU" kompiliert wird, dann ist das, was ich sage, korrekt.

Wenn Sie etwas einführen (wie das Bing Maps-Steuerelement), muss Ihr Build von "Any CPU" zu etwas anderem wechseln. Mit dem Windows Store können Sie drei Versionen Ihrer App unter demselben Namen eins für jede Plattform einreichen, und der Benutzer wird nie wissen, dass es mehrere gibt.

In diesem letzten Beispiel unterstützen Sie immer noch jede Plattform, Sie müssen nur drei verschiedene Builds erstellen, um das zu erreichen - Ihr Code darf sich überhaupt nicht ändern! In den meisten Szenarien unterstützen Sie sie alle außerhalb des Tors. Wenn Sie eine Bibliothek von Drittanbietern - wie MVVMlite - einführen, sind Sie immer noch in Ordnung, wenn Sie mit jeder CPU bauen können. Die meisten Bibliotheken sind so cool.

    
Jerry Nixon - MSFT 28.09.2012, 14:53
quelle
3

Es ist nicht ganz richtig zu sagen, dass Sie das .net-Framework nicht in Apps im Metro-Stil verwenden können. Genauer gesagt gibt es eine Version des .net-Frameworks, die nur für Metro-Apps verfügbar ist. Wenn Ihre Assemblys nicht mit dieser Version des .NET-Frameworks erstellt wurden, funktionieren sie nicht für Metro. Diese Version des .NET-Frameworks wird mit .86 und arm funktionieren. Es gibt auch eine Version von MVVM Light für Metro-Apps. Laden Sie es hier herunter. Siehe hier für Details zur Entwicklung für Arm.

>
  

Unabhängig davon, ob Sie JavaScript, C ++, Visual Basic oder   C #, wenn Sie eine Metro-App erstellt haben, die x86 / x64 als Ziel hat   weiß bereits, wie man einen baut, der auf ARM abzielt. Sie benutzen die gleiche Metro   Stil Projektvorlagen, die den Ausgangspunkt für das Erstellen bieten   eine App.

Bearbeiten: Wie Jerry hervorhebt, müssen Sie möglicherweise Ihre Anwendung gegen verschiedene Versionen von Bibliotheken kompilieren, wenn sie in C ++ geschrieben sind, aber das ist eine Frage von separaten Builds, anstatt zusätzliche Entwicklung zu machen.

    
mydogisbox 27.09.2012 23:18
quelle
1

Wenn Sie Ihre Bibliotheken zu tragbaren Klassenbibliotheken machen, können Sie sie für Desktop-, Metro- und Telefon-Apps (und auch für Xbox) verwenden. Sie können dies beim Starten einer Bibliothek oder in den Projekteigenschaften auswählen. Es erleichtert das Schreiben plattformübergreifender Apps innerhalb des Microsoft-Ökosystems.

    
Owen Johnson 24.10.2012 16:31
quelle