2012-09-27 10 views
8

Ho bisogno di sviluppare un'applicazione Metro style utilizzando C# e XAML che deve funzionare su dispositivi Windows RT e sistema operativo Windows 8 completo. Quindi sono autorizzato a utilizzare solo WinRT senza alcun. Quadro framework assembly. Ho letto questa domandaWindows RT eC#

Microsoft Surface Tablet: Writing Apps for Both Devices?

e questo post molto utile: http://blogs.msdn.com/b/jasonz/archive/2012/06/12/what-you-need-to-know-about-developing-for-windows-on-arm-woa.aspx, ma io stil hanno domanda: Quando ho anche creare una vuota progetto Metro Style Application ho asseblies .NET per stile Metro. Li ho rimossi da solo o faccio qualcosa di sbagliato? E cosa dovrei fare se dovessi usare qualcosa come Prism fw ported su WinRT o mvvvm light? Mi permettono di sviluppare un'applicazione per WOA solo su WinRT nativo? Questi momenti non sono chiari per me.

Puoi spiegare il mio qual è la differenza tra Windows RT e Windows su ARM Devo utilizzare solo WinRT (senza .net) per lo sviluppo del sistema operativo WindowsRT?

Spero che tu possa aiutarmi.

risposta

14

Lascia che ti risponda nel modo più diretto possibile. Se si apre un progetto XAML/C# Windows Store vuoto. Tale progetto verrà eseguito su Windows RT (ARM) e Windows 8 (x86/x64). Questo perché è costruito per realizzare questo. Solo perché hai quello che sembra il .Net Framework, non preoccuparti: stai scrivendo un'applicazione multipiattaforma.

Ora, per gli avvertimenti. Hai reso facile questa risposta grazie a C#. Gli sviluppatori CPP non hanno la stessa garanzia perché ci sono cose che possono fare per rompere questa compatibilità. Non così in C#. Se il codice che scrivi viene compilato su "Qualsiasi CPU", allora quello che sto dicendo è corretto.

Se si introduce qualcosa (come il controllo di Bing Maps) che richiede che la build passi da "Any CPU" a qualcos'altro. Windows Store ti consente di inviare tre versioni della tua app con lo stesso nome - una per ogni piattaforma - e l'utente non saprà mai che ce ne sono più di una.

Nell'ultimo esempio, stai ancora supportando tutte le piattaforme, devi solo specifiche tre diverse build per realizzarlo - il tuo codice potrebbe non cambiare affatto! Nella maggior parte degli scenari, li supporti tutti fuori dal cancello. Se si introduce una libreria di terze parti - come MVVMlite - si sta ancora bene se si può costruire su qualsiasi CPU. La maggior parte delle biblioteche sono fantastiche in questo modo.

+0

Grazie. Esattamente questa risposta che stavo cercando quando ho chiesto a –

+1

Un'altra cosa, dato che PINVOKE è ancora disponibile per gli sviluppatori gestiti in WinRT, è ancora possibile per gli sviluppatori di C# causare l'incompatibilità ARM, ma devono lavorare sodo per farlo. –

3

Non è corretto affermare che non è possibile utilizzare il framework .net in app in stile Metro. Più correttamente, esiste una versione del framework .net che è disponibile solo per le app della metropolitana. Se i tuoi assembly non sono stati costruiti con questa versione del framework .net, non funzioneranno per la metropolitana. Questa versione del framework .net funzionerà su .86 e arm. C'è anche una versione di MVVM Light per le app della metropolitana. Download it here. Vedere here per dettagli sullo sviluppo per braccio.

Indipendentemente dal fatto che si sta utilizzando JavaScript, C++, Visual Basic o C#, se hai costruito uno stile app Metro che gli obiettivi x86/x64 allora già sai come costruire uno che si rivolge ARM . Utilizzi gli stessi modelli di progetto di stile Metro , che forniscono il punto di partenza per la creazione di un'app da .

Edit: Come Jerry fa notare, potrebbe essere necessario compilare l'applicazione contro diverse versioni di librerie se sono scritti in C++, ma questa è una questione di avere costruisce separato, piuttosto che dover fare un ulteriore sviluppo.

+0

Grazie per la risposta. Potrebbe essere stato un errore quando ho scritto "Windows RT devices (intendo WOA)". Sì, posso usare .net framework nello sviluppo di applicazioni metropolitane, ma come posso essere sicuro che la mia applicazione funzioni su Windows RT OS? Non ho bisogno solo di un'app di tipo metro che funzioni su .86 e ARM con Windows 8. Qualunque versione di .net sarà disponibile su Windows RT OS? –

+0

Non mi serve solo l'app in stile metro che funzionerà su .86 e ARM con Windows 8 ma Windows RT. –

+0

@Bogdan Dudnik Le moderne app sono portatili, funzioneranno sia su –

1

Se si rendono le librerie librerie di classi portatili, è possibile utilizzarle per app desktop, metro e telefono (e anche xbox). Puoi scegliere questo quando inizi una libreria o nelle proprietà del progetto. Rende più facile scrivere app multipiattaforma all'interno dell'ecosistema mircrosoft.

Problemi correlati